Написать алгоритм сложения двух обыкновенных дробей вида а/b и с/d. НЕ СЛОВАМИ!

0 голосов
86 просмотров

Написать алгоритм сложения двух обыкновенных дробей вида а/b и с/d. НЕ СЛОВАМИ!


Информатика (327 баллов) | 86 просмотров
0

На алгоритмическом языке? Или можно на паскале?

0

Алгоритмическом

Дан 1 ответ
0 голосов
Правильный ответ

Эту задачу уже решали здесь. Но, если трудно поискать, то вот программа:
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-я дробь (числитель и знаменатель):
3 4
2-я дробь (числитель и знаменатель):
5 6
1 7/12

(194k баллов)