Chương trình con và lập trình có cấu trúc

Thuận Trịnh

Viết chương trình các bài sau trong đó có sử dụng hàm hoặc thủ tục:

-Tìm UCLN, BCNN của 2 số nguyên

-Tính n! Với n nguyên

-Tính a^b với a,b thực

-Tráo đổi 2 số nguyên x và y

Nguyễn Lê Phước Thịnh
7 tháng 7 2020 lúc 10:25

Tìm UCLN,BCNN của hai số nguyên

uses crt;
var a,b:integer;
{--------------------ham-tim-UCLN-----------------------}
function ucln(var x,y:integer):integer;
var i:integer;
begin
ucln:=1;
if x<y then
begin
for i:=1 to x do
if (x mod i=0) and (y mod i=0) then
begin
if ucln<i then ucln:=i;
end;
end;
if x=y then ucln:=x;
if x>y then
begin
for i:=1 to y do
if (x mod i=0) and (y mod i=0) then
begin
if ucln<i then ucln:=i;
end;
end;
end;
{---------------------ham-tim-BCNN----------------------------}
function bcnn(var x,y:integer):real;
var i:integer;
begin
bcnn:=x*y;
for i:=x*y downto 1 do
if (i mod x=0) and (i mod y=0) then
begin
if bcnn>i then bcnn:=i;
end;
end;
{---------------------chuong-trinh-chinh--------------------}
begin
clrscr;
write('Nhap so thu nhat:'); readln(a);
write('Nhap so thu hai:'); readln(b);
if (a<>0) and (b<>0) then writeln('Uoc chung lon nhat cua hai so la: ',ucln(a,b))
else writeln(a,' va ',b,' khong co uoc chung lon nhat');
writeln('Boi chung nho nhat cua hai so la: ',bcnn(a,b):4:0);
readln;
end.

Tính n! Với n nguyên

uses crt;
var n:integer;
{----------------------ham-tinh-giai-thua---------------------}
function giaithua(var x:integer):real;
var i:integer;
begin
giaithua:=1;
for i:=1 to x do
giaithua:=giaithua*i;
end;
{---------------------chuong-trinh-chinh--------------------}
begin
clrscr;
write('Nhap n='); readln(n);
writeln(n,'!=',giaithua(n):4:0);
readln;
end.

Tính ab, với a,b là số thực

uses crt;
var a:real;
b:integer;
{----------------------ham-tinh-giai-thua---------------------}
function luythua(var x:real; y:integer):real;
var i:integer;
begin
luythua:=1;
for i:=1 to y do
luythua:=luythua*x;
end;
{---------------------chuong-trinh-chinh--------------------}
begin
clrscr;
write('Nhap a='); readln(a);
write('Nhap b='); readln(b);
if b>=0 then writeln(a:4:2,'^',b,'=',luythua(a,b):4:2)
else writeln(a:4:2,'^',b,'=1/',luythua(a,abs(b)):4:2);
readln;
end.

Tráo đổi hai số nguyên x và y

uses crt;
var x,y:integer;
{-----------------------thu-tuc-hoan-doi-hai-so-----------------------}
procedure hoandoi(var a,b:integer);
var tam:integer;
begin
tam:=a;
a:=b;
b:=tam;
end;
{-----------------------chuong-trinh-chinh----------------------------}
begin
clrscr;
write('Nhap x='); readln(x);
write('Nhap y='); readln(y);
hoandoi(x,y);
writeln('Sau khi hoan doi: x=',x,' va y=',y);
readln;
end.

Bình luận (0)

Các câu hỏi tương tự
09 Lê Quang HIếu
Xem chi tiết
Nya arigatou~
Xem chi tiết
Nya arigatou~
Xem chi tiết
27. Nguyễn Chí Thiện
Xem chi tiết
Lê Trung Hiếu
Xem chi tiết
Thúy Vy Dương
Xem chi tiết
Đạt Tạ
Xem chi tiết
Mạnh Cường Đào Huỳnh
Xem chi tiết
Minh Thư
Xem chi tiết