Відповідно до методів структурного програмування побудова програм проводиться шляхом поступової деталізації алгоритмів. Деякі частини алгоритму можуть виділятися у вигляді допоміжних алгоритмів. вирішальних допоміжні підзадачі.
Для реалізації допоміжних алгоритмів служать підпрограми або процедури. Підпрограма - самостійний фрагмент програми, оформлений у вигляді, що допускає багаторазове звернення до нього з різних точок програми. Звернення до підпрограми - перехід до виконання підпрограми із завданням інформації, необхідної для її виконання і повернення.
Існує два види підпрограм: процедури і функції. Різниця між ними полягає в тому, що функція через своє ім'я повертає одне значення певного типу і може, використовуватися у виразах поряд з вбудованими функціями.
Процедура оформляється наступним чином:
Виклик процедури з основної програми проводиться оператором виклику процедури: <имя процедуры>(<список значеиий>).
У процедуру можуть передаватися параметри, тобто деякі змінні, які можуть використовуватися всередині процедури. При виклику процедури з допомогою оператора виклику цим змінним присвоюються значення, зазначені в цьому операторі. Параметри, описані в заголовку процедури, називаються формальними значення. які присвоюються цим параметрам в процесі виклику - фактичними параметрами.
Параметри в процедуру можуть передаватися за значенням або за посиланням. У разі передачі параметра за значенням, в процедуру передасться значення фактичного параметра. Зміна формального параметра всередині процедури не відіб'ється на значенні фактичного параметра. При передачі параметра за посиланням формальний параметр є посиланням на фактичний і його зміна всередині процедури змінить значення фактичного параметра. Другий метод зазвичай використовується для повернення результатів роботи функції в головну програму.
Для того щоб передати параметр за посиланням, в Паскалі в описі формальних параметрів в тілі процедури використовується ключове слово var:
procedure SubTest (a, b: integer; var c: real, var d: integer);
тут параметри а і b передаються за значенням, а параметри з і d - за посиланням.
Функції по своїй суті схожі на процедури, але повертають одне значення через своє ім'я.
Для того щоб повернути значення з функції, необхідно всередині тіла функції змінної, ім'я якої збігається з ім'ям функції, привласнити необхідне значення. Цю змінну не треба оголошувати в області опису.
Виклик функції проводиться в виразах і операторах подібно стандартних функцій мови:
<Переменная> : = <Функция> (<Параметры>)
Реалізація алгоритмів за допомогою підпрограм - процедур і функцій - називається процедурним програмуванням. В останні роки все більшої популярності набувають методи об'єктного і подієвого програмування.