Top.Mail.Ru
Ответы

Как в паскале сократить дробь?

Дана обыкновенная дробь. Ее нужно сократить и вывести на экран, то есть найти наибольший общий делитель числителя и знаменателя. Как это сделать? Мне нужен метод, программу напишу сам.

По дате
По рейтингу
Аватар пользователя
Ученик
11лет

Ну короче вот:

Var chisl, znam, a:integer;
Var chislX, znamX, aX:real;
begin
writeln('ведите числитель');
readln(chisl);
writeln('ведите знаменатель');
readln(znam);

a:=99999; //начало здесь
repeat
a:=a-1;
if (chisl mod a = 0) and (znam mod a = 0) then
begin
chislX:=chisl;
znamX:=znam;
aX:=a;
chislX:=chislX/aX;
znamX:=znamX/aX;
writeln('сокращаем на ', a);
writeln(chislX, '/', znamX);
end
else
until a = 2; //конец тут

end.

Аватар пользователя
Мыслитель
11лет

Перебираешь целые числа от 1 делители на цело отдельно числителя и знаменателя, потом сравниваешь ищешь одинаковые потом наибольшее из одинаковых. Так же как бы ты это делал на бумаге. Сначала проверяешь деление на цело большего на меньшее, может сразу сократится.



Видео по теме