Могу предложить такой вариант - в цикле repeat число вводится как строка и посимвольно проверяется. если введено неправильно - возвращает на ввод, если правильно - преобразует строку в число для дальнейшей работы.
var a,err: integer; s: string; i: byte; error: boolean; begin repeat error:=true; writeln ('введите число'); readln (s); for i:=1 to length(s) do begin if (ord(s[i])<48) or (ord(s[i])>57) then begin error:=false; writeln ('введено не число'); break; end end; until error=true; val(s,a,err); writeln ('введено число ',a); end.
Пример: введите число 12O введено не число введите число 120 введено число 120
Ваня и С.- отличники, значит Ваня не С.
Петя и В.- троечники, значит Петя не В.
В. ростом выше П., а Коля ростом ниже П. - значит Коля не В. и Коля не П.
так как Петя – троечник, то Петя не С.
так как Ваня – отличник, то Ваня не В.
Саша не П., не С., не К.
тогда Коля это С. Коля это не К.
т.к. Саша это В. и Саша одного роста с Петей, то Петя не может быть П., т.к. В выше П., Петя это К.
отсюда Ваня это П.
В П С К
Cаша + - - -
Коля - - + -
Петя - - - +
Ваня - + - -
Ваня – П
Петя – К
Саша – В
Коля – С