program noname; uses crt; var f,f1,f2,m:longint; begin clrscr; write('m='); readln(m); f1:=1; f2:=1; while f<=m do begin f:=f1+f2; f2:=f1; f1:=f; end; writeln('f=',f); end.
Сначала надо избавиться от ошибок (пункт №3) иначе не сможем выполнить 1 и 2 пункт задания. Исправляем if N mod 10 k:=N mod 10; на if (N mod 10 < k) then k:=N mod 10; Исправляем N:N div 10; на N:= N div 10;
После исправления ошибок при вводе 537 получим 3 Программа будет работать правильно для любого числа, у которого вторая цифра слева меньше первой цифры, например: 7193
Чтобы программа работала правильно для всех чисел надо изменить это: while N > 10 do на while N > 0 do
После всех исправлений код программы стал таким: var N, k: integer; begin readln(N); k := 9; while N > 10 do begin if (N mod 10 < k) then k := N mod 10; N := N div 10; end; write(k) end.
program noname;
uses crt;
var
f,f1,f2,m:longint;
begin
clrscr;
write('m=');
readln(m);
f1:=1;
f2:=1;
while f<=m do begin
f:=f1+f2;
f2:=f1;
f1:=f;
end;
writeln('f=',f);
end.