Правила запису
формальних параметрів:
Параметри
відокремлюються один від одного комою. Перед типом ставиться двокрапка. Якщо
декілька параметрів мають один тип, то він зазначається для усієї групи
параметрів. У цьому випадку групи параметрів різних типів відділяються одна від
одної крапкою з комою.
За допомогою формальних
параметрів здійснюються передавання фактичних даних у процедуру а також
результатів виконання процедур у програму, що її викликала.
Види формальних
параметрів:
- параметри-аргументи
(або параметри-значення) – це вхідні данні для процедури;
- параметри-результати
(параметри-зміні) – параметри, через які можна повертати результати роботи
процедури в основну програму.
Як їх відрізнити?
Перед списком
параметрів-результатів кожного типу записують слово var.
Параметри-аргументи оголошуються без нього.
Розглянемо приклад
процедури з назвою Cina, яка визначає вартість k
грамів цукерок, якщо вартість
procedure Cina (k:integer;
var c:real);
begin
c:=k*28.6;
end;
у наведеному прикладі k
– формальний параметр-аргумент, c – формальний параметр-результат.
До процедури звертаються
з розділу команд основної програми або іншої підпрограми. Процедуру викликають
за допомогою команди виклику:
<ім’я процедури> (<список фактичних параметрів>);
Фактичними називають
параметри, які записують у команді виклику процедури. Фактичні параметри теж
бувають параметрами-аргументами і параметрами-результатами. Фактичними
параметрами-аргументами можуть бути сталі, зміні, вирази, а параметрами-результатами
лише зміні. Типи даних у команді виклику процедури не зазначають.
Між фактичними і
формальними параметрами має бути відповідність за кількістю і типами, тобто:
- кількість формальних і
фактичних параметрів повинна бути однакова;
- тип кожного фактичного
параметра повинен збігатися з типом відповідного формального параметра.
Проте відповідні
фактичні та формальні параметри можуть мати різні імена.
Виклик процедури
здійснюється так: значення фактичних параметрів присвоюється відповідним
формальним параметрам процедури, виконується процедура, визначаються
параметри-результати, значення яких надаються (повертаються) відповідними
фактичними параметрами у команді виклику.
Зупинимося на одному
правилі описання і використання змінних.
Змінні, описані в
основній програмі, називаються глобальними. Вони можуть використовуватися, як в
основній програмі, так в усіх підпрограмах. Змінні, описані усередині процедур
і функцій, називаються локальними. Вони можуть використовуватися тільки усередині
даної процедури (або функції) і не можуть використовуватися в основній
програмі.
Таким чином, процедури
можуть отримувати і повертати значення не тільки через параметри-результати,
але й через глобальні змінні (тому у процедурі може і не бути параметрів).
Наприклад, скласти
програму, яка виводить на екран j рядків, що складаються із 5 зірочок.
Program Stars;
Var i, j : integer; {і
– кількість зірочок у рядку; j –
кількість рядків зірочок}
procedure StarLine (zir:integer); {zir –к-ть зірочок у
рядку }
var n : integer;
{локальна змінна процедури}
begin
for n:=1 to zir do
write (’*’);
end;
begin
write
(’введіть кількість рядків зірочок’); read (j);
write (ведіть кі-сть зірочок у
рядку ); read (і);
for i:=1 to j do
Starline
(k); { виклик
процедури}
readln;
end.
Контрольні запитання:
1. Що тааке формальні параметри.
2. Параметри-значення і параметри-змінні.