Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика 1 курс / метод указания / Программирование в интегрированной среде Turbo Pascal. Учебное пособие.doc
Скачиваний:
116
Добавлен:
08.06.2015
Размер:
1.51 Mб
Скачать

7.2. Методика отладки программ с подпрограммами

При отладке программ, содержащих процедуры и функции, используется опция Run/Trace into (F7), которая задает пошаговый режим отладки с заходом в подпрограмму.

При нажатии функциональной клавиши F7, когда подсветка находится на строке, содержащей вызов подпрограммы, произойдет переход в начало данной подпрограммы на словоbegin. Далее можно осуществить пошаговую отладку подпрограммы с помощью командF7 илиF8, в частности, с просмотром в окнеWatch. В теле подпрограммы допускается также ввод контрольных точек. Пошаговую отладку можно продолжить до конца подпрограммы (строкаend;) или до команды досрочного выхода из подпрограммыexit. При последующем нажатииF7произойдет возврат к оператору основной программы, который следует за вызовом этой подпрограммы.

После отладки подпрограммы заходить в нее не требуется, и для дальнейшей пошаговой отладки основной программы достаточно использовать опцию Run/Step over (F8).

В меню Debugпредусмотрено специальное окноCall stack, предназначенное для просмотра последовательности вызываемых процедур и функций. Это окно открывается через пункт менюDebug/Call stack (Ctrl + F3). В нем прослеживается текущее, т.е. изменяющееся при пошаговой отладке состояние стека вызова подпрограмм. В верхней строке окна находится имя исполняемой в данный момент подпрограммы с параметрами вызова, в нижней – основная программа, а между ними – последовательность вызовов подпрограмм от основной программы до текущей подпрограммы. При выходе из подпрограммы стек освобождается от ее вызова и верхняя строка в окне стека убирается.

Окно Call stackследует применять при сложной иерархии взаимных вызовов подпрограмм, когда не очевидно, каким путем выполнение алгоритма привело к данной подпрограмме.

!! Наберите текст программы Th_2 и осуществите ее отладку с использованием опции Run/Trace into (F7) и просмотром текущих результатов в окне Watch .

Упражнения

1. Составить программу вычисления биссектрис треугольника по сторонам a, b и c, предусмотрев проверку возможности построения треугольника по заданным сторонам.

Вычисление биссектрисы оформить в виде функции, используя известную тригонометрическую формулу:

где

2. Составить программу для вычисления значения при x = 9.2; y = 7.45; b = 2

с процедурой вычисления логарифма

3. Вычислить при а > 0, оформив в виде функции вычисление корня

4. Составить программу для вычисления выражения при n = 10; m = 6 с процедурой вычисления факториала.

5. Вычислить

при n = 15; xi = 0.2..1.4; yi = 1..15; ci = 0.1..2.9; di = 1..3.8,

оформив вычисление суммы в виде функции

КОНТРОЛЬНЫЕ ВОПРОСЫ

  1. Чем отличаются структурированные программы от монолитных?

  2. Какие подпрограммы называются стандартными? Приведите примеры.

  3. Какой вид имеет структура описания процедуры?

  4. В чем состоит отличие описания функции от процедуры?

  5. Что такое область действия идентификаторов?

  6. Каковы основные правила определения области действия для идентификаторов процедур и функций?

  7. Какие параметры называются формальными и какие – фактическими?

  8. По каким признакам различаются параметры подпрограмм?

  9. Какая директива предназначена для прерывания подпрограмм?

  10. Как осуществляется обращение к функции и процедуре?

  11. В каких случаях подпрограмма реализуется как процедура, а в каких – как функция?

  12. Как описать массив в заголовке подпрограммы?

  13. Как передать в подпрограмму функцию или процедуру как формальный параметр?

  14. Для чего предназначена директива far?

  15. Что такое рекурсивный вызов подпрограмм?

Соседние файлы в папке метод указания