Tải bản đầy đủ (.pdf) (4 trang)

Bài tập Pascal 02 Procedure và Function

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (196.81 KB, 4 trang )

Bài tập Pascal – Procedure và Function
Function là hàm do người lập trình tự tạo để thực hiện một chức năng nào đó, TD:
Function GiaiThua(k: Integer): LongInt;
là hàm dùng để tính giai thừa của một số k và trả về giá trị giai thừa của K
Function GiaiThua(k: Integer): LongInt;
Var
GTGT: LongInt;
Begin
GTGT := 1;
For i := 1 to k do
GTGT := GTGT * i;
GiaiThua := GTGT;
End;

Bài 01 – In ra giá trị giai thừa của mảng 1 chiều
Bạn hãy nhập một dãy số nguyên và tính giai thừa của từng số trong dãy đó.
(Dãy 1, 4, 7, 5, 2 => In ra 1, 24, 5040, 120, 2)
Var
A: Array [1..10] of Integer;
i, n: Integer;
Function GiaiThua(k: Integer): LongInt;
Var
GTGT: LongInt;
Begin
GTGT := 1;
For i := 1 to k do
GTGT := GTGT * i;
GiaiThua := GTGT;
End;
Begin
WriteLn('Hay nhap so phan tu cua day so');


ReadLn(n);
{Nhập dãy số}
For i := 1 to n do begin
WriteLn('Hay nhap phan tu thu ', i);
ReadLn(A[i]);
End;

Biên soạn: Th.s Nguyễn Anh Việt

Trang 1


Bài tập Pascal – Procedure và Function
{In ra giá trị giai thừa}
For i := 1 to n do
Write(GiaiThua(A[i]):6);
ReadLn;
End.

Bài 02 – In ra giá trị luỹ thừa 2 của các phần tử trong mảng 1 chiều
Bạn hãy nhập một dãy số nguyên và tính luỹ thừa 2 của từng số trong dãy đó.
(Dãy 1, 4, 7, 5, 2 => In ra 1, 16, 49, 25, 4)
Var
A: Array [1..10] of Integer;
i, n: Integer;
Function LuyThua(a, k: Integer): LongInt;
Var
GTLT: LongInt;
Begin
GTLT := 1;

For i := 1 to k do
GTLT := GTLT * a;
LuyThua := GTLT;
End;
Begin
WriteLn('Hay nhap so phan tu cua day so');
ReadLn(n);
{Nhập dãy số}
For i := 1 to n do begin
WriteLn('Hay nhap phan tu thu ', i);
ReadLn(A[i]);
End;
{In ra giá trị luỹ thừa 2}
For i := 1 to n do
Write(LuyThua(A[i], 2):6);
ReadLn;
End.

Procedure cũng tương tự như Function, có thể có đối số, nhưng không giá trị trả về. TD:
Procedure NhanDoiMang;
Biên soạn: Th.s Nguyễn Anh Việt

Trang 2


Bài tập Pascal – Procedure và Function
Procedure NhanDoiMang;
Begin
For i := 1 to n do
A[i] := A[i] * 2;

End;

Bài 03 – In ra giá trị nhân đôi của các phần tử trong mảng 1 chiều
Bạn hãy nhập một dãy số nguyên và nhân đôi từng số trong dãy đó.
(Dãy 1, 4, 7, 5, 2 => In ra 2, 8, 14, 10, 4)
Var
A: Array [1..10] of Integer;
i, n: Integer;
Procedure NhanDoiMang;
Begin
For i := 1 to n do
A[i] := A[i] * 2;
End;
Begin
WriteLn('Hay nhap so phan tu cua day so');
ReadLn(n);
{Nhập dãy số}
For i := 1 to n do begin
WriteLn('Hay nhap phan tu thu ', i);
ReadLn(A[i]);
End;
{Nhân đôi các phần tử của mảng}
NhanDoiMang;
{In dãy số}
For i := 1 to n do
Write(A[i]:4);
End;
WriteLn;
ReadLn;
End.


Biên soạn: Th.s Nguyễn Anh Việt

Trang 3


Bài tập Pascal – Procedure và Function
Bài 04 – In ra giá trị nhân 4 của các phần tử trong mảng 1 chiều
Bạn hãy nhập một dãy số nguyên và nhân 4 từng số trong dãy đó. Chỉ được sử dụng Procedure
NhanDoiMang như trong Bài 03.
(Dãy 1, 4, 7, 5, 2 => In ra 4, 16, 28, 20, 8)
Bài 05 – In ra số nguyên tố trong mảng 1 chiều
Bạn hãy nhập một dãy số nguyên và in ra các số nguyên tố trong dãy đó. Số nguyên tố là các số chỉ
chia hết cho 1 và chính nó như 2, 3, 5, 7, 11, 13, …
(Dãy 1, 4, 7, 5, 23 => In ra 7, 5, 23)
Var
A: Array [1..10] of Integer;
i, n, Dem: Integer;
Function NguyenTo(k: Integer): Boolean; {Boolean: Chỉ có True và False}
Var
j: Integer;
Begin
If (k <= 0) or (k = 1) then begin NguyenTo := False; Exit; End;
For j := 2 to Trunc(Sqrt(k)) do
If k mod j = 0 then begin NguyenTo:= False; Exit; End;
NguyenTo := True;
End;
Begin
WriteLn('Hay nhap so phan tu cua day so');
ReadLn(n);

{Nhập dãy số}
For i := 1 to n do begin
WriteLn('Hay nhap phan tu thu ', i);
ReadLn(A[i]);
End;
{In ra các số nguyên tố }
For i := 1 to n do
If NguyenTo(A[i]) then Begin Write(A[i]:3); Dem := Dem + 1; End;
If Dem = 0 then WriteLn('Khong co so nguyen to nao');
ReadLn;
End.

Biên soạn: Th.s Nguyễn Anh Việt

Trang 4



×