Для Delphi-консоли:
| Код | program NOD; {$APPTYPE CONSOLE} uses SysUtils; var m,n:integer;{m-числитель, n-знаменатель} procedure fNod(var x,y:integer); {процедура находит НОД и преобразуют дробь} var i:integer; begin i:=x; while (x mod i<>0) or (y mod i<>0) do {выход при max i, которое подходит} dec(i); x:=x div i; y:=y div i; end; begin writeln('Please enter m:'); readln(m); writeln('Please enter n:'); repeat readln(n); if n=0 then writeln('Error: Invalid data. Please reenter n'); until n<>0; if m*n>0 then write('+'){вывод знака} else if m*n<>0 then write('-'); m:=abs(m); n:=abs(n); write(m div n,' ');{вывод целой части} m:=m mod n; if m<>0 then{вывод дробной части, если она есть} begin fNod(m,n); writeln(m,'/',n); end else writeln; readln; end.
| |