[r]
Trang 1Họ và tên : Hoàng Vĩnh Linh
Lớp : ĐH Toán Tin K41
Bài kiểm tra: Công nghệ phần mềm
Điểm Nhận xét của thầy, cô giáo
Đề bài: Viết chương trình cài đặt bài toán phân số
Bài làm Program PHANSO;
Uses crt;
Type
PS= record
tu : integer;
mau: byte;
end;
Var
x,y: PS;
Function Ucln(a,b: integer): integer;
var
r: integer;
begin
repeat
r:= a mod b;
a:= b;
b:= r;
until r= 0;
Ucln:= a;
end;
Trang 2Procedure QD(Var x,y: PS);
var
mau: integer;
function Mauchung(mx,my: integer): integer;
var
m: integer;
begin
Mauchung:= (mx*my) div Ucln(mx,my);
end;
begin
mau:= Mauchung(x.mau,y.mau);
x.tu:= x.tu*(mau div x.mau);
x.mau:=mau;
y.tu:= y.tu*(mau div y.mau);
y.mau:=mau;
end;
Procedure RutGon(Var x: PS);
var
u: integer;
begin
u:= Ucln(Abs(x.tu),x.mau);
x.tu:= x.tu div u;
x.mau:= x.mau div u;
end;
Procedure Cong(x,y: PS);
var
z: PS;
begin
QD(x,y);
z.tu:= x.tu+y.tu;
z.mau:=x.mau;
RutGon(z);
writeln('Tong 2 phan so la: ':30,z.tu,'/',z.mau); end;
Procedure Tru(x,y: PS);
var
Trang 3z: PS;
begin
QD(x,y);
z.tu:= x.tu-y.tu;
z.mau:=x.mau;
RutGon(z);
writeln('Hieu 2 phan so la: ':30,z.tu,'/',z.mau); end;
Procedure Nhan(x,y: PS);
var
z: PS;
begin
z.tu:= x.tu*y.tu;
z.mau:=x.mau*y.mau;
RutGon(z);
writeln('Tich 2 phan so la: ':30,z.tu,'/',z.mau); end;
Procedure Chia(x,y: PS);
var
z: PS;
begin
if y.tu=0 then
begin
writeln(' Phan so thu hai= 0 nen khong chia duoc');
exit;
end;
z.tu:= x.tu*y.mau;
z.mau:=x.mau*y.tu;
if z.mau<0 then
begin
z.mau:= -z.mau;
z.tu:= -z.tu;
end;
RutGon(z);
writeln('Thuong 2 phan so la: ':30 ,z.tu,'/',z.mau); end;
Trang 4clrscr;
writeln(' CAC PHEP TOAN TREN PHAN SO ');
writeln('Nhap phan so thu nhat ');
write('tu= ':30); readln(x.tu);
write('mau= ':30); readln(x.mau);
writeln('Nhap phan so thu hai ');
write('tu= ':30); readln(y.tu);
write('mau= ':30); readln(y.mau);
if (x.mau<=0) or (x.mau<=0) then
begin
write(' Mau so phai > 0');
readln;
exit;
end;
Writeln(' Hai phan so da cho la:');
write(' ':30,x.tu,'/',x.mau); writeln(' ':5,y.tu,'/',y.mau); Writeln(' Phan so rut gon la:');
RutGon(x); RutGon(y);
write(' ':30,x.tu,'/',x.mau); writeln(' ':5,y.tu,'/',y.mau);
Cong(x,y);
Tru(x,y);
Nhan(x,y);
Chia(x,y);
readln;
End