Сократить дробь - Pascal ABC
Формулировка задачи:
С клавиатуры вводятся два натуральных числа - числитель и знаменатель дроби. Сократите дробь и выделите целую часть. Запишите ответ, как указано в примере.
Пример:
22 8
2+3/4
8 10
4/5
30 6
5
Помогите пожалуйста! =)
Решение задачи: «Сократить дробь»
textual
Листинг программы
uses crt; var p,q,c,x,y:integer; begin repeat writeln('Введите числитель и знаменатель дроби - натуральные числа'); readln(p,q); until(p>0)and(q>0); //найдем НОД x:=p; y:=q; repeat if x>y then x:=x mod y else y:=y mod x; until (x=0) or (y=0); x:=x+y; //НОД //сократим p:=p div x; q:=q div x; c:=p div q; //целая часть p:=p mod q; //сократим числитель if c>0 then write(c,' '); //если есть целая часть, выведем if (p<>q)and(p>0) then write(p,'/',q);//если есть числитель и не равен знаменателю выводим дробь end.
Объяснение кода листинга программы
- Программа на языке Pascal ABC.
- Переменные: p, q, c, x, y (числа).
- Ввод числителя и знаменателя дроби с помощью функции readln().
- Проверка на положительность числителя и знаменателя с помощью условия (p>0) and (q>0).
- Нахождение НОД (наибольшего общего делителя) с помощью цикла и функций mod() и div().
- Сокращение дроби путем деления числителя и знаменателя на НОД.
- Вывод целой части результата, если она есть.
- Проверка на равенство числителя и знаменателя. Если они не равны, то выводится дробь в формате
числитель/знаменатель
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д