Формат опису:

Procedure <ім’я> [(формальні параметри)];

Приклад:

Procedure Korrekt;

Procedure Sort (A:byte);

Ім’я процедури - ідентифікатор, унікальний у межах програми. Тіло процедури являє собою локальний блок, за структурою аналогічний програмі:

Procedure <ім’я> [(формальні параметри)];

[<розділи описів>;]

begin <розділи операторів>

end;

Зверніть увагу, що як формальні параметри, так і розділ описів у процедурі може бути відсутній. Щоб звернутися до процедури, треба використати оператор виклику процедури. Він складається з ідентифікатора (імені) процедури і списку фактичних параметрів, що відділені один від одного комами і знаходяться у круглих дужках. Якщо процедурі не передається ніяких параметрів, то фактичні параметри не вказуються.

Формат виклику процедури:

<ідентифікатор> [(фактичні параметри)];

Параметри забезпечують механізм заміни, який дає змогу виконувати процедуру з різними початковими даними. Між фактичними параметрами в операторі виклику процедури і формальними параметрами у заголовку опису процедури встановлюється взаємо-однозначна відповідність у результаті їхнього перебору зліва направо. Фактичні параметри за кількістю і типами повинні дорівнювати кількості і типам формальних параметрів.

Параметри, за допомогою яких здійснюється обмін значеннями змінних між підпрограмами та програмою, що їх викликає, можуть мати будь-який тип, зокрема структурований. Існують два типи параметрів:

• параметр-значения;

• параметр-змінна.

Група параметрів, перед якими відсутнє зарезервоване слово Var, називається параметрами-значениями. Наприклад, в описі Procedure Korrect (S, К: real) S і К - параметри-значення. Формальний параметр-значения обробляється як локальна стосовно процедури або функції змінна. Зміни формальних параметрів-значень не впливають на відповідні значення фактичних параметрів.

Група параметрів, перед якими знаходиться ключове слово Var, називається параметрами- змінними. Наприклад, в описі Procedure Obr(Var А, В: integer) А та В - парам етри-змінні. Параметр-змінна використовується в тому випадку, коли значення повинно бути передане з процедури в блок, що її викликає. При активізації процедури або функції формальний параметр-змінна заміщується фактичною змінною, а тому будь-які зміни в значенні формального параметру-змінної відбиваються на фактичному параметрі.

І в тому, і в іншому випадку тип фактичного параметру повинен збігатися з типом формального параметру. Якщо формальний параметр має рядковий тип, йому надається атрибут довжини, рівний 255, а тому й фактичний параметр у цьому випадку повинен також мати рядковий тип з атрибутом довжини, що дорівнює 255. У якості параметра-змінної може використовуватися будь-який тип, зокрема файловий.

Область дії ідентифікаторів.

Для правильного визначення області дії ідентифікаторів під час використання в програмі процедур і функцій необхідно дотримуватися наступних правил: Кожний ідентифікатор повинен бути описаний перед тим, як він буде використаний. Ідентифікатор діє у межах блоку, в якому він описаний. Всі ідентифікатори в одному блоці повинні бути унікальними, тобто не повторюватися. Однакові ідентифікатори можуть бути по- різному визначені у кожному окремому блоці, але це вважається поганим стилем програмування і тому не рекомендується в різних блоках програми використовувати змінні з однаковими іменами. Якщо ідентифікатор підпрограми користувача збігається з ім’ям стандартної процедури або функції, то вони стають недоступними в межах області дії підпрограми, оголошеної користувачем, тобто стандартна функція ігнорується, а виконується програма користувача.

Наприкінці уроку рекомендуємо перевірити засвоєння матеріалу на запитаннях для самоконтролю. Крім того, можна запропонувати учням деякі тестові завдання, наприклад, такого типу.

ЗАДАЧА №415

Умова: Нехай в програмі описано такі процедури:

Procedure Р(х,у:integer);

Begin y:=x+l; End;

Procedure Q(x:integer; var у: integer);

Begin y:=x+1; End;

Procedure R(var x,y:integer);

Begin y:=x+1; End;

Визначити, що буде надруковано в результаті виконання таких операторів:

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату
×