
- •Алгоритмизация и программирование
- •Среда программирования turbo pascal 7.0
- •Структура меню среды
- •Правила оформления программ
- •Команды редактора тп
- •Компиляция и исправление ошибок в программе
- •Элементы языка pascal Алфавит языка
- •Константы. Идентификаторы
- •Операторы Оператор присваивания
- •Оператор безусловного перехода
- •Стандартные функции
- •Условный оператор if
- •Опеpатоp варианта case
- •Составной и пустой операторы
- •Операторы цикла
- •Процедуры прерываний
- •Типизированные константы
- •Структура программы
- •Типы в Турбо Паскале
- •Целые типы
- •Классификация целых типов
- •Встроенные процедуры и функции для целых типов
- •Логический тип
- •Символьный тип
- •Служебные символы
- •Строковый тип
- •Встроенные функции и процедуры для обработки строк
- •Перечислимый тип
- •Ограниченный тип (диапазон)
- •Вещественные типы
- •Вещественные типы
- •Встроенные функции
- •Структурированные типы данных. Массивы
- •Технология программирования Этапы подготовки и решения задач на компьютере
- •3.3. Отладка программных средств
- •Зарезервированные слова Turbo Pascal 7.0
- •Лабораторная работа 1 Основы программирования в среде Турбо Паскаля. Оператор присваивания, процедуры ввода - вывода
- •Приоритет операций в выражении
- •Лабораторная работа 2 Программирование разветвленных алгоритмов. Операторы передачи управления
- •Лабораторная работа 3 Программирование циклических алгоритмов с заданным числом повторений
- •Лабораторная работа 4 Программирование циклических алгоритмов с предусловием
- •Лабораторная работа 5 Программирование циклических алгоритмов с постусловием
- •Модифицировать программу 3_2 для вычисления функций f1(X) и f2 (X) с применением оператора цикла с постусловием. Выполнить ее и сравнить результа-ты с полученными ранее.
- •Лабораторная работа 6 Программирование алгоритмов обработки одномерных массивов
- •Задание 1
- •Лабораторная работа 7 Программирование алгоритмов обработки двумерных массивов
- •Порядок выполнения лабораторных работ
- •Приложение 1 Обозначения графические в схемах алгоритмов (гост 19.701-0)
- •Приложение 2 Сообщение об ошибках Сообщения об ошибках периода компиляции
- •Сообщения об ошибках периода исполнения Ошибки операционной системы dos
- •Ошибки вода - вывода
- •Критические ошибки
- •Приложение 3 Кодировка символов в соответствии с кодами ascii
- •Альтернативная кодировка госТа для кодов 128...255
- •Приложение 5 Клавиши с кодами из двух частей
- •Содержание
3.3. Отладка программных средств
Отладка программы обнаружение, локализация и исправление всех ошибок программы. Она включает исправление синтаксических ошибок, которые выявляет компилятор, а также локализацию семантических (или алгоритми- ческих) ошибок, что возможно лишь в процессе тестирования.
Тестирование проверка работы программы при задании специальным образом подобранных исходных данных, для которых известен результат. Такие данные называются тестовыми. Количество тестовых наборов определяется конкретно для каждой программы.
При возникновении семантических ошибок в одних случаях происходит аварийная остановка в работе программы и на дисплей выдается диагностическое сообщение об ошибке. В других случаях смысловые ошибки не приводят к завершению выполнения программы, но получаются неверные результаты. Такие ошибки называются логическими или алгоритмическими (их поиск более труден). Они могут быть обнаружены (а может, и нет) только при тестировании программы.
Тестирование предполагает:
1. Подготовку тестовых наборов. Подбираются специальным образом наборы входных данных, для которых заранее просчитан результат.
2. Прогон теста непосредственно тестирование. Полученные в программе результаты сравниваются с эталонными (тестовыми). Число тестовых наборов при тестировании зависит от сложности программы и должно быть достаточным для слежения за ходом ее выполнения по всем ветвям. В первую очередь пропускаются простые тесты, которые охватывают наименьшее количество блоков программы, а далее более сложные.
Среда Turbo (С или Pascal) позволяет при отладке (тестировании) проследить пошаговое исполнение программы (F7(с заходом в подрограмму), F8(без захода)) с контролем промежуточных результатов, или наблюдением параметров в окне Watch, которое открывается через пункт меню Debug (или Windows). Удобно использовать выполнение начальной части программы до курсора (F4). Для повторного запуска незавершенной программы необходимо прервать ее выполнение (Ctrl-F2 или Program Reset). Для занесения переменных (выражений) в окне наблюдений используется сочетание клавиш Ctrl-F7 (Add watch), для удаления выделяется DEL и стрелками отмечается что удалить, затем нажимается клавиша ENTER.
Для ускорения отладки рекомендуется в программе применять точки останова (контрольные точки) (опция Breakpoints (Debug) основного меню программы (Ctrl+F8)). Первоначально контрольные точки рекомендуется устанавливать после ввода исходных данных; после входа в подпрограмму и выхода из неё для передаваемых параметров; в начале и в конце крупных ветвей в программе. (Не рекомендуется устанавливать первоначально контрольные точки в циклах. По необходимости в циклах следует использовать остановы на определенных итерациях.)
В случае обнаружения ошибки или пропуска какой-либо из ветвей программы перед контрольной точкой, которая обнаружила отклонение в работе программы, следует ввести дополнительные точки останова, вновь просмотреть переменные и сравнить их с тестовыми. Процесс повторных расстановок контрольных точек продолжается до тех пор, пока не будет обнаружена строка с ошибкой. После исправления локализованной ошибки тестирование возобновляется.
Тестирование, локализация и исправление ошибок производится пока для всех тестовых наборов не совпадут полученные значения с эталонными. В этом случае программа считается отлаженной при условии соблюдения полноты тестов. Далее программа может быть передана в эксплуатацию или использоваться для расчёта реальных значений.
В готовой программе для своевременного выявления сбоев при ее эксплуатации рекомендуется оставлять тупиковые ветви (вставлять дополнительные условия), контролирующие ход выполнения программы (например, контролировать предельное значение промежуточных параметров). Тупиковые ветви должны содержать сообщения.
Приложение 1