Сократить обыкновенную дробь - Pascal ABC
Формулировка задачи:
Друзья, напишите пожалуйста программу pascal. Вводится числитель и знаменатель обыкновенной дроби, сократить ее. через procedure пожалуйста. не много, для 10 класса.
Решение задачи: «Сократить обыкновенную дробь»
textual
Листинг программы
function gmd(a,b:integer):integer; begin if b=0 then gmd:=a else gmd:=gmd(b,a mod b); end; procedure frac(var a,b:integer); var x:integer; begin x:=gmd(a,b); a:=a div x; b:=b div x; end; var a,b,x:integer; begin write('a b:'); readln(a,b); frac(a,b); writeln(a,'/',b); readln; end.
Объяснение кода листинга программы
- function gmd(a,b:integer):integer; Эта функция находит наибольший общий делитель (НОД) двух целых чисел a и b.
- begin Если b равно 0, то НОД равен a. Если b не равно 0, то функция вызывает саму себя, но уже с аргументами b и a mod b (остаток от деления a на b). Это продолжается до тех пор, пока b не станет равным 0.
- procedure frac(var a,b:integer); Эта процедура сокращает дробь, представленные в виде двух целых чисел a и b.
- var x:integer; Здесь объявляется переменная x, которая будет использоваться в этой процедуре.
- begin Сначала вызывается функция gmd, результат сохраняется в переменной x.
- a:=a div x; Значение переменной a делится на значение переменной x. Результат присваивается обратно переменной a.
- b:=b div x; Значение переменной b делится на значение переменной x. Результат присваивается обратно переменной b.
- end; Конец процедуры.
- var a,b,x:integer; Здесь объявляются три переменные a, b и x типа integer.
- begin Ввод исходных данных.
- write('a b:'); Выводится приглашение для ввода двух целых чисел.
- readln(a,b); Вводятся два целых числа, которые сохраняются в переменных a и b.
- frac(a,b); Вызывается процедура frac, передавая ей в качестве аргументов переменные a и b.
- writeln(a,'/',b); Выводится сокращенная дробь в виде пары чисел, разделенных горизонтальной линией.
- readln; Ввод-вывод завершен, ожидается нажатие клавиши для завершения программы.
- end. Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д