Подпрограмма – это группа операторов, логически законченная и специальным образом оформленная.
Использование подпрограмм позволяет улучшить структуру программы и сократить ее размер.
По структуре подпрограмма аналогична программе, только отсутствует раздел подключения модулей, а заголовок отличается по оформлению.
Любая подпрограмма должна быть предварительно описана, после чего допускается ее вызов. При описании подпрограммы задаются ее имя, список формальных параметров и действия, выполняемые подпрограммой. При вызове подпрограммы указывается имя подпрограммы и список фактических параметров(аргументов), передаваемых подпрограмме для работы. Стандартные подпрограммы можно вызывать без предварительного описания (StrToInt, Sqr, Cos и др.). Стандартными они называются потому, что созданы одновременно с системой Delphi и являются ее неотъемлемой частью. В Delphi имеется много стандартных процедур и функций. Наличие богатой библиотеки таких программных заготовок существенно облегчает разработку прикладных программ. Нестандартную подпрограмму необходимо описать, чтобы компилятор смог установить связь между оператором вызова и теми действиями, которые предусмотрены в подпрограмме. Описание подпрограммы помещается в разделе описаний подпрограмм.
Описать подпрограмму — это значит указать ее заголовок и тело. В заголовке объявляются имя подпрограммы и формальные параметры, если они есть. Для функции, кроме того, указывается тип возвращаемого ею результата. За заголовком следует тело подпрограммы, которое, подобно программе, состоит из раздела описаний и раздела исполняемых операторов. В разделе описаний подпрограммы могут встретиться описания подпрограмм низшего уровня, а в них — описания других подпрограмм и т. д.
Подпрограммы делятся на процедуры и функции. Основным отличием функции от процедуры состоит в том, что функция может возвращать значение в качестве результата, поэтому ее можно использовать как операнд выражения или как правая часть оператора присваивания.