P
pro·school.ru
Каталог школ

Отладка программ и поиск ошибок

💻 Информатика · 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.

Подбор тестов

Хорошие тесты проверяют не только обычные случаи, но и граничные: пустой ввод, ноль, самое большое и самое маленькое значения. Часто именно на границах прячутся ошибки — например, цикл выполняется на один раз больше или меньше, чем нужно.

Частые ошибки. Нельзя считать программу верной, проверив её лишь на одном примере, — нужны разные тесты, включая граничные. Синтаксическую ошибку находит среда, а логическую — только проверка на тестах и трассировка. Отладочные строки вывода после исправления убирают.

Кратко о главном

  • Отладка — поиск и исправление ошибок в программе.
  • Ошибки бывают синтаксические, времени выполнения и логические.
  • Синтаксические находит среда; логические выявляют только тестами.
  • Трассировка — пошаговый разбор с записью значений переменных.
  • Тесты должны включать граничные случаи: ноль, пустой ввод, крайние значения.