Помогите пожалуйста! (Не шарю вообще)
"Составьте программу сложения двух простых дробей. Результат должен быть несократимой дробью. Используйте подпрограмму вычисления НОД по алгоритму Евклида. Простая дробь задаётся двумя числами: числителем и знаменателем".
Очень прошу.
Ответы
Ответ дал:
0
1 program Evklid
2 var m, n: integer:
3 begin
4 writeln('Введите m, n');
5 readln (m, n) ;
6 while m<>n do
7 if m>n then m: =m-n
8 else n:=n-m;
9 writeln('НОД =' ,m);
10 end.
2 var m, n: integer:
3 begin
4 writeln('Введите m, n');
5 readln (m, n) ;
6 while m<>n do
7 if m>n then m: =m-n
8 else n:=n-m;
9 writeln('НОД =' ,m);
10 end.
Ответ дал:
0
Evklid; integer;
Ответ дал:
0
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.
Ответ дал:
0
При вводе введите числитель и знаменатель 1 дроби через пробел: 2 3
введите числитель и знаменатель 2 дроби через пробел: -4 3
программа зацикливается
введите числитель и знаменатель 2 дроби через пробел: -4 3
программа зацикливается
Похожие вопросы
2 года назад
2 года назад
8 лет назад
8 лет назад
9 лет назад
9 лет назад