Сложение дробей - Turbo Pascal (29684)

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

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

Даны две рациональные дроби: a/b и c/d. Сложите их и результат представьте в виде

несократимой

дроби m/n

Решение задачи: «Сложение дробей»

textual
Листинг программы
uses crt;
{нахождение НОД}
function Nod(a,b:integer):integer;
begin
if a<>0 then Nod:=Nod(b mod a,a)
else Nod:=b;
end;
procedure Vvod(s:string;var a,b:integer);
var c1,c2:integer;
    f:boolean;
begin
repeat
f:=true;
readln(s);
val(copy(s,1,pos('/',s)-1),a,c1);
if c1<>0 then f:=false;
delete(s,1,pos('/',s));
val(s,b,c2);
if c2<>0 then f:=false;
if not f then writeln('Дробь введена неверно, повторите ввод');
until f;
end;
var s:string;
    a,b,c,d,e,f,k:integer;
begin
clrscr;
writeln('Введите две дроби, разделитеь /');
Vvod(s,a,b);
Vvod(s,c,d);
clrscr;
e:=a*d+c*b;
f:=b*d;
k:=Nod(abs(e),abs(f));
e:=e div k;
f:=f div k;
write(a,'/',b,' + ',c,'/',d,' = ',e,'/',f);
readln
end.

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

  1. В функции Nod используется алгоритм нахождения наибольшего общего делителя (НОД) двух чисел. Функция принимает два целых числа a и b в качестве параметров и возвращает наибольший общий делитель этих чисел. Если одно из чисел равно нулю, то возвращается само это число.
  2. В процедуре Vvod считывается строка, представляющая две дроби. Строка разделяется на две части по символу '/', и первая часть присваивается переменной s, а вторая - переменной a. Затем с помощью функции val из библиотеки crtr считываются два целых числа c1 и c2 из переменных s и a соответственно. Если считанное число не равно нулю, то переменная f устанавливается в значение true, иначе - в значение false. После этого строка очищается от введенных данных с помощью функции clrscr, и процесс ввода повторяется до тех пор, пока значение переменной f не станет true.
  3. После завершения процедуры Vvod вычисляются две дроби e и f, представляющие результат умножения дробей a и b и c и d соответственно. Затем вычисляются два целых числа k1 и k2 с помощью функции Nod из библиотеки crtr от абсолютных значений дробей e и f. Затем переменные e и f делятся на полученные целые числа k1 и k2 соответственно, и результаты присваиваются переменным a, b, c и d.
  4. Выводится результат сложения дробей в формате a / b + c / d = e / f.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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