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

Bạn chưa đăng nhập. Vui lòng đăng nhập để hỏi bài
Laizie

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

Nguyễn Lê Phước Thịnh
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.

Vũ Quang Vinh
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.

Vũ Quang Vinh
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.


Các câu hỏi tương tự
Big City Boy
Xem chi tiết
Võ Trọng
Xem chi tiết
Trang Nguyễn
Xem chi tiết
Quỳnh
Xem chi tiết
Hakita Nguyen
Xem chi tiết
Bao An Nguyen Thien
Xem chi tiết
Đặng Kiên
Xem chi tiết
Bùi Quỳnh Chi
Xem chi tiết
Hồ Lê Phương Nam
Xem chi tiết