Как в Pascal Abc сделать контроль ввода данных? Так, что бы при вводе любого символа,...

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

Как в Pascal Abc сделать контроль ввода данных? Так, что бы при вводе любого символа, кроме числа выдавало не ошибку, а говорила что "Введено не число" и возвращалось, чтоб заменить этот символ на цифру


Информатика (68 баллов) | 54 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Могу предложить такой вариант - в цикле 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

(3.5k баллов)