Итоги
• Программа упрощается, если вынести части алгоритма в отдельные подпрограммы — процедуры и функции.
• Объекты, используемые лишь внутри подпрограмм, следует объявлять там же, – как локальные.
• Локальные объекты (константы, переменные и прочие) видны, то есть доступны, лишь внутри тех подпрограмм, где они объявлены.
• Если имя локального объекта совпадает с глобальным, то внутри подпрограммы действует локальный объект, а глобальный делается «невидимкой».
• Локальные объекты упрощают программирование, придают программам надежность и экономят оперативную память.
А слабо?
А) В 17-й главе нами создан экзаменатор, проверяющий знания таблицы умножения. Переработайте программу P_17_1 так, чтобы оценка выставлялась в процедуре, принимающей один параметр – количество допущенных ошибок.
Б) Создайте процедуру, печатающую все числа, кроме единицы, на которые без остатка делится число N, где N – параметр процедуры. Напишите программу для проверки этой процедуры.
В) Два сотрудника подали своему начальнику заявления на отпуск. Первый попросил отпустить его с A1 по B1 день (дни отсчитываются с начала года), второй – с A2 по B2 день. Считаем, что A1
Г) Подойдя к перекрестку, пешеход решает, переходить ли ему улицу или остановиться. На решение влияет характер пешехода и ещё два фактора: сигнал светофора и близость опасно движущегося транспорта. Напишите программу с процедурой, которая принимает и печатает решение в зависимости от переданных в неё трех параметров, а именно.
• Параметр A = true, если горит зеленый;
• Параметр B = true, если поблизости опасно движется транспорт;
• Параметр C – это число, определяющее характер пешехода так:
1 – послушный и осторожный – учитывает и светофор и опасность;
2 – послушный, но беспечный – смотрит только на светофор;
3 – хитрый вольнодумец – идет только на красный, если это ничем не грозит;
4 – непримиримый вольнодумец – идет только на красный;
5 – экстремал – идет только на красный, и так, чтобы грозила опасность;
6 – «безбашенный» – идет, несмотря ни на что;
7 – запуганный – никогда не идет через дорогу, а ищет подземный переход.
Предыдущую главу мы покинули, понурив голову, так и не совладав с программой P_20_1. Почему не заменяются символы в строке? – этот вопрос остался без ответа. Эх, знать бы, что творится внутри программы! Сейчас она для нас – загадочный «черный ящик», и мы видим лишь то, что входит и выходит из него. К счастью, в IDE есть средство для доступа внутрь этого «ящика», и мы воспользуемся им. Это средство называется отладчиком. Так же, как редактор текста и компилятор, отладчик встроен в интегрированную среду разработки.
Отладчик
Отладчик – это набор инструментов для исследования «потрохов» программы. Посредством отладчика можно следить за выполнением отдельных операторов, делая остановки в нужных местах или на каждой строке программы. Застопорив программу, вы сможете выяснить значения тех или иных переменных и даже изменить их. Одним словом, отладчик – это чудо-оружие!
Инструменты отладчика доступны через два пункта меню: Run – запуск и Debug – удаление багов (жучков). Программные ошибки прозвали багами – «жучками».
В пункте Run собраны команды для управления ходом выполнения программы (рис. 45).
Рис. 45 – Пункты меню RUN для доступа к отладчику
Примечание. В данной главе показаны окна отладчика для Borland Pascal, в IDE Free Pascal они выглядят чуть иначе.
В табл. 1 даны пояснения к пунктам этого меню.
Табл. 1 – Описание пунктов меню Run
Команда |
Горячая клавиша |
Пояснение |
Run |
Ctrl+F9 |
Запускает программу в непрерывном режиме. |
Trace into |
F7 |
Выполняет одну строку программы (шаг). Если в строке есть вызов процедуры, то останов происходит на входе в нее, – так можно «войти» внутрь процедуры и следить за ходом её выполнения. |
Step over |
F8 |
Выполняет одну строку программы. Если в строке есть вызов процедуры, то процедура выполняется целиком, без остановки. |
Go to cursor |
F4 |
Выполняет программу, пока не будет достигнута строка, где установлен текстовый курсор. Курсор надо предварительно установить на нужной строке! |
Program Reset |
Ctrl+F2 |
Сброс программы. Если программа остановлена в пошаговом режиме, она перейдет в исходное состояние. |
Parameters… |
нет |
Используется для отладки программ, принимающих параметры через командную строку. |
Обратите внимание: за один шаг отладки выполняется либо одна строка программы, либо один оператор, если он занимает несколько строк. Стало быть, операторы, помещенные в одной строке, будут выполнены за один шаг. Если компилятору безразлично, как вы располагаете операторы, но при отладке это важно. Не размещайте операторы в одной строке, если при отладке намерены выполнять их раздельно.
Читать дальше