8.10. Каковы характерные ошибки программирования? 8.11. Является ли отсутствие синтаксических ошибок свидетельством правильности программы? 8.12. Какие ошибки не обнаруживаются транслятором? 8.13. В чем заключается сопровождение программы?

8.10. Каковы характерные ошибки программирования?

Ошибки могут быть допущены на всех этапах решения задачи - от ее постановки до оформления. Разновидности ошибок и соответствующие примеры приведены в таблице:

Вид ошибки Пример
Неправильная постановка задачи Правильное решение неверно сформулированной задачи
Неверный алгоритм Выбор алгоритма, приводящего к неточному или эффективному решению задачи
Ошибка анализа Неполный учет ситуаций, которые могут возникнуть; логические ошибки
Семантические ошибки Непонимание порядка выполнения оператора
Синтаксические ошибки Нарушение правил, определяемых языком программирования
Ошибки при выполнении операций Слишком большое число, деление на ноль, извлечение квадратного корня из отрицательного числа и т. п.
Ошибки в данных Неудачное определение возможного диапазона изменения данных
Опечатки Перепутаны близкие по написанию символы, например, цифра 1 и буквы I, l
Ошибки ввода-вывода Неверное считывание входных данных, неверное задание форматов данных


8.11. Является ли отсутствие синтаксических ошибок свидетельством правильности программы?

Обычно синтаксические ошибки выявляются на этапе трансляции. Многие же другие ошибки транслятору выявить невозможно, так как транслятору неизвестны замыслы программиста.

Отсутствие сообщений машины о синтаксических ошибках является необходимым , но не достаточным условием, чтобы считать программу правильной.

Примеры синтаксических ошибок:

  •  
    • пропуск знака пунктуации;
    • несогласованность скобок;
    • неправильное формирование оператора;
    • неверное образование имен переменных;
    • неверное написание служебных слов;
    • отсутствие условий окончания цикла;
    • отсутствие описания массива и т.п.

8.12. Какие ошибки не обнаруживаются транслятором?

Существует множество ошибок, которые транслятор выявить не в состоянии, если используемые в программе операторы сформированы верно.

Примеры таких ошибок.

Логические ошибки:

  •  
    • неверное указание ветви алгоритма после проверки некоторого условия;
    • неполный учет возможных условий;
    • пропуск в программе одного или более блоков алгоритма.

Ошибки в циклах:

  •  
    • неправильное указание начала цикла;
    • неправильное указание условий окончания цикла;
    • неправильное указание числа повторений цикла;
    • бесконечный цикл.

Ошибки ввода-вывода; ошибки при работе с данными:

  •  
    • неправильное задание тип данных;
    • организация считывания меньшего или большего объёма даных, чем требуется;
    • неправильное редактирование данных.

Ошибки в использов нии переменных:

  •  
    • использование переменных без указания их начальных значений;
    • ошибочное указание одной переменной вместо другой.

Ошибки при работе с массивами:

  •  
    • массивы предварительно не обнулены;
    • массивы неправильно описаны;
    • индексы следуют в неправильном порядке.

Ошибки арифметических операций:

  •  
    • неверное указание типа переменной (например, целочисленного вместо вещественного);
    • неверное определение порядка действий;
    • деление на нуль;
    • извлечение квадратного корня из отрицательного числа;
    • потеря значащих разрядов числа.

Эти ошибки обнаруживаются с помощью тестирования.


8.13. В чем заключается сопровождение программы?

Сопровождение программ - это работы, связанные с обслуживанием программ в процессе их эксплуатации.

Многократное использование разработанной программы для решения различных задач заданного класса требует проведения дополнительных работ, связанных с доработками программы для решения конкретных задач, проведения дополнительных тестовых просчетов и т.п.

Программа, предназначеная для длительной эксплуатации, должна иметь соответствующую документацию и инструкцию по её использованию.