КОМПЬЮТЕР ВЫДАЕТ ОШИБКУ:ВСТРЕЧЕН КОНЕЦ ФАЙЛА, А ОЖИДАЛСЯ ОПЕРАТОР. ПОМОГИТЕ ИСПРАВИТЬ....

0 голосов
388 просмотров

КОМПЬЮТЕР ВЫДАЕТ ОШИБКУ:ВСТРЕЧЕН КОНЕЦ ФАЙЛА, А ОЖИДАЛСЯ ОПЕРАТОР. ПОМОГИТЕ ИСПРАВИТЬ. САМО ЗАДАНИЕ ГЛАСИЛО ТАК:(С клавиатуры вводятся два целых положительных числа. Найти их наибольший общий делитель.)
_________________________________________________________
Function NODfinder (m,n:integer):integer;
var
n1,m1:integer;
begin
if m < n then begin
n1 := m;
m1 := n;
end

else
begin
n1 := n;
m1 := m;
end;
var
m,n,p,n1,m1,result:integer;
begin
writeln ('Введите два числа');
readln(m,n);
while n1 > 0 do



begin
p := m1 mod n1;
m1 := n1;
n1 := p;
Result := m1;
writeln(result);
end;
end.


Информатика (226 баллов) | 388 просмотров
0

Вы забыли end; в конце функции (перед var m,n,p...)

0

Программа при этом запускается, но не работает корректно

0

а как ее изменить, чтоб она при этом работала?

0

Function NODfinder (m,n:integer):integer; var n1,m1:integer; begin if m < n then begin n1 := m; m1 := n; end else begin n1 := n; m1 := m; end; var m,n,p,n1,m1,result:integer; begin writeln ('Введите два числа'); readln(m,n); while n1 > 0 do begin p := m1 mod n1; m1 := n1; n1 := p; Result := m1; writeln(result); end; end.1

0

131

0

fial inuar

0

всё

0

первая ошибка у тебыя нет енда в теле функции. то сесть функция не знает где у нее конец

0

и во вторй части программы гшде идет цикл нету вызова самой функци, то есть программа и функция не связаны. программа не понимает зачем нужна функция

Дан 1 ответ
0 голосов
Правильный ответ

Var m,b,ost,c,result:integer;
////Mbegin
ost:=1;
writeln ('Введите два числа');
readln(b,m);
while ost<>0 do
      begin
      if m>b then
         begin
         c:=m;
         m:=b;
         b:=c;
         end;
      ost:= b mod m;
      result:=m;
      b:=ost;
      end;
writeln('НОД: ',m);
end.

(458 баллов)