ПРОЦЕДУРИ І ФУНКЦІЇ

Попередня сторінка Зміст Задачі Наступна сторінка

Нагадаємо, що підпрограмою називається іменована логічно завершена група операторів алгоритмічної мови, яку можна викликати для виконання по її імені будь-яку кількість раз з різних місць програми.
В мові програмування Паскаль для організації підпрограм використовуються процедури і функції.

Процедура - це незалежна іменована частина програми, призначена для виконання певних дій. Складається із заголовку і тіла.

Після однократного опису процедури її можна викликати по імені з будь-якої частини програми. Коли процедура закінчить своє виконання, програма продовжиться з оператора, який йде безпосередньо за оператором виклику процедури. Використання імені процедури в програмі називається оператором процедури або викликом процедури. Ім'я процедури не може знаходитись у виразі в якості операнда.

Функція аналогічна процедурі, але є відмінність: ім’я функції входить у вираз як операнд і функція повертає одне значення, тоді як процедура може повертати декілька значень або зовсім їх не повертати.

Всі процедури і функції діляться на стандартні і визначені користувачем. Стандартні процедури і функції є частиною мови і можуть викликатися по імені без їх попереднього опису в розділі процедур і функцій.
Процедури користувача являють собою іменовану групу операторів, які реалізують певну частину загальної задачі і викликаються при необхідності для виконання з будь-якої позиції розділу операторів. Структура процедури майже співпадає із структурою програми

Заголовок процедури складається із зарезервованого слова Procedure, ідентифікатора (імені) процедури і необов'язкового розміщеного в круглих дужках списку формальних параметрів з вказівкою їх типів. Ім'я процедури повинно бути унікальним в межах всієї програми.

Формат. Procedure <ім'я>[(<формальні параметри>)];

Приклад.
Procedure Screen;{без параметрів}
Procedure Sum(a,b:integer);{a і b - формальні параметри}

Всі інші розділи процедури повністю аналогічні розділам програми, тільки розділ операторів закінчується крапкою з комою, а не крапкою (як у програми).

Для звертання до процедури використовується оператор виклику процедури. Він складається з ідентифікатора (імені) процедури і списку фактичних параметрів, розділених комами і розміщених у круглих дужках. Список параметрів може бути відсутнім , якщо процедурі не передається ніяких значень.

Формат.
<ідентифікатор процедури>[(<фактичні параметри>)];

Приклад.
Screen; { без параметрів }
Sum (a,b+a); {з двома параметрами a і b+a }

При виконанні процедури формальні параметри замінюються на фактичні. Це дозволяє виконувати процедуру з різними початковими даними. Кількість і тип фактичних параметрів повинні співпадати з кількістю і типом формальних параметрів. Якщо процедура вертає у програму якість значення, то відповідні формальні параметри повинні бути описані як параметри - змінні з використанням службового слова Var.
Функція, визначена користувачем має ту ж саму структуру, що й процедура.
Заголовок функції містить зарезервоване слово Function, ідентифікатор (ім'я) функції, необов'язковий розміщений у круглих дужках список формальних параметрів з вказівкою їх типів і типу означення, яке повертається функцією. Ім'я функції повинно бути унікальним в межах всієї програми.

Формат.
Function
<ім'я>[(<формальні параметри>)]:<тип результату>

Приклад.
Function Logic:boolen; {без параметрів}
Function Max(x,y:real) {з параметрами x і y}

В розділі операторів функції повинен бути хоча б один оператор присвоєння ідентифікатору функції значення. Якщо таких присвоєнь декілька, то результатом виконання функції буде значення останнього оператора присвоєння.
Звертання до функцій здійснюється по імені з вказівкою її фактичних параметрів (якщо вони є). Тип і кількість фактичних параметрів повинні відповідати типу і кількості формальних параметрів, вказаних у заголовку.

Формат. <ідентифікатор функції> [(<фактичні параметри>)]

Попередня сторінка Зміст Задачі Наступна сторінка