Сократить обыкновенную дробь - 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.

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

  1. function gmd(a,b:integer):integer; Эта функция находит наибольший общий делитель (НОД) двух целых чисел a и b.
  2. begin Если b равно 0, то НОД равен a. Если b не равно 0, то функция вызывает саму себя, но уже с аргументами b и a mod b (остаток от деления a на b). Это продолжается до тех пор, пока b не станет равным 0.
  3. procedure frac(var a,b:integer); Эта процедура сокращает дробь, представленные в виде двух целых чисел a и b.
  4. var x:integer; Здесь объявляется переменная x, которая будет использоваться в этой процедуре.
  5. begin Сначала вызывается функция gmd, результат сохраняется в переменной x.
  6. a:=a div x; Значение переменной a делится на значение переменной x. Результат присваивается обратно переменной a.
  7. b:=b div x; Значение переменной b делится на значение переменной x. Результат присваивается обратно переменной b.
  8. end; Конец процедуры.
  9. var a,b,x:integer; Здесь объявляются три переменные a, b и x типа integer.
  10. begin Ввод исходных данных.
  11. write('a b:'); Выводится приглашение для ввода двух целых чисел.
  12. readln(a,b); Вводятся два целых числа, которые сохраняются в переменных a и b.
  13. frac(a,b); Вызывается процедура frac, передавая ей в качестве аргументов переменные a и b.
  14. writeln(a,'/',b); Выводится сокращенная дробь в виде пары чисел, разделенных горизонтальной линией.
  15. readln; Ввод-вывод завершен, ожидается нажатие клавиши для завершения программы.
  16. end. Конец программы.

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


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

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

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