ПРОЦЕДУРИ І ФУНКЦІЇ
![]() |
Зміст | Задачі | ![]() |
Нагадаємо, що підпрограмою називається іменована логічно
завершена група операторів алгоритмічної мови, яку можна викликати для виконання
по її імені будь-яку кількість раз з різних місць програми.
В мові програмування Паскаль для організації підпрограм використовуються процедури
і функції.
Процедура - це незалежна іменована частина програми, призначена для виконання певних дій. Складається із заголовку і тіла.
Після однократного опису процедури її можна викликати по імені з будь-якої частини програми. Коли процедура закінчить своє виконання, програма продовжиться з оператора, який йде безпосередньо за оператором виклику процедури. Використання імені процедури в програмі називається оператором процедури або викликом процедури. Ім'я процедури не може знаходитись у виразі в якості операнда.
Функція аналогічна процедурі, але є відмінність: ім’я функції входить у вираз як операнд і функція повертає одне значення, тоді як процедура може повертати декілька значень або зовсім їх не повертати.
Всі процедури і функції діляться на стандартні і визначені
користувачем. Стандартні процедури і функції є частиною мови і можуть викликатися
по імені без їх попереднього опису в розділі процедур і функцій.
Процедури користувача являють собою іменовану групу операторів, які реалізують
певну частину загальної задачі і викликаються при необхідності для виконання
з будь-якої позиції розділу операторів. Структура процедури майже співпадає
із структурою програми
Заголовок процедури складається із зарезервованого слова 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}
В розділі операторів функції повинен бути хоча б один оператор
присвоєння ідентифікатору функції значення. Якщо таких присвоєнь декілька, то
результатом виконання функції буде значення останнього оператора присвоєння.
Звертання до функцій здійснюється по імені з вказівкою її фактичних параметрів
(якщо вони є). Тип і кількість фактичних параметрів повинні відповідати типу
і кількості формальних параметрів, вказаних у заголовку.
Формат. <ідентифікатор функції> [(<фактичні параметри>)]
![]() |
Зміст | Задачі | ![]() |