var n1, d1, n2, d2, m, n, d, nn, dd, nod: integer; r: double;begin Writeln('Нахождение суммы двух простых дробей.'); Write('Введите через пробел числитель и знаменатель первой дроби: '); Readln(n1, d1); Write('Введите через пробел числитель и знаменатель второй дроби: '); Readln(n2, d2); {Находим результат, как простую дробь} n := n1 * d2 + n2 * d1; d := d1 * d2; r := n / d; {Если дробь неправильная, надо исключить целое число} if n > d then begin m := n div d; n := n mod d end else if n = d then begin m := 1; n := 0; d := 1 end else m := 0; {Возможно числитель и знаменатель дроби могут быть частично сокращены} if n <> 0 then begin {ищем НОД числителя и знаменателя и делим их на него} nn := n; dd := d; while nn <> dd do if nn > dd then nn := nn - dd else dd := dd - nn; nod := nn; if nod <> 1 then begin n := n div nod; d := d div nod end; end; Write(n1, '/', d1, ' + ', n2, '/', d2, ' = '); if m > 0 then if n <> 0 then Writeln(m, ' ', n, '/', d, ' = ', r) else Writeln(m) else Writeln(n, '/', d, ' = ', r)end.Тестовые примеры:Нахождение суммы двух простых дробей.Введите через пробел числитель и знаменатель первой дроби: 25 5Введите через пробел числитель и знаменатель второй дроби: 64 25625/5 + 64/256 = 5 1/4 = 5.25Нахождение суммы двух простых дробей.Введите через пробел числитель и знаменатель первой дроби: 8 19Введите через пробел числитель и знаменатель второй дроби: 154 2218/19 + 154/221 = 1 495/4199 = 1.11788521076447Нахождение суммы двух простых дробей.Введите через пробел числитель и знаменатель первой дроби: 5 7Введите через пробел числитель и знаменатель второй дроби: 12 425/7 + 12/42 = 1Нахождение суммы двух простых дробей.Введите через пробел числитель и знаменатель первой дроби: 1 5Введите через пробел числитель и знаменатель второй дроби: 3 111/5 + 3/11 = 26/55 = 0.472727272727273