// 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:=aend;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)*sgnbend;begin var p,q:integer; Write('Введите числитель и знаменатель: '); Read(p,q); RedFrac(p,q); Writeln('Результат: ',p,' ',q)end.
ПримерВведите числитель и знаменатель: -210 165Результат: -14 11