Друзья, напишите пожалуйста программу pascal. Вводится числитель и знаменатель обыкновенной дроби, сократить ее. через procedure пожалуйста.

Вопрос школьника по предмету Информатика

Друзья, напишите пожалуйста программу pascal. Вводится числитель и знаменатель обыкновенной дроби, сократить ее. через procedure пожалуйста.

Ответ учителя по предмету Информатика

// PascalABC.NET 3.2, сборка 1387 от 17.02.2017

// Внимание! Если программа не работает, обновите версию!

function Gcd(a,b:integer):integer; // НОД

begin

  while b<>0 do begin a:=a mod b; Swap(a,b) end;

  Result:=a

end;

procedure RedFrac(var a,b:integer); // сокращение дроби

begin

  var sgna:=sign(a); // мы должны учитывать знак!

  var sgnb:=sign(b); // мы должны учитывать знак!

  a:=abs(a); b:=abs(b);

  var d:=Gcd(a,b);

  a:=(a div d)*sgna; b:=(b div d)*sgnb

end;

begin

  var p,q:integer;

  Write(‘Введите числитель и знаменатель: ‘); Read(p,q);

  RedFrac(p,q);

  Writeln(‘Результат: ‘,p,’ ‘,q)

end.

Пример

Введите числитель и знаменатель: -210 165

Результат: -14 11

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Похожие вопросы от пользователей