Проверка введеного символа в переменную

BestInTheWorld

Имеется переменная a типа integer, как можно сделать так, чтобы пока пользователь не введет число из ДИАПАЗОНА integer(т.е исключить ввод вещественных чисел и букв, а также чтобы вводимое число попадало в диапазон integer), программа просила ввести заного число
7 ответов

BestInTheWorld

var a,k:integer;
     s:string;
begin
repeat
write('Введите целое число');
readln(s);
val(s,a,k);
until k=0;


BestInTheWorld

А разве в этом случае будет проверка на диапазон?


BestInTheWorld

Да, если в строке будет число выходящее за пределы типа integer, будет ошибка и повтор ввода.


BestInTheWorld

Тем не менее иногда почему-то выскакивает ошибка проверки диапазона


BestInTheWorld

Приведите пример такого ввода и текст ошибки.


BestInTheWorld

Ошибка 201: Ошибка проверки диапазона, вводил: 23232323


BestInTheWorld

Если пишете во Free Pascal нефиг лезть в раздел Турбо Паскаль, в Турбо это работает.Да, если ввести число типа Longint, а переменная типа Integer, то не срабатывает, если число превышает тип Longint то срабатывает. Если объявить a:Longint то вроде все нормально.