Составьте программу сложения двух простых дробей. Результат должен быть несократимой дробью. Используйте подпрограмму вычисления НОД по алгоритму Евклида. Простая дробь задается двумя целыми числами: числителем и знаменателем.
от

1 Ответ

program AddFractions;
function GCD(a, b: integer): integer; begin   while b <> 0 do   begin     a := a mod b;     a := a + b;     b := a - b;     a := a - b;   end;   GCD := a; end;
procedure ReduceFraction(var Numerator, Denominator: integer); var   CommonDivisor: integer; begin   CommonDivisor := GCD(Numerator, Denominator);   Numerator := Numerator div CommonDivisor;   Denominator := Denominator div CommonDivisor; end;
var   Numerator1, Denominator1, Numerator2, Denominator2: integer;
begin   writeln('Введите числитель и знаменатель первой дроби: ');   readln(Numerator1, Denominator1);   writeln('Введите чиситель и знаменатель второй дроби: ');   readln(Numerator2, Denominator2);
     Numerator1 := Numerator1 * Denominator2 + Numerator2 * Denominator1;   Denominator1 := Denominator1 * Denominator2;
     ReduceFraction(Numerator1, Denominator1);
     writeln('Сумма дробей: ', Numerator1, '/', Denominator1);
     readln; end.
от