Một số bài tập lập trình Pascal
Created by NgoHung
Vấn đề 3: Mảng 1 chiều
Bài toán số 3.1: 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ị A
i
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ị A
i
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
o Khai báo và khởi tạo toång S là 0.
o 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 A
i
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.
o 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.
o Gọi hàm nhập mảng để nhập mảng A, với N phần tử.
o Gọi hàm xuất mảng A, với N phần tử.
{ 4. Chuong trinh con tinh tong cac phan tu trong mang }
Function TongMang1C( A : Mang20; N:Integer):longint;
Var i :Integer;
S :longint;
Begin
S := 0;
For i:=0 to N do
S := S + A[i] ;
TongMang1C:=S;
End;
{ 5. Than chuong trinh chinh }
BEGIN
NhapMang1C( A, N );
XuatMang1C( A, N );
Writeln(' Tong cac phan tu trong mang ', TongMang1C(A, N) );
Readln;
END.
Bài toán tương tự:
(1) Tính tổng các số nguyên dương chia hết cho 5.
Function TongSoChiaHet5( A:Mang20, N:Integer):Integer;
Var S,i :Integer;
Begin
S:=0;
For i:=0 to N do
If(A[i] mod 5=0)
S := S+A[i];
TongSoChiaHet5:= S;
End;
+ Viết hàm đếm số lần xuất hiện củat một giá trị X nào đó được nhập vào, và xem như X
nhà là tham số cho việc đếm số lần xuất hiện của nó trong A
+ Viết hàm in ra số lần xuất hiên của tất cả các phần tử trong mảng, sử dụng lại hàm đã
xây dựng ở trước.
+ Xây dựng chương trình giải quyết bài toán trên gồm:
- Khai báo mảng A, N phần tử.
- Nhập / Xuất mảng A với N phần tử (lưu ý, phải có định nghĩa hàm
nhập /xuất mảng).
Hai hàm này được sử dụng kết quả của bài toán 3.1
- Nhập giá trị X cần đếm số là xuất hiện.
- In số lần xuất hiện của X trong A. Ý tưởng:
o Khởi tạo biến đếm ban đầu là 0.
o Sử dụng vòng lặp i, lặp từ 1 đến N.
o Đối với mỗi phần tử A[i], nếu A[i] = X thì tăng biến đếm lên 1
o Kết thúc, giá trị biến đếm là số lần xuất hiện cử X trong A.
- In số lần xuất hiện của các phần tử trong A.
Các hàm xây dựng:
{ 1. Dem so phan tu A[i] trong mang bang gia tri X }
Function DemPtuX(Var A : Mang20; N, X : Integer) : Integer;
Var i , Count : Integer;
Begin
Count := 0;
For i:=0 to N do
If ( A[i] = X ) then
Count := Count + 1;
DemPtuX := Count;
End;
{ 2. Dem so lan xuat hien cua tat ca cac phan tu trong mang }