Умножить дробь на дробь и получить ответ в виде несократимой дроби - Pascal

Узнай цену своей работы

Формулировка задачи:

Даны две дроби A/B и C/D (где А, В, С, D — натуральные числа). Умножить дробь на дробь и получить ответ в виде несократимой дроби.

Решение задачи: «Умножить дробь на дробь и получить ответ в виде несократимой дроби»

textual
Листинг программы
var a,b,c,d,nod:integer;
begin
repeat
writeln('Введите числитель и знаменатель первой дроби ');
readln(a,b);
until(a>0)and(b>0);
repeat
writeln('Введите числитель и знаменатель второй дроби ');
readln(c,d);
until(c>0)and(d>0);
//найдем НОД
a:=a*c;
b:=b*d;
c:=a;
d:=b;
while c<>d do
if c>d then c:=c-d else d:=d-c;
nod:=c;
//сократим дробь
a:=a div nod;
b:=b div nod;
//выведем сокращенную дробь
writeln('Результат умножения:');
if a div b>0 then write(a div b,' ',a mod b,'/',b)
else write(a,'/',b);
end.

Объяснение кода листинга программы

  1. Создаются переменные a, b, c и d типа integer.
  2. Пользователю предлагается ввести числитель и знаменатель первой дроби. Это делается с помощью функции readln().
  3. Введенные значения сохраняются в переменных a и b. Проверяется, что обе дроби неотрицательны с помощью условия a>0 и b>0. Если это условие не выполняется, то цикл повторяется.
  4. Аналогично пользователю предлагается ввести числитель и знаменатель второй дроби. Сохраненные значения сохраняются в переменных c и d.
  5. Находится наибольший общий делитель (НОД) для числителей первой и второй дробей. Для этого выполняется последовательное умножение и деление числителей и знаменателей до тех пор, пока не будет достигнуто равенство или одно из чисел не станет меньше другого. Значение НОД сохраняется в переменной nod.
  6. Сокращается дробь для первой и второй дроби путем деления на НОД. Сохраненные значения сохраняются в переменных a и b.
  7. Выводится результат умножения дробей в виде сокращенной дроби. Если результат деления первой дроби на вторую больше нуля, то выводятся числитель и знаменатель первой дроби, разделенные пробелами и дефисом, а также числитель и знаменатель второй дроби, разделенные дефисом и знаком деления. Если результат деления меньше нуля, то выводится только числитель первой дроби, разделенный дефисом и знаком деления.

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы