Програмування допоміжних алгоритмів
1. Процедури-оператори.
Раніше були розглянути стандартні процедури та функції, які надавали досить широкий набір функціональних залежностей. Разом з тип мова ПАСКАЛЬ дозволяє користувачеві створювати власні допоміжні алгоритми. Розрізняють два види алгоритмів: процедури-оператори (далі просто процедури) та процедури-функції (далі просто функції). Вони дозволяють включати в основний програмний блок додаткові блоки команд. Процедура активізується за допомогою оператора процедури. Функція активізується при обчисленні виразу, що містить виклик цієї функції.
Як вже відмічалось, блок опису процедур та функції не має спеціального службового слова для свого початку. Цей блок завжди розташовується останнім в описовій частині програми і починається оголошенням відповідного допоміжного алгоритму.
Розглянемо оголошення процедури.
Процедура складається з таких частин:
• заголовка процедури;
• розділу описів процедури;
• операторної частини (тіла) процедури.
Заголовок процедури починається службовим словом procedure, після якого вказується ім’я процедури й описується список формальних параметрів (якщо він є присутнім). Формальні параметри задають вихідні дані для процедури та змінні для результатів її роботи.
ПРИКЛАД:
procedure print(x:string);
procedure paint;
Розділ описів процедури містить опис об’єктів, які будуть використовуватись лише даною процедурою. Такі об’єкти називаються локальними для даної процедури. Їх використання поза межами процедури неможливе і приведе до появи повідомлення про помилку. Використання локальних змінних не є обов’язковим. Можна обійтись глобальними змінними, які описані в основній програмі. Однак використання локальних змінних робить і процедуру, і основну програму більш зрозумілими.
Блок операторів задає дії, які повинна виконати процедура.
Запуск процедури здійснюється за допомогою оператора процедури, який містить ім’я процедури список фактичних параметрів. Фактичні параметри задають дійсні імена об’єктів для початкових даних та результатів.
ПРИКЛАД. Розглянемо опис процедури для обчислення добутку перших k натуральних чисел (k!).
Процедура містить два формальних параметри: параметр k є вихідною величиною, параметр p результатом. Про правила оголошення параметрів буде сказано далі.
procedure fakt(k: integer; var p: integer);
{в заголовку процедури міститься два параметри: перший – k – є параметром-значенням і являє вихідні дані; другий – p –являє собою результат і оголошений як параметр-змінна}