const fi='songuyen.txt';
fo='ketqua.txt';
var f1,f2:text;
a:array[1..100]of integer;
n,i,t:integer;
begin
assign[f1,fi]; reset[f1];
assign[f2,fo]; rewrite[f2];
n:=0;
while not eoln[f1] do
begin
inc[n];
read[f1,a[n]];
end;
t:=0;
for i:=1 to n do
if a[i]>0 then t:=t+a[i];
writeln[f2,t];
close[f1];
close[f2];
end.
Bài 1. Viết chương trình tính tổng các cặp số nguyên được lưu trữ trong tệp input.txt [các số cách nhau bởi dấu cách và được viết trên cùng một dòng]. Tính và đưa kết quả ra màn hình.
Ví dụ minh họa:
Trong tệp input.txt chứa dãy các số nguyên 2 4 7 13 25 6 18 -1
⇒Tổng các cặp số liên tiếp xuất ra màn hình là 6 20 31 17
uses crt;
const fi='input.txt';
var f1:text;
dem,i:integer;
a:array[1..100]of integer;
begin
clrscr;
assign[f1,fi]; reset[f1];
dem:=0;
while not eoln[f1] do
begin
inc[dem];
read[f1,a[dem]];
end;
for i:=1 to dem do
if i mod 2=1 then write[a[i]+a[i+1],' '];
close[f1];
readln;
end.
Copyright © 2022 Hoc247.net
Đơn vị chủ quản: Công Ty Cổ Phần Giáo Dục HỌC 247
GPKD: 0313983319 cấp ngày 26/08/2016 tại Sở KH&ĐT TP.HCM
Giấy phép Mạng Xã Hội số: 638/GP-BTTTT cấp ngày 29/12/2020
Địa chỉ: P401, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
1. Pascal Nhập xuất và tính tổng các phần tử trong mảng
Nhập xuất và tính tổng các phần tử trong mảng.
Ví dụ: A: 1 5 6 7 4
Kết quả: Tong S = 23
Hướng dẫn: Để giải quyết bài toán cần phải đảm bảo các vấn đề:
- Nhập mảng, có thể xây dựng thành hàm để đóng gói và sử dụng lại. Các thao tác theo yêu cầu:
[1] Nhập số N.
[2] Tiến hành lặp [từ 0 đến N-1] và nhập cho các giá trị Ai trong mảng.
Lưu ý: N phải được vào truyền theo dạng tham biến [tức là &N]
- Xuất mảng. Công việc đơn giản là sử dụng voøng lặp từ 0 đến N-1 để in ra các giá trị Ai cho mảng. Sau đó, Writeln xuống dòng.
- Hàm tính tổng các phần tử cho một mảng A
+ Khai báo và khởi tạo toång S là 0.
+ Sử dụng một vòng lặp [từ 0 đến N-1 để duyệt qua tất cả các giá trị Ai] để tính cộng dồn giá trị của Ai vào tổng S.
- Viết thân chöông trình chính với nội dung dùng để kiểm tra kết quả thực hiện của hàm.
+ Khai báo mảng A có tối đa 20 phần tử và biến N chỉ số lượng phần tử của A.
+ Gọi hàm nhập mảng để nhập mảng A, với N phần tử.
+ Gọi hàm xuất mảng A, với N phần tử.
+ In giá trị của tổng các phần tử bằng cách truyền trực tiếp giá trị trả về của việc tính tổng cho Writeln[……]
+ Gọi hàm Readln[ ] trước khi kết thúc để dừng lại xem kết quả.
Chương trình:
2. Một số bài tập tính tổng với mảng 1 chiều
Bài toán 1: Nhập vào mảng 1 chiều từ bàn phím chỉ chứa được 100 phần tử có giá trị kiểu nguyên. Tính tổng các giá trị là số chẵn sau đó in ra màn hình.
Bài tập này mình cũng đã hướng dẫn trong mảng 1 chiều về cách tìm số chẵn. Cách làm như sau, xây dựng Function TongChan[Var A:Arr100;Var N:Integer]:Integer; Trong đó A:Arr100 là mảng 1 chiều có kích thước 100 phần tử và N là số phần tử của mảng mà bạn đưa vào.
1. Tạo biến S:=0 để lưu tổng chẵn ban đầu bằng 0.
2. Duyệt từ phần tử A[i] đầu tiên đến A[N] kiểm tra nếu chia dư cho 2 bằng 0 => chẵn thì S:=S+A[i].
Đơn giản chỉ có vậy thôi và dưới đây là Function của bài tập này.
Nếu như bạn muốn tính tổng các số lẻ có trong mảng 1 chiều chỉ cần sửa đoạn If[A[i] mod 2 = 0] then thành If[A[i] mod 2 = 1] then là sẽ thành hàm tính tổng các số lẻ.
Bài toán 2: Cho người dùng nhập mảng 1 chiều biết mảng chỉ chứa được 100 phần tử số nguyên dương. Hãy tính tổng của mảng đều chia hết cho 4 và in kết quả ra màn hình.
Bài tập tương tự như bài ở trên các bạn chỉ cần thay đoạn If[A[i] mod 2 = 0] then thành If[A[i] mod 4 = 0] then là đã có thể sử dụng lại chương trình.
Nếu như có các bài toán tương tự bắt chúng ta tính tổng của các số chia hết cho 3, cho 5, cho 6 cho 7,… thì chúng ta làm sao đây? không thể ngồi viết hàng loạt các chương trình con để tính cho từng bài tập được mà các bạn chỉ cần tạo ra một chương trình con duy nhất có thể sử dụng cho tất cả các trường hợp như sau.
Chương trình đây đủ cho các bạn