Общая структура программ в Pascal
Лабораторная работа № 3
Общая структура программ в Pascal.
Функциональные клавиши
Функциональные клавиши используются для управления средой Паскаля. Они обозначаются Fl, F2, ..., F12 и располагаются в самом верхнем ряду клавиатуры. С каждой из этих клавиш связывается некоторая команда меню. Действие почти всех функциональных клавиш можно модифицировать тремя особыми клавишами: Alt (от ALTernative – дополнительный), Ctrl (ConTRoL – управление) и Shift (SHIFT – сдвиг). Нужно нажать на одну из них и затем, не отпуская ее, нажатьфункциональную клавишу. Например, Alt – F3 означает, что вместе с клавишей Alt необходимо нажать клавишу F3, Ctrl – F9 – вместе с Ctrl нажимается клавиша F9 и т.д.
F1 – обратиться за справкой к встроенной справочной службе (Help – помощь);
F2–сохранить редактируемый текст в файл;
F3 – открыть текст из файла в окно редактора;
F4 – пользуется в отладочном режиме: начать или продолжить исполнение программы и остановиться перед исполнением той ее строки, на которой стоит курсор;
F5 – отобразить/скрыть окно на вывода;
F7 – используется в отладочном (пошаговом) режиме: выполнить следующую строку если в строке есть обращение к процедуре (функции), войти в эту процедуру и остановиться перед исполнением первого ее оператора;
F8 – используется в отладочном режиме: выполнить следующую строку программы; если в строке есть обращение к процедуре (функции), исполнить ее и не прослеживать ее работу;
F9 – компилировать и выполнять программу;
F10 – перейти к диалоговому выбору режима работы с помощью главного меню;
Общая структура программ в Pascal
Как видно из рис. 3.1, любую программу, написанную на языке Pascal, можно условно разделить на три основные части: 1 – раздел объявлений и соглашений (декларационная часть), 2 – раздел текстов процедур и функций, 3 – раздел основного блока.
РАЗДЕЛ ОБЪЯВЛЕНИЙ И СОГЛАШЕНИЙ PROGRAMЗаголовок программы; {$ ... } Глобальные директивы компилятора; USESПодключаемые библиотеки; LABELПодраздел объявления глобальных меток; CONSTПодраздел объявления глобальных констант; ТУРЕПодраздел объявления глобальных типов; VARПодраздел объявления глобальных переменных; РАЗДЕЛ ТЕКСТОВ ПРОЦЕДУР И ФУНКЦИЙ PROCEDURE (FUNCTION)Заголовок процедуры (функции); LABELПодраздел объявления локальных меток; CONSTПодраздел объявления локальных констант; TYPEПодраздел объявления локальных типов; VARПодраздел объявления локальных переменных; BEGINОсновной блок процедуры или функции; END; РАЗДЕЛ ОСНОВНОГО БЛОКА ПРОГРАММЫ BEGINОсновной блок программы; END. |
Рис 3.1 Структура программ Pascal
Раздел объявлений и соглашений
В первойчасти программы программист сообщает компилятору, какими идентификаторами он обозначает данные (константы и переменные), а также определяет собственные типы данных, которые он в дальнейшем намеревается использовать в данной программе.
Заголовок
Строка заголовка состоит из зарезервированного слова PROGRAMи имени программы. В Pascal эта строка не обязательна и ее можно без ущерба исключить. Но правила хорошего тона в программировании требуют задания некоторого имени программы, чтобы уже при первом знакомстве можно было получить хоть какую-нибудь информацию о ее назначении.
Примечание:
Следующее за оператором PROGRAMимя является идентификатором и обладает всеми его свойствами. В частности, внутри тела программы не могут быть объявлены объекты, имя которых совпадает с именем программы.
Глобальные директивы компилятора
В этом разделе программы компилятору можно дать указания, определяющие режимы его работы при трансляции последующей программы. Эти указания оформляются в тексте программы как комментарии, начинающиеся парой символов ({$) и заканчивающиеся символом (}). Такие указания могут содержать "заказы" на включение в текст программы фрагментов других программ (из соответствующих файлов), информацию для отладчика или сведения о необходимости использования арифметического сопроцессора.
Оператор USES
Оператор USESиграет важную роль в подключении к тексту программы системных модулей из библиотек. В этом операторе Вы указываетекомпилятору, из какой библиотеки использует модули данная программа, чтобы компилятор выбрал соответствующие модули из этой библиотеки и включил их в текст программы. Каждый модуль представляет собой программу, включающую декларации типов и переменных, процедуры и функции.
Примечание:
Оператор USESможет быть использован в программе только один раз, при этом у него есть свое четко определенное место (он предваряет все прочие операторы и разделы).
Названия библиотек, подключаемых к программе с помощью оператора USES,должны разделяться запятой. Например:
USES Crt, GraphABC, Sounds;
Объявления глобальных меток, констант, типов и переменных
Следом за строкой, содержащей оператор USES,идут строки объявляющие:
- метки (LABEL)(хотя их использование противоречит Паскаль-парадигме программирования);
- константы (CONST);
- определенные пользователем типы данных (TYPE);
- переменные (VAR).
В Pascal жесткое соблюдение именно такого порядка объявлений не требуется. В этом отношении данный диалект весьма "либерален". На практике в большинстве программ часть, заключающая в себе объявления глобальных объектов, непосредственно предшествует основному блоку программы.
В разделе описания меток LABELсодержатся перечисленные через запятую имена меток переходов. Следует помнить, что имена меток переходов не должны дублировать друг друга. Имя метки перехода может представлять собой целое число (от 0 до 9999), строку символов или символьно-цифровую конструкцию. Например:
LABEL 1, 5, 9999, h2, 4t32e , metka_l
В разделе CONSTсодержатся перечисленные через запятую константы, используемые в программе. Например:
CONST
Year=1995;
Month='№onb';
Day='Понедельник';
Раздел описания типов TYPEпозволяет программисту определить новый тип в программе. В данном разделе могут быть использованы ранее определенные в разделе CONSTконстанты.
В разделе описания глобальных переменных VARсодержится список переменных, используемых в программе, и определяется их тип.
Например:
VAR *
А, В,С:INTEGER; {Переменным А, В и С присваивается тип INTEGER}
DDT:REAL; {(целое число), а переменной DDT присваивается тип}
{REAL (вещественное число)}
Примечание:
Разделы LABEL, CONST, TYPEи VARмогут располагаться в произвольном месте программы.
При этом каждый из этих разделов может встречаться в программе несколько раз или вообще не встречаться в ней.
Процедуры и функции
"Процедура" и "функция" – термины, применяемые в Паскале для обозначения специальным образом оформленной последовательности команд (подпрограммы). Доступ к такой подпрограмме может быть осуществлен из любого места основного блока Вашей программы, а также из любой процедуры или функции, описание которых следует ниже.
Основной блок программы
Основной блок программы состоит из последовательности операторов, причем работа программы начинается именно с первого оператора основного блока программы. Тело основного блока программы ограничено операторами BEGINи END.Обратите особое внимание на наличие точки после оператора END.Одна из наиболее характерных особенностей классической Паскаль-программы – малый размер основного блока программы, который играет роль координатора и только вызывает несколько подпрограмм (процедур и функций), выполняющих все необходимые действия.
Примечание:
При конструировании программ Вы должны неукоснительно соблюдать следующее правило: метки, константы, типы и переменные могут использоваться в программе только в том случае, если они были определены выше по тексту.
Комментарии
Как уже отмечалось, в тексте программы могут присутствовать комментарии. Они очень важны для документирования (пояснения) программы. В комментариях указывается вся та информация, которая призвана в будущем служить более глубокому пониманию программы и упорядочению программного текста. К такой информации можно отнести следующую:
§ имя файла, в котором хранится программа,
§ краткое описание назначения программы,
§ авторские права,
§ используемый язык программирования и версия компилятора,
§ версия программы и дата последнего изменения,
§ пояснение назначения переменных,
§ замечания о назначении операторов и частей программы.
Старайтесь писать комментарии с таким расчетом, чтобы, взяв свою программу через полгода, Вы смогли понять, как она работает. Не экономьте на комментариях. Комментарии большого размера не ухудшают качества программы.
Комментарии в Паскаль-программах представляют собой произвольный текст, ограниченный с двух сторон парой символов { и } – фигурными скобками. Необходимо внимательно следить за парностью скобок, т.к. наличие только открывающей скобки и отсутствие закрывающей представит весь последующий текст программы как комментарий, что может привести к игнорированию его транслятором.