Tin Học 11

Văn Quý

Học sinh mới
Thành viên
28 Tháng tư 2017
3
1
6
23

Thy Hương

Học sinh chăm học
Thành viên
14 Tháng tư 2014
67
34
119
Đà Nẵng
Var a: text; n,i,t: longint; x: array[1..1000] of longint;
Begin
Clrscr;
Assign(a,'SO.DAT'); Reset(a);
While not eof do
begin
n:=n+1;
Read(a,x[n]);
End;
Writeln('So so nguyen trong tep:',n);
For i:=1 to n do t:=t+x;
Writeln('Tong cac so do la:',t);
Close(a);
Readln;
End.
 
  • Like
Reactions: Văn Quý

Hoa Tử Anh

Học sinh chăm học
Thành viên
26 Tháng tư 2017
66
31
56
Khánh Hòa
Bạn dùng pascal hả?
Program Baitap;
Uses Crt;
Const fi='SO.DAT';
Var f: text;
T,x,d: integer;
BEGIN
ClrScr;
T:=0; d:=0; { Cho tổng và biến đếm ban đầu bằng 0}
Assign(f,fi);
Reset(f);
While not EOF(f) do { Trong khi chưa kết thúc file}
Begin
Read(f,x); { Thì đọc vào biến x}
Wrriteln(x); { In ra màn hình x, hoặc cho gọn khi trình bày: WRite(x:6), if d mod 15=0 then WRiteln}
inc(d); { tăng đếm lên 1, tương đương với câu lệnh d:=d+1}
T:=T+x; { Cộng số nguyên mới đọc vào tổng }
End;
Close(f); { đóng file}
Writeln(' So cac so nguyen: ',d);
WRiteln(' Tong cac so: ',T);
Readln
END.

Nếu như đề yêu cầu tính số các số trước, in ra tổng rồi mới in ra từng số thì bạn làm theo cách của Thy Hương, nếu như không cần thiết theo thứ tự đó thì bạn vừa đọc vừa in, tăng đếm, cộng dồn vào tổng như trên là được. Bạn cũng nên chú ý giới hạn kiểu dữ liệu theo yêu cầu đề bài. Ở đây mình dùng integer cho đơn giản.
 
  • Like
Reactions: Văn Quý

Hoa Tử Anh

Học sinh chăm học
Thành viên
26 Tháng tư 2017
66
31
56
Khánh Hòa
bài của thy hương cũng đúng phải k ạ??
Cũng gần vậy, bạn ấy cho đọc các số vào mảng, sau đó duyêt lại để tính tổng. khi đề bài k yêu cầu in ra các số (sau khi in tổng và số các số) thì việc đó cũng k cần thiết và hơi tốn bộ nhớ. Chúng ta có thể đọc và tính tổng trực tiếp khi đọc, đồng thời tăng biến đếm để đếm số các số.
 
Top Bottom