Паскаль позволяет структурировать программу, отделив ее функционально независимые части. Отдельные, функционально независимые части программы называют подпрограммами (процедурами и функциями).
Название «подпрограмма» означает, что она подобна и подчинена программе.
Подпрограммы решают очень важные задачи, значительно облегчая программирование:
1) избавляют от необходимости многократно повторять в тексте программы аналогичные фрагменты;
2) улучшают структуру программы, облегчая ее понимание при разборе;
3) повышают устойчивость к ошибкам программирования и непредвиденным последствиям при модификациях.
Подпрограммы могут быть:
1) стандартными, т.е. определенными системой Паскаль;
2) пользовательскими, т.е. разработанными собственно пользователем.
Существует два способа объединения подпрограмм и программ:
1) текст подпрограмм может быть приведен в разделе описаний использующей их программы до слова begin, с которого начинается тело самой программы (это важно!);
2) подпрограммы группируются в отдельных файлах, имеющих специальную структуру – модулях. Для того чтобы основная программа могла использовать модуль, он должен быть подключен к основной программе.
Первый способ используется, когда программа в целом не слишком велика, а ее подпрограммы, по-видимому, не будут использованы в других программах.
Второй способ желателен для тех программ, которые составляют Ваш технологический задел по программированию и могут использоваться в других программах. Кроме того, оформление отдельных модулей желательно для больших программ, когда текст становится неудобным для восприятия.
С одной стороны, вопрос о том, какие частные алгоритмы должны быть вынесены в подпрограммы, во многом определяется привычками программиста. С другой стороны, огромное количество разработанных программ позволяет указать на типичные ситуации и сформулировать общие принципы выделения подпрограмм:
· Когда Вы несколько раз перепишете в программе одни и те же последовательности команд, необходимость введения подпрограммы приобретет характер острой внутренней потребности.
· Иногда слишком много мелочей закрывает главное. Полезно убрать в подпрограмму подробности, заслоняющие смысл основной программы.
· Полезно разбить длинную программу на составные части – просто как книгу разбивают на главы. При этом основная программа становится похожа на оглавление.
· Бывают сложные частные алгоритмы. Полезно отладить их отдельно в небольших тестирующих программах. Включение программ с отлаженными алгоритмами в основную программу будет легким, если они оформлены как подпрограммы.
· Все, что Вы сделали хорошо в одной программе, Вам захочется перенести в новые. Для повторного использования частей программы лучше сразу выделять полезные алгоритмы в подпрограммы.
Структура текста подпрограммы соответствует структуре текста основной программы:
<заголовок подпрограммы>;
<раздел описаний>;
begin
<тело подпрограммы>
end;
Следует обратить внимание на два отличия в описании основной программы и подпрограммы:
1) подпрограмма начинается с заголовка, содержащего имя подпрограммы, передаваемые в нее и возвращаемые от нее параметры. Заголовок подпрограммы отличается от заголовка основной программы;
2) подпрограмма заканчивается точкой с запятой, а не точкой.