Найти сумму в виде правильной несократимой дроби с выделенной целой частью - PascalABC.NET
Формулировка задачи:
Даны натуральные числа a , b , c , d . Найти сумму (a/b)+(c/d) в виде правильной несократимой дроби с выделенной целой частью.
Пример
Решение задачи: «Найти сумму в виде правильной несократимой дроби с выделенной целой частью»
textual
Листинг программы
var a,b,c,d,p,q,t,x,y,nd:integer;
begin
repeat
writeln('Введите числители и знаменатели двух дробей, натуральные числа');
readln(a,b,c,d);
until(a>0)and(b>0)and(c>0)and(d>0);
//суммируем
p:=a*d+b*c;
q:=b*d;
//находим НОД
x:=p;
y:=q;
while x<>y do
if x>y then x:=x-y else y:=y-x;
nd:=x;
//сокращаем
p:=p div nd;
q:=q div nd;
//определяем целую часть и новый числитель
t:=p div q;
p:=p mod q;
//выводим результат
write(a,'/',b,'+',c,'/',d,'=');
if t=0 then write(p,'/',q)
else write(t,' ',p,'/',q);
end.
Объяснение кода листинга программы
- Переменные a, b, c, d, p, q, t, x, y, nd инициализируются как целочисленные значения.
- Программа повторяет запрос на ввод числителей и знаменателей двух дробей до тех пор, пока эти числа не будут положительными.
- Затем происходит суммирование двух дробей, и результат сохраняется в переменных p и q.
- Следующий этап - нахождение НОДа (наименьшего общего делителя) для чисел p и q, и сохранение этого значения в переменной nd.
- Далее происходит сокращение суммы дробей путем деления на НОД, и результаты сохраняются в переменных p и q.
- Затем определяется целая часть суммы и новый числитель, и результаты сохраняются в переменных t и p соответственно.
- Наконец, программа выводит результат в виде несократимой дроби в формате a/b+c/d=t/nd, где
a,b,c,d,tиnd- это значения переменных a, b, c, d, t и nd соответственно. Если t=0, то вместо t/nd выводится p/q. Если t не равно нулю, то выводится t, пробел, p/q.