cộng trừ nhân chia phân số

Code cộng, trừ, nhân chia phân số trong pascal
var
a,b,c,d:longint;
function ucln(a,b:longint):longint;
var r:longint;
begin
while a mod b <>0 do
begin
r:=a mod b;
a:=b;
b:=r;
end;
exit(b);
end;
procedure cong(a,b,c,d:longint);
var tu, mau,UC:longint;
begin
tu:=a*d+b*c;
mau:=b*d;
UC:=ucln(tu,mau);
tu:=tu div uc;
mau:=mau div uc;
if mau=1 then
writeln(a,'/',b,' + ',c,'/',d,' = ',tu)
else
writeln(a,'/',b,' + ',c,'/',d,' = ',tu,'/',mau);
end;
procedure tru(a,b,c,d:longint);
var tu, mau,UC:longint;
begin
tu:=a*d-b*c;
mau:=b*d;
UC:=ucln(tu,mau);
tu:=tu div uc;
mau:=mau div uc;
if mau=1 then
writeln(a,'/',b,' - ',c,'/',d,' = ',tu)
else
writeln(a,'/',b,' - ',c,'/',d,' = ',tu,'/',mau);
end;
procedure nhan(a,b,c,d:longint);
var tu, mau,UC:longint;
begin
tu:=a*c;
mau:=b*d;
UC:=ucln(tu,mau);
if tu=0 then
begin
writeln(a,'/',b,' * ',c,'/',d,' = ',0);
exit;
end;
tu:=tu div uc;
mau:=mau div uc;
if mau=1 then
writeln(a,'/',b,' * ',c,'/',d,' = ',tu)
else
writeln(a,'/',b,' * ',c,'/',d,' = ',tu,'/',mau);
end;
procedure chia(a,b,c,d:longint);
var tu, mau,UC:longint;
begin
tu:=a*d;
mau:=b*c;
UC:=ucln(tu,mau);
if tu=0 then
begin
writeln(a,'/',b,' : ',c,'/',d,' = ',0);
exit;
end;
tu:=tu div uc;
mau:=mau div uc;
if mau=1 then
writeln(a,'/',b,' : ',c,'/',d,' = ',tu)
else
writeln(a,'/',b,' : ',c,'/',d,' = ',tu,'/',mau);
end;
begin
read(a,b,c,d);
cong(a,b,c,d);
tru(a,b,c,d);
nhan(a,b,c,d);
chia(a,b,c,d);
readln;
readln;
end.

Nhận xét

Bài đăng phổ biến từ blog này

Xauduynhat - Xâu duy nhất

ALARM - Đồng hồ báo thức