Основы программирования на языке Turbo Pascal. Беляева И.В. - 147 стр.

UptoLike

Составители: 

147
{Процедура «безопасного» ввода целого числа X
Msg – выводимая строкаподсказка
[ minVal .. maxVal ] – допустимый интервал значения X}
procedure ReadInt(msg: string; var x: integer;
minVal, maxVal: integer);
var
s: string; {Вводимая строка}
errCode: integer; {Код ошибки}
isError: boolean; {Флаг ошибки}
begin
repeat
write(msg); {Вывод приглашения}
readln(s); {Чтение строки, ВВЕДЕННОЙ ПОЛЬЗОВАТЕЛЕМ}
val(s,x,errCode); {Попытка получить целое число из строки}
{Ошибка есть, если код ошибки не 0, или если код ошибки 0,
но введенное число лежит вне допустимого интервала}
isError := (ErrCode<>0) or
(ErrCode=0) and ( (x<=minVal) or (x>=maxVal) );
{Если есть ошибка, то вывести сообщение об ошибке}
if isError then writeln('Error! Please repeat input!');
until not isError; {Если нет ошибки, то выходим из цикла,
а если ошибка есть, то снова вводим число}
end;
{Функция перевода целого числа X в строку
возвращается строка}
function IntToStr(x: integer): string;
var
s: string;
begin
Str(x, s);
IntToStr := s;
end;