Показать сообщение отдельно
  #1  
Старый 24.09.2014, 18:48
yana25 yana25 вне форума
Прохожий
 
Регистрация: 24.09.2014
Сообщения: 1
Версия Delphi: Delphi 10
Репутация: 10
По умолчанию Не могу понять, почему выдает ошибку

Задание: алгоритм Евклида нахождения наибольшего общего делителя (НОД) неотрицательных целых чисел основан на следующих свойствах этой величины. Пусть m и n - одновременно не равные нулю целые неотрицательные числа и пусть m>=n. Тогда, если n=0, то НОД(m,n)=m, а если n<>0, то для чисел m, n и r, где r - остаток от деления m на n, выполняется равенство НОД(m,n)=НОД(n,r).

Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;
  var m,n,r:integer;
function NOD(m,n:integer):integer;
begin
  try
    writeln('vvedite m and n');
    readln(m,n);
    while (m>=n)and(NOD(m,n)<>0) do
     if n=0 then NOD:=m
     else begin
       r:=m mod n;
       m:=n;
       n:=r;
       NOD:=NOD(m,n);
    end;
writeln('NOD');
readln;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
Ответить с цитированием