Отладка программ и поиск ошибок
💻 Информатика · 9 класс
Отладка программ и поиск ошибок
Написать программу без единой ошибки удаётся редко. Отладка — это процесс поиска и исправления ошибок в программе. Чтобы исправлять ошибки осознанно, нужно понимать, какими они бывают и как их обнаруживать.
Виды ошибок
Ошибки делят на три группы в зависимости от того, когда и как они проявляются.
| Вид ошибки | Когда проявляется | Пример |
|---|---|---|
| Синтаксическая | при разборе кода | пропущена скобка или кавычка |
| Ошибка выполнения | во время работы | деление на ноль |
| Логическая | в неверном результате | программа считает не ту сумму |
Синтаксические ошибки нарушают правила языка, их находит сама среда программирования и не запускает программу. Ошибки выполнения возникают уже во время работы и аварийно её прерывают — например, при делении на ноль или выходе за границу массива. Логические ошибки самые коварные: программа работает и выдаёт ответ, но неправильный.
Приёмы отладки
Чтобы найти логическую ошибку, программу проверяют на тестах — наборах входных данных с заранее известным правильным ответом. Если результат расходится с ожидаемым, ошибку ищут, наблюдая за значениями переменных в ходе работы.
Полезный приём — вывод промежуточных значений: сумма := сумма + a
вывод сумма | временная строка для отладки — так видно, как меняется переменная на каждом шаге.Трассировка
Трассировка — это пошаговое выполнение программы «вручную» с записью значений всех переменных после каждой команды. Трассировочная таблица помогает увидеть, на каком шаге значение стало неверным, и точно определить место ошибки.
Пример трассировки фрагментаa := 2; b := 3; a := a + b; b := a - b:после строки 1: a=2; после строки 2: a=2, b=3; после строки 3: a=5; после строки 4: b=2.
Подбор тестов
Хорошие тесты проверяют не только обычные случаи, но и граничные: пустой ввод, ноль, самое большое и самое маленькое значения. Часто именно на границах прячутся ошибки — например, цикл выполняется на один раз больше или меньше, чем нужно.
Частые ошибки. Нельзя считать программу верной, проверив её лишь на одном примере, — нужны разные тесты, включая граничные. Синтаксическую ошибку находит среда, а логическую — только проверка на тестах и трассировка. Отладочные строки вывода после исправления убирают.
Кратко о главном
- Отладка — поиск и исправление ошибок в программе.
- Ошибки бывают синтаксические, времени выполнения и логические.
- Синтаксические находит среда; логические выявляют только тестами.
- Трассировка — пошаговый разбор с записью значений переменных.
- Тесты должны включать граничные случаи: ноль, пустой ввод, крайние значения.