Tin học Mảng 1 chiều

02-07-2019.

Học sinh tiến bộ
HV CLB Lịch sử
Thành viên
4 Tháng năm 2018
1,485
1,656
236
Vĩnh Phúc
Trung học cơ sở Lập Thạch
  • Like
Reactions: Cherry_cherry

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
241
19
Quảng Trị
Trường TH&THCS Hải Ba

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
241
19
Quảng Trị
Trường TH&THCS Hải Ba
Đấy chỉ là ví dụ thôi! Mình cần tổng quát!
Thì từ ví dụ đó mà rút ra cách tổng quát thôi bạn
Bằng cách sử dụng vòng for hoặc While. Đó là cách thông thường
Nếu còn cách nào khác nhanh hơn bằng cách sử dụng các hàm có sẵn hay gì gì đó thì chắc mình học chưa đến rồi :)
 

02-07-2019.

Học sinh tiến bộ
HV CLB Lịch sử
Thành viên
4 Tháng năm 2018
1,485
1,656
236
Vĩnh Phúc
Trung học cơ sở Lập Thạch
Thì từ ví dụ đó mà rút ra cách tổng quát thôi bạn
Bằng cách sử dụng vòng for hoặc While. Đó là cách thông thường
Nếu còn cách nào khác nhanh hơn bằng cách sử dụng các hàm có sẵn hay gì gì đó thì chắc mình học chưa đến rồi :)
ví dụ nhập n rồi nhập dãy có n chữ số thì
for i:=1 to n do read(a);
Hôm nay thầy mình giảng rồi mình chia sẻ nè:

Mã:
var     a:array[1..1000000] of int64;
        i,j:longint;
Begin
           Assign(input,'vidu.inp');reset(input);
           Assign(output,'vidu.out');rewrite(output);i:=1;
             While not EOF(input) do
                Begin
                       Read(a[i]);inc(i);
                End;
             For j:=1 to i-1 do
                  Write(a[j],' ');
End.
 

Hải Ham Học

Học sinh
Thành viên
24 Tháng sáu 2017
133
34
26
21
Bà Rịa - Vũng Tàu
thcs hòa hiệp
Hôm nay thầy mình giảng rồi mình chia sẻ nè:

Mã:
var     a:array[1..1000000] of int64;
        i,j:longint;
Begin
           Assign(input,'vidu.inp');reset(input);
           Assign(output,'vidu.out');rewrite(output);i:=1;
             While not EOF(input) do
                Begin
                       Read(a[i]);inc(i);
                End;
             For j:=1 to i-1 do
                  Write(a[j],' ');
End.
cái while not eof(..) do thì mình biết rồi :v tại bạn chưa nói rõ đề bài thuii,
test thử nhé, bạn hiểu cơ bản (đơn giản nhất) là caí while đó nó hoạt động như thế nào ??
 

02-07-2019.

Học sinh tiến bộ
HV CLB Lịch sử
Thành viên
4 Tháng năm 2018
1,485
1,656
236
Vĩnh Phúc
Trung học cơ sở Lập Thạch
cái while not eof(..) do thì mình biết rồi :v tại bạn chưa nói rõ đề bài thuii,
test thử nhé, bạn hiểu cơ bản (đơn giản nhất) là caí while đó nó hoạt động như thế nào ??
Theo mình hiểu thì While đấy nó thực hiện đọc vào các số trong File input và đọc được sau 1 số thì tăng i lên. Đến khi i vượt quá lượng số trong file input thì dừng lại. ( tức trong file input không có a vượt quá đề bài)
 

Hải Ham Học

Học sinh
Thành viên
24 Tháng sáu 2017
133
34
26
21
Bà Rịa - Vũng Tàu
thcs hòa hiệp
:v làm sao để biết khi nào i vượt quá và khi nào i không vượt quá??, và thắc mắc cái "mã" trên tại sao lại for j:=1 to i-1 do
chạy đến i mới đúng chứ
 

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
241
19
Quảng Trị
Trường TH&THCS Hải Ba
Hôm nay thầy mình giảng rồi mình chia sẻ nè:

Mã:
var     a:array[1..1000000] of int64;
        i,j:longint;
Begin
           Assign(input,'vidu.inp');reset(input);
           Assign(output,'vidu.out');rewrite(output);i:=1;
             While not EOF(input) do
                Begin
                       Read(a[i]);inc(i);
                End;
             For j:=1 to i-1 do
                  Write(a[j],' ');
End.
... Lệnh Eof được sử dụng để tránh lỗi thôi bạn ạ. Thật ra nếu nhập dữ liệu mà không cần nó vẫn được...
thắc mắc cái "mã" trên tại sao lại for j:=1 to i-1 do
chạy đến i mới đúng chứ
biến i được gán ban đầu bằng 1 đó anh. Nên sau vòng lặp cuối cùng nó sẽ bị tăng 1 giá trị nữa.... Nên mới for j:=1 to i-1 do
 

Hải Ham Học

Học sinh
Thành viên
24 Tháng sáu 2017
133
34
26
21
Bà Rịa - Vũng Tàu
thcs hòa hiệp
... Lệnh Eof được sử dụng để tránh lỗi thôi bạn ạ. Thật ra nếu nhập dữ liệu mà không cần nó vẫn được...

biến i được gán ban đầu bằng 1 đó anh. Nên sau vòng lặp cuối cùng nó sẽ bị tăng 1 giá trị nữa.... Nên mới for j:=1 to i-1 do
mất công gán i:=1 cho chán rồi cho chạy for đến i-1 chi cho mắc mệt vậy :>>
Nếu nói rõ hơn cái while not eof(..) do dùng để làm 1 bài mà nguời ta không cho biết có bao nhiêu số đấy,việc tránh lỗi cũng chưa hẳn
 
Top Bottom