Предмет: Информатика,
автор: msodintsova4
Помогите пожалуйста! (Не шарю вообще)
"Составьте программу сложения двух простых дробей. Результат должен быть несократимой дробью. Используйте подпрограмму вычисления НОД по алгоритму Евклида. Простая дробь задаётся двумя числами: числителем и знаменателем".
Очень прошу.
Lenofag:
Какой язык программирования
Ответы
Автор ответа:
24
Program nd;
function nod(n,m: integer): integer;
begin
while(n<>0) and (m<>0) do
begin
if n>=m then n:=n mod m else m:=m mod n;
end;
nod:=m+n;
end;
var m1,m2,n1,n2,t: integer;
begin
write('введите числитель и знаменатель 1 дроби через пробел: ');
readln(m1,n1);
write('введите числитель и знаменатель 2 дроби через пробел: ');
readln(m2,n2);
t:=nod(n2*m1+m2*n1,n1*n2);
write(m1,'/',n1,' + ',m2,'/',n2,' = ',(n2*m1+m2*n1) div t,'/',(n1*n2) div t);
end.
function nod(n,m: integer): integer;
begin
while(n<>0) and (m<>0) do
begin
if n>=m then n:=n mod m else m:=m mod n;
end;
nod:=m+n;
end;
var m1,m2,n1,n2,t: integer;
begin
write('введите числитель и знаменатель 1 дроби через пробел: ');
readln(m1,n1);
write('введите числитель и знаменатель 2 дроби через пробел: ');
readln(m2,n2);
t:=nod(n2*m1+m2*n1,n1*n2);
write(m1,'/',n1,' + ',m2,'/',n2,' = ',(n2*m1+m2*n1) div t,'/',(n1*n2) div t);
end.
введите числитель и знаменатель 2 дроби через пробел: 5 4
3/4 + 5/4 = 2/1
введите числитель и знаменатель 2 дроби через пробел: -4 3
программа зацикливается
Похожие вопросы
Предмет: Алгебра,
автор: Smiley17
Предмет: Українська мова,
автор: odalaf321
Предмет: Английский язык,
автор: GTAVk
Предмет: Обществознание,
автор: Виктория1234567899