Відомо, що функції користувача, як і процедури, являють собою відносно самостійні фрагменти Pascal-програми, оформлені особливим чином, та мають свої імена. Згадка цього імені у тексті програми називається викликом функції користувача.
Різниця між функцією то процедурою полягає в тому, що функція повертає результат. Результатом виконання операторів, що утворюють тіло функції, завжди є єдиним значенням того чи іншого типу, тому звертання до функції можна використовувати в арифметичних виразах поряд зі змінними та константами. Тобто виклик функції користувача виконується простим записом її імені в арифметичному виразі.
Функція користувача, як і процедура, являє собою інструмент, за допомогою якого будь-яка Pascal-програма може бути поділеною на ряд незалежних одна ви одної частин. Таке розбиття необхідне з двох причин. По-перше, це засіб економії пам'яті - кожна функція користувача існує в Р-програми в єдиному екземплярі, у той час як звертатися до неї можна багаторазово з різних точок програми. Під час виклику функції користувача активізується послідовність операторів, які її повторюють, а за допомогою переданих їй параметрів модифікується її алгоритм.
Процес поділення Р-програми - це творчий процес, що проходить у декілька етапів. Спочатку проробляють найбільш загальний, генеральний алгоритм, не зупиняючись на технічних деталях його реалізації. Така розробка алгоритму подається у вигляді послідовності відносно великих частин програми (блоків), які реалізують більш-менш самостійні смислові частини алгоритму Блоки, у свою чергу, можуть розбиватися на менші під блоки, а ті. в свою чергу - на блоки нижнього рівня тощо.
Процес послідовного структурування Р-програми продовжується доти, поки блоки, що реалізують алгоритм, не стануть простими та легко програмованими.
Перевага такого низхідного програмування очевидна: блоки підвищують надійність Р-програми (кожен блок можна реалізувати незалежно від інших та автономно його тестувати), полегшують її розуміння та дозволяють вести розробку Р-програми колективом програмістів.
Наведемо основні особливості функції користувача.
1) Вона має тільки один результат виконання (але може мати декілька вхідних параметрів).
2) Результат позначається іменем функції і передається в P-програму, яка її викликала.
Функція користувача має вигляд:
Function[ім'я] (формальні вхідні параметри; var вихідні параметри): тип;
Розділ описів (починається ключовим словом „var”) BEGIN
Розділ операторів
|
Викликається функція її іменем при наявності фактичних параметрів. При цьому виклик функції користувача можна робити безпосередньо в арифметичному виразі.