Даны две дроби a/b и c/d где a,b,c,d натуральные числа.требуется найти их сумму и записать в виде x y/z(или y/x,если x=0), где y/z-несократимая дробь. составьте программу для решения этой .
Var a,b,c,d,x,y,z,y1,z1,y2,z2,nod:integer; begin writeln('1-я дробь (числитель и знаменатель):'); readln(a,b); writeln('2-я дробь (числитель и знаменатель):'); readln(c,d); y1:=a*d+c*b; y2:=y1; z1:=b*d; z2:=z1; while (y2>0)and(z2>0) do if y2>z2 then y2:=y2 mod z2 else z2:=z2 mod y2; nod:=y2+z2; y1:=y1 div nod; z:=z1 div nod; x:=y1 div z; y:=y1 mod z; if x>0 then writeln(x,' ',y,'/',z) else writeln(y,'/',z); end.
Пример: 1-я дробь (числитель и знаменатель): 1 10 2-я дробь (числитель и знаменатель): 2 5 1/2
// PascalABC.NET 3.0, сборка 1164 от 11.02.2016 function gcd(a,b:integer):integer; // Нахождение НОД var i: longint; begin while b <> 0 do begin a := a mod b; i := b; b := a; a := i end; Result:=a end;
begin var a:=ReadInteger('a='); var b:=ReadInteger('b='); var nod:=gcd(a,b); if nod>1 then WritelnFormat('Дробь сократима: {0}/{1}={2}/{3}', a,b,a div nod,b div nod) else WritelnFormat('Дробь {0}/{1} несократима',a,b) end.
Var ma:array[1..n,1..n] of integer; i,j:integer; begin writeln('Matrix reading...'); for i:=1 to n do begin writeln; for j:=1 to n do readln(ma[i,j]); end; writeln('First matrix:'); for i:=1 to n do begin writeln; for j:=1 to n do begin write(ma[i,j]:4); if (ma[i,j]<-8) or (ma[i,j]>6) then ma[i,j]:=sqr(ma[i,j]); end; end; writeln; writeln('Final matrix:'); for i:=1 to n do begin writeln; for j:=1 to n do write(ma[i,j]:4); end; end.
begin
writeln('1-я дробь (числитель и знаменатель):');
readln(a,b);
writeln('2-я дробь (числитель и знаменатель):');
readln(c,d);
y1:=a*d+c*b; y2:=y1;
z1:=b*d; z2:=z1;
while (y2>0)and(z2>0) do
if y2>z2 then y2:=y2 mod z2 else z2:=z2 mod y2;
nod:=y2+z2;
y1:=y1 div nod;
z:=z1 div nod;
x:=y1 div z;
y:=y1 mod z;
if x>0 then writeln(x,' ',y,'/',z) else writeln(y,'/',z);
end.
Пример:
1-я дробь (числитель и знаменатель):
1 10
2-я дробь (числитель и знаменатель):
2 5
1/2