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