Контроль ввода и проверка корректности данных
💻 Информатика · 9 класс
Зачем проверять вводимые данные
Контроль ввода (проверка корректности данных) — это часть программы, которая убеждается, что введённые пользователем данные допустимы, прежде чем использовать их в вычислениях. Без такой проверки программа может выдать неверный результат или аварийно завершиться.
Пользователь может ошибиться: ввести букву вместо числа, отрицательный возраст или ноль там, где делить на него нельзя. Хорошая программа предвидит такие ситуации и реагирует понятно.
Что обычно проверяют
- Тип данных: введено ли число, а не текст.
- Диапазон: попадает ли значение в допустимые границы.
- Особые значения: например, делитель не должен равняться нулю.
- Логическую осмысленность: возраст не бывает отрицательным.
Виды ограничений
| Данные | Допустимые значения | Недопустимо |
|---|---|---|
| Возраст ученика | от 6 до 18 | -3, 200 |
| Оценка | от 2 до 5 | 0, 7 |
| Делитель | любое число, кроме 0 | 0 |
| Номер месяца | от 1 до 12 | 0, 13 |
Разбор примера
Программа просит ввести положительное число. Если введено неверное значение, нужно повторить запрос. Алгоритм с циклом проверки:
ввести x
пока x <= 0 повторять:
вывести "Нужно положительное число"
ввести x
конец цикла
# дальше x точно больше нуляЦикл «пока» не выпустит программу дальше, пока пользователь не введёт корректное значение. Это самый надёжный приём контроля ввода.
Частая ошибка: проверять данные уже после вычислений. Тогда деление на ноль или другая ошибка успеет произойти. Проверку всегда делают до использования данных.
Сообщения об ошибке
Важно не просто отвергнуть неверный ввод, но и объяснить пользователю, что от него хотят. Понятное сообщение вроде «введите число от 1 до 12» помогает исправить ошибку быстро.
Проверка диапазона со сложным условием
Часто значение должно одновременно удовлетворять двум границам — быть не меньше нижней и не больше верхней. Тогда используют логическую операцию «и», объединяющую два сравнения.
ввести m
если (m >= 1) и (m <= 12):
# номер месяца верный
иначе:
вывести "Ошибка: месяц от 1 до 12"Здесь оба условия должны выполняться вместе. Если хотя бы одно ложно, число выходит за допустимые границы, и программа сообщает об ошибке.
Защитное программирование
Подход, при котором программу заранее готовят к неверным данным и нештатным ситуациям, называют защитным программированием. Его принципы просты, но очень важны:
- Не доверяй вводу — всегда проверяй данные.
- Предусматривай ответ на любую ошибку, а не только на верный случай.
- Сообщай пользователю о проблеме понятно и подсказывай, как её исправить.
Программа, написанная по этим правилам, работает устойчиво и не «падает» при первой же опечатке пользователя.
Кратко о главном
- Контроль ввода проверяет данные до их использования.
- Проверяют тип, диапазон, особые и осмысленные значения.
- Цикл «пока» позволяет повторять запрос до корректного ввода.
- Программа должна сопровождать ошибку понятным сообщением.