Процедури і функції є важливим інструментом Турбо Паскаля, що дозволяє писати добре структуровані програми. У структурованих програмах зазвичай легко простежується основний алгоритм, їх неважко зрозуміти будь-якому читачеві, вони простіше в налагодженні і менш чутливі до помилок програмування. Всі ці властивості є наслідком важливу особливість процедур (функцій), кожна з яких є багато в чому самостійний фрагмент програми, пов'язаний з основною програмою лише за допомогою кількох параметрів. Самостійність процедур (функцій) дозволяє локалізувати в них всі деталі програмної реалізації того чи іншого алгоритмічного дії і тому зміна цих деталей, наприклад, в процесі налагодження зазвичай ве призводить до змін основної програми.
Писати великі програми в сотні, тисячі і десятки тисяч рядків як щось єдине ціле, без розчленування на відносно самостійні фрагменти, тобто без структурування, просто неможливо. Практично у всіх мовах програмування є засоби структурування. Мови, в яких передбачені такі механізми, називаються процедурно-орієнтованими. До їх числа належить і Турбо Паскаль.
Процедурою в Турбо Паскалі називається особливим чином оформлений фрагмент програми, що має власне ім'я. Згадка цього імені в тексті програми призводить до активізації процедури і називається її викликом. Відразу після активізації процедури починають виконуватися входять до неї оператори, після виконання останнього з них управління повертається назад в основну програму і виконуються оператори, що стоять безпосередньо за оператором виклику процедури.
Взаємодія викликає програми, і процедури
Процедури і функції, як зазначалося раніше, являють собою відносно самостійні фрагменти програми, оформлені особливим чином і забезпечені ім'ям. Згадка цього імені в тексті програми називається викликом процедури (функції). Відмінність функції; від процедури полягає в тому, що результатом виконання операторів, що утворюють тіло функції, завжди є деякий єдине значення або покажчик, тому звернення до функції можна використовувати у відповідних виразах поряд зі змінними і константами. Домовимося далі називати процедуру або функцію загальним ім'ям ╚подпрограмма╩, якщо тільки для викладається вказане відмінність не має значення.
Підпрограми є інструмент, за допомогою якого будь-яка програма може бути розбита на ряд певною мірою незалежних одна від одної частин. Таке розбиття необхідно з двох причин.
По-перше, це засіб економії, пам'яті: кожна підпрограма існує в програмі в єдиному екземплярі, в той час як звертатися до неї можна багаторазово з різних точок програми. При виклику підпрограми активізується послідовність утворюючих її операторів, а за допомогою переданих підпрограмі параметрів потрібним чином модифікується реалізований в ній алгоритм.
Друга причина полягає в застосуванні методики спадного проектування програм. У цьому випадку алгоритм представляється у вигляді послідовності щодо великих підпрограм, що реалізують більш-менш самостійні смислові частини алгоритму. Підпрограми в свою чергу можуть розбиватися на менші підпрограми нижнього рівня і т.д. Послідовне структурування програми продовжується до тих пір, поки реалізовані подпрограммами алгоритми не стануть настільки простими, щоб їх можна було легко запрограмувати.
Приклад структури підпрограми
Опис підпрограми складається з заголовка і тіла підпрограми