Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
інформатика.docx
Скачиваний:
2
Добавлен:
27.04.2019
Размер:
85.49 Кб
Скачать

Процедури без параметрів

Опис процедури без параметрів має такий вигляд:

Procedure <ім’я процедури>;

Const{опис локальних констант}

Type{опис локальних типів}

Var {опис локальних змінних}

Begin

{тіло процедури}

End;

Розглянемо приклад процедури без параметрів Line, що малює на екрані в текстовому режимі горизонтальну лінію, утворену символами ‘*’.

Program Example2;

Procedure Line;

Var

i: Integer;

Begin

For i:=1 to 79 do

Write(‘*’);

Writeln;

End;

Begin

Line;

Writeln(‘Механічний факультет’); Line;

End.

Програма почне виконуватись з оператора, розміщеного після слова Begin основної програми. У нашому прикладі цим оператором є виклик процедури Line. При цьому програма перейде на виконання тіла процедури Line. Тобто, виконається послідовність операторів, записана між словами Begin та End процедури Line. В результаті, на екрані дисплею буде намальовано горизонтальну лінію символом ‘*’. Після завершення виконання процедури Line продовжиться виконання основної програми. Оператор Writeln виведе на екран заданий текст ‘Механічний факультет’. І знову відбудеться виклик процедури Line, яка намалює на екрані другу горизонтальну лінію символом ‘*’.

Процедури з параметрами

Для передачі даних у процедуру та отримання з неї результатів використовуються формальні та фактичні параметри. Формальні параметри – це умовні позначення в заголовку процедури. Реальні значення, які вказуються у дужках при виклику процедури і конкретизують значення формальних параметрів називають фактичними.

Кількість фактичних та формальних параметрів повинна співпадати, відповідні параметри повинні узгоджуватись за типами.

Нехай до попередньої програми ми хочемо додати можливість побудови лінії за допомогою різних символів та різної довжини. Тоді використаємо наступну процедуру з двома параметрами:

Program Example3;

Procedure Line(с: Char; n: Integer);

Var

i: Integer;

Begin

For i:=1 to n do Write(c);

Writeln;

End;

Begin

Line(‘-’,20);

Writeln(‘Механічний факультет’);

Line(‘+’,15);

End.

Змінні с та n – формальні параметри, які при першому виклику процедури набувають фактичних значень ‘-’ та 20, а при другому – ‘+’ та 15.

У даному прикладі ми передаємо значення параметрів лише у процедуру. Така передача параметрів називається передачею по значенню. Тому, фактичні параметри можуть бути не обов’язково змінними, а й виразами відповідного типу. Якщо ж ми хочемо не тільки передати, а й повернути результат із процедури у основну програму, то потрібно використовувати передачу параметра по імені. Для цього перед іменем змінної при описанні процедури слід вказати ключове слово var. Якщо слова var немає, то параметри передаються по значенню. Фактичний параметр, що передається у процедуру по імені обов’язково повинен бути змінною. Розглянемо приклад процедури, що повертає мінімум із двох дійсних чисел:

Procedure Min (a, b: Real; var m: Real);

Begin

If a<b then m:=a else m:=b;

End.

Викликом процедури Min може бути Min(3,102,x), Min(x, y, x), але не Min(x, y, 2). Перші два параметри a та b передаються по значенню лише у процедуру. Третій параметр m передається по імені. Його значення повертається у викликаючу частину програми.

Громіздкі структури даних рекомендується передавати по імені з метою економії оперативної пам’яті.