
- •Предисловие
- •Введение
- •1. Установка и настройка интегрированной среды
- •2.1. Работа с текстовым редактором тр
- •Команды управления курсором
- •Команды вставки и удаления
- •Команды работы с блоками
- •Команды поиска и замены
- •Regular expression – искать по выражению – описателю текста;
- •Контрольные вопросы
- •3. Элементы языка и структура программы
- •3.1. Алфавит языка
- •3.2. Зарезервированные слова
- •3.3. Знаки операций
- •Основные операции тр 7.0
- •3.4. Типы данных
- •Типы целых чисел
- •Типы вещественных чисел
- •3.5. Базовые конструкции языка
- •Основные стандартные математические функции tp 7.0
- •3.6. Структура программы
- •Контрольные вопросы
- •4.1. Этапы разработки программы
- •Пример. Вычислить площадь треугольника по формуле Герона: , гдеa, b, c – длины сторон треугольника, - полупериметр;
- •4.2. Основы работы в интегрированной среде Turbo Pascal
- •4.2.1. Меню File
- •4.2.2. Меню Edit
- •4.2.3. Меню Run
- •Упражнения
- •5. Составление и отладка программ с разветвляющейся структурой
- •Условные графические обозначения основных блоков схем алгоритмов
- •5.1. Организация ветвлений в программах
- •Логические операции
- •5.2. Средства среды тр для отладки программ
- •5.2.1. Меню Run
- •5.2.2. Меню Compile
- •5.2.3. Меню Debug
- •5.2.4. Меню Window
- •5.3. Методика отладки программ cразветвляющейся структурой
- •Упражнения
- •Контрольные вопросы
- •6. Составление и отладка программ
- •6.1. Организация программ с циклами
- •Блок-схемы операторов цикла
- •Объявление интервального типа осуществляется заданием двух констант, указывающих верхнюю и нижнюю границы диапазона, и описывается двумя способами:
- •6.2. Методика отладки программ с циклами
- •Упражнения
- •7. Программирование с использованием
- •7.1. Организация подпрограмм
- •7.2. Методика отладки программ с подпрограммами
- •8. Программирование с использованием
- •8.1. Структура модулей
- •8.2. Компиляция модулей
- •Упражнения
- •9. Обработка символьной информации
- •9.1. Символьный тип данных
- •9.2. Строковый тип данных
- •9.3. Множества
- •Упражнения
- •10. Программирование с использованием записей
- •Упражнения
- •11. Программирование с использованием файлов
- •11.1. Файловый тип данных
- •11.2. Работа с типизированными файлами
- •Упражнения
- •12. Программирование с использованием модуля crt
- •12.1. Работа с клавиатурой
- •Непечатаемые символы таблицы ascii
- •Скан-коды клавиатуры
- •Информационные байты расширенных кодов клавиатуры
- •12.2. Работа с экраном
- •Константы цвета
- •12.3. Управление звуком динамика
- •Упражнения
- •Варианты заданий
- •Исходные данные
- •Расположение окон ввода и вывода
- •Цвета фона и символов окон
- •13. Программирование с использованием модуля graph
- •13.1. Инициализация и завершение графического режима
- •13.2. Установка цвета
- •13.3. Стиль заполнения
- •13.4. Экран, окно, графический указатель
- •13.5. Отображение точки и линии на экране
- •13.6. Вывод некоторых геометрических фигур
- •13.7. Вывод текста в графическом режиме
- •Упражнения
- •Варианты заданий
- •Библиографический список
- •Оглавление
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,
оформив вычисление суммы в виде функции
КОНТРОЛЬНЫЕ ВОПРОСЫ
Чем отличаются структурированные программы от монолитных?
Какие подпрограммы называются стандартными? Приведите примеры.
Какой вид имеет структура описания процедуры?
В чем состоит отличие описания функции от процедуры?
Что такое область действия идентификаторов?
Каковы основные правила определения области действия для идентификаторов процедур и функций?
Какие параметры называются формальными и какие – фактическими?
По каким признакам различаются параметры подпрограмм?
Какая директива предназначена для прерывания подпрограмм?
Как осуществляется обращение к функции и процедуре?
В каких случаях подпрограмма реализуется как процедура, а в каких – как функция?
Как описать массив в заголовке подпрограммы?
Как передать в подпрограмму функцию или процедуру как формальный параметр?
Для чего предназначена директива far?
Что такое рекурсивный вызов подпрограмм?