Любая подпрограмма перед ее использованием должна быть описана.
Основные понятия
Подпрограммы
Турбо Паскаль позволяет структурировать программу, отделив ее функционально независимые части. Отделенные, функционально независимые части программы, называются подпрограммами (процедурами и функциями). Сам термин подпрограмма говорит о том, что они подобны и подчинены программам. Подпрограммы позволяют:
¨ избавиться от необходимости многократного повторения в тексте программы аналогичных фрагментов;
¨ улучшить структуру программы, облегчая её понимание;
¨ повысить устойчивость к ошибкам программирования и непредвиденным последствиям при модификациях.
Приведем типичные ситуации, когда следует прибегать к выделению подпрограмм:
¨ если в программе несколько раз встречается одна и та же последовательность операторов;
¨ иногда рутинные действия заслоняют смысл основного алгоритма, в этом случае второстепенные фрагменты полезно убрать в подпрограмму;
¨ полезно разбить длинную программу на составные части – просто как книгу разбивают на главы. При этом основная программа становится похожей на оглавление;
¨ встречаются сложные частные алгоритмы. Полезно отладить их отдельно в небольших тестирующих программах и тогда включение программ с отлаженными алгоритмами в основную программу происходит проще, если они оформлены как подпрограммы;
¨ если какие-то части работающей программы предполагается переносить в другую программу, рекомендуется сразу выделять такие алгоритмы в отдельные подпрограммы.
Подпрограмма – это часть программы, оформленная в отдельной синтаксической конструкции и снабженная именем.
При обращении к п/п в нее передаются исходные данные, а после выполнения п/п в основную программу передаются результаты расчетов.
При вызове п/п начинают выполняться заданные в ней операторы. Работа п/п завершается, если выполнены все ее операторы до завершающего слова END; или по специальной команде выхода EXIT.
После выхода из п/п основная программа возвращается к операторам, следующим за обращением к этой п/п.
Подпрограмма может содержать свои подпрограммы (более низкого уровня), т.е. возможна вложенность п/п.
Подпрограммы могут быть стандартными (встроенными): ABS, SIN, SQR и т.д., определенными системой Турбо Паскаля, и собственными, то есть определенными пользователями.
Существуют два способа объединения подпрограмм и программ:
· Текст п/п может быть приведен в разделе описаний использующей их программы, до слова begin, с которого начинается тело основной программы;
· П/п группируются в отдельных файлах, имеющих специальную структуру – модулях. Для того чтобы основная программа могла использовать модуль, он должен быть подключен к основной программе с помощью оператора USES. (uses CRT, Graph)
Структура текста п/п соответствует структуре текста основной программы за двумя исключениями:
· Подпрограмма начинается с заголовка, содержащего имя п/п, передаваемые в нее и возвращаемые от нее параметры. Запись заголовка п/п отличается от записи заголовка программы;
· Подпрограмма заканчивается точкой с запятой, а не точкой.