В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык

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

Ответ:
PoJalyusta
PoJalyusta
04.10.2020 21:06
Могу предложить такой вариант - в цикле 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
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?