Процедури в Delphi
Процедура - це різновид підпрограми. Зазвичай підпрограма реалізується як процедура в двох випадках:
- коли підпрограма не повертає в основну програму ніяких даних. Наприклад, викреслює графік в діалоговому вікні;
- коли підпрограма повертає в викликала її програму більше ніж одне значення. Наприклад, підпрограма, яка вирішує квадратне рівняння, має повернути в викликала її програму два дрібних числа - коріння рівняння.
1. procedure Ім'я 5. // тут інструкції процедури Параметри процедури використовуються для передачі даних в процедуру, а також для повернення даних з процедури в викликала її програму. Як приклад в лістингу 6.5 приведена процедура вирішення квадратного рівняння (яке в загальному вигляді записується так: ах2 + Ьх + с-О). У процедури шість параметрів: перші три призначені для передачі в процедуру вихідних даних - коефіцієнтів рівняння; параметри x1 і х2 використовуються для повернення результату - коренів рівняння; параметр ok служить для передачі інформації про те, що рішення існує. Лістинг 6.5. процедура SqRoot 01. // вирішує квадратне рівняння 02. procedure SqRoot (a, b, c. Real; var xl, x2. Real; var ok. Boolean); 03. / a, ib, c - коефіцієнти рівняння 04. xl, x2 - корені рівняння Якщо в описі процедури перед ім'ям параметра варто слово var, то при виклику процедури на місці відповідного параметра повинна стояти змінна основної програми. Використання константи або вирази вважається помилкою, і компілятор в цьому випадку виведе повідомлення: Types of actual and formal var parameters must be identical (ТИП фактичного параметра повинен відповідати типу формального параметра). У лістингу 6.6 приведена програма вирішення квадратного рівняння, в якій використовується процедура SqRoot. Вікно програми представлено на рис. 6.2. Лістинг 6.6. Рішення квадратного рівняння (використання процедури)