Bài tập turbo pascal



tải về 0.6 Mb.
trang29/42
Chuyển đổi dữ liệu27.02.2022
Kích0.6 Mb.
#51050
1   ...   25   26   27   28   29   30   31   32   ...   42
100 bài tập pascal
13234
Bài tập 6.5:

Viết chương trình tính n! với yêu cầu sử dụng hàm để tính giai thừa.

a. Hướng dẫn:

b. Mã chương trình:



var n: longint;

f,g: text;

Function Giai_Thua(n:longint):longint;

Var GT:Longint;

begin

GT:=1;


while n > 0 do

begin


GT:=GT * n;

n:=n-1;


end;

Giai_thua:=GT;

end;

begin


assign(f,’bai6_5.inp’); reset(f);

assign(g,’bai6_5.out’); rewrite(g);

readln(f,n);

write(g,n,'!=',Giai_thua(n));

close(f); close(g);

end.





Nhận xét: Hãy so sánh sự khác nhau khi Giai_thua được viết dưới hai dạng Function và Procedure.

- Khi dùng Procedure cần một biến (toàn cục) để lưu giữa giá trị của n!. Biến này được truyền cho tham biến trong Procedure. Sau khi gọi nó cần lệnh để in n!

- Khi dùng Function, có thể sử dụng nó như là một biểu thức.
Bài tập 6.6:

Viết chương trình cho phép thực hiện rút gọn phân số.

a. Hướng dẫn:

- Tìm UCLN của tử số và mẫu số.

- Chia tử và mẫu của phân số cho UCLN vừa tìm được.

b. Mã chương trình:



var tu,mau: integer;

f,g : text ;

Function UCLN(a,b:integer):integer;

var r: integer;

begin

r:= a mod b;



while r <> 0 do

begin


a:= b;

b:= r;


r:=a mod b;

end;


UCLN:=b;

end;


begin

assign(f,’bai6_6.inp’); reset(f);

assign(g,’bai6_6.out’); rewrite(g);

readln(f,tu,mau);

write(g,'Ket qua rut gon: ',tu,'/',mau,'=',tu div UCLN(tu,mau),'/',mau div UCLN(tu,mau));

close(f);close(g);

end.



Bài tập 6.7:

Viết chương trình cho phép trộn hai dãy số A và B cùng có số phần tử là k để được dãy số C theo yêu cầu sau:

A = a1, a2 ... ak

B = b1, b2 ... bk

Được C = a1, b1, a2, b2 ... ak, bk.
a. Hướng dẫn:

b. Mã chương trình:



type kieu_mang= array[1..100] of integer;

var A,B,C: Kieu_mang;

n,i,j: integer;

f,g:text;

Procedure Nhap_Mang(Var X: Kieu_mang; n:byte);

var i:integer;

begin

for i:=1 to n do readln(f,X[i]);



end;

Procedure In_Mang(X:kieu_mang; n:byte);

var i: byte;

begin


for i:=1 to n do write(g,x[i],', ');

end;


begin

assign(f,’bai6_7.inp’); reset(f);

assign(g,’bai6_7.out’); rewrite(g);

readln(f,n);

Nhap_mang(f,A,n);

Nhap_mang(f,B,n);

i:=1;

j:=1;


while i<=n do

begin


C[j]:=A[i];

C[j+1]:=B[i];

j:=j+2;

i:=i+1;


end;

in_mang(g,C,2*n);

close(f); close(g);

end.




Bài tập 6.8:

Viết chương trình in ra các số nguyên tố nhỏ hơn n với yêu cầu dùng hàm để kiểm tra một số có phải là số nguyên tố hay không.




tải về 0.6 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   25   26   27   28   29   30   31   32   ...   42




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương