Умножение дроби на дробь - Pascal ABC
Формулировка задачи:
Помогите, пожалуйста. Даны две дроби A/B и С/D (A,B,C,D-натуральные числа). составить программу для умножения дроби на дробь. Результат должен быть несократимой дробью.
Решение задачи: «Умножение дроби на дробь»
textual
Листинг программы
uses crt; {нахождение НОД по алгоритму Эвклида} function nod(x,y:integer):integer; begin repeat if x>y then x:=x mod y else y:=y mod x; until (x=0) or (y=0); nod:=x+y; end; {умножение} procedure umn(a,b,c,d:integer;var e,f:integer); begin e:=a*c; f:=b*d; e:=e div nod(e,f); f:=f div nod(e,f); write(a,'/',b,'*',c,'/',d,'=',e,'/',f); end; var a,b,c,d,e,f:integer; begin repeat writeln('Введите числитель и знаменатель первой дроби, натуральные числа:'); read(a,b); until(a>0)and(b>0); repeat writeln('Введите числитель и знаменатель второй дроби, натуральные числа:'); read(c,d); until(c>0)and(d>0); umn(a,b,c,d,e,f); end.
Объяснение кода листинга программы
- Программа начинается с подключения модуля CRT, который обеспечивает взаимодействие с консолью.
- Далее идет функция nod(x,y:integer):integer;, которая находит НОД по алгоритму Эвклида.
- Затем идет процедура umn(a,b,c,d:integer;var e,f:integer), которая выполняет умножение двух дробей.
- В основной части программы после объявления шести переменных типа integer, идет цикл, который повторяется до тех пор, пока пользователь не введет некорректные значения для числителя и знаменателя первой и второй дробей.
- Внутри цикла происходит вывод сообщения с просьбой ввести числитель и знаменатель первой и второй дробей.
- После корректного ввода значений и выполнения умножения двух дробей, результат выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д