Lập trình đơn giản

H24

Cho a/b và c/d biết a,b,c,d là số nguyên (b,d ≠0). Tính tổng 2 phân số trên và in ra kết quả ( a,b,c,d được nhập từ bàn phím )

Kết quả được viết dưới dạng số nguyên, phân số m/n; không dưới số thập phân. _Pascal

Ví dụ 1 : a=1; b=2; c=7; d=2

⇒ 1/2+7/2=4

Ví dụ 2: a=1;b=2;c=1;d=4

⇒1/2+1/4=3/4

NT
5 tháng 7 2020 lúc 15:35

uses crt;
var a,b,c,d,tu,msc,ucln,i:integer;
begin
clrscr;
write('Nhap tu cua phan so thu 1:'); readln(a);
repeat
write('Nhap mau cua phan so thu 1:'); readln(b);
until b<>0;
write('Nhap tu cua phan so thu 2:'); readln(c);
repeat
write('Nhap mau cua phan so thu 2:'); readln(d);
until d<>0;
msc:=b*d;
tu:=a*d+b*c;
ucln:=1;
if msc<tu then
begin
for i:=1 to msc do
if (msc mod i=0) and (tu mod i=0) then
begin
if ucln<i then ucln:=i;
end;
end;
if msc=tu then ucln:=tu;
if msc>tu then
begin
for i:=1 to tu do
if (msc mod i=0) and (tu mod i=0) then
begin
if ucln<i then ucln:=i;
end;
end;
if (msc div ucln)=1 then writeln(a,'/',b,'+',c,'/',d,'=',tu div ucln)
else writeln(a,'/',b,'+',c,'/',d,'=',tu div ucln,'/',msc div ucln);
readln;
end.

Bình luận (0)
VV
31 tháng 8 2021 lúc 15:44

program hieups; var a,b,c,d,msc: longint; function UCLN(a,b: longint): longint; var r: longint; begin r := a mod b; while r <> 0 do begin r := a mod b; a := b; b := r; end; UCLN := a; end; procedure Output; var t: longint; begin if (a mod msc = 0) then write(a div msc) else begin t := UCLN(a,msc); a := a div t; msc := msc div t; if msc < 0 then write(-a,'/',abs(msc)) else write(a,'/',msc); end; end; begin readln(a,b,c,d); msc := b * d; a := (a * d) - (c * b); Output; end.

Bình luận (0)
VV
31 tháng 8 2021 lúc 15:45

program hieups;
var a,b,c,d,msc: longint;
function UCLN(a,b: longint): longint;
var r: longint;
       begin
           r := a mod b;
           while r <> 0 do
                 begin
                     r := a mod b;
                     a := b;
                     b := r;
                 end;
            UCLN := a;
       end;

procedure Output;
var t: longint;
        begin
               if (a mod msc = 0) then
                   write(a div msc)
               else   
                  begin 
                      t := UCLN(a,msc);
                      a := a div t;
                      msc := msc div t;
                      if msc < 0 then
                         write(-a,'/',abs(msc))
                      else
                         write(a,'/',msc);
                  end; 
        end;

begin
    readln(a,b,c,d);
    msc := b * d;
    a := (a * d) - (c * b);
    Output;
end.

Bình luận (0)

Các câu hỏi tương tự
BB
Xem chi tiết
VT
Xem chi tiết
TN
Xem chi tiết
QM
Xem chi tiết
HN
Xem chi tiết
BT
Xem chi tiết
DK
Xem chi tiết
BC
Xem chi tiết
HN
Xem chi tiết