Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга_мат_3_new1.doc
Скачиваний:
31
Добавлен:
17.02.2016
Размер:
1 Мб
Скачать
☆

Лабораторна робота № 7 “Процедури”

Мета: сформувати знання про структурні принципи побудови програм з використанням підпрограм, уміння застосовувати процедури.

Питання для вивчення

  1. Поняття процедури.

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

    1. Фактичні і формальні параметри;

    2. Параметри-значення и параметри-змінні.

Теоретичні відомості Процедури

Процедура – це незалежна частина програми, яка має свою назву і призначена для виконання певних дій. Вона складається з заголовку і тіла. По структурі її можна розглядати як програму в програмі, або програму в мініатюрі. На деякі тонкощі і нюанси при створенні і виклику процедур ми вкажемо на конкретних прикладах, а зараз лише наголосимо на тому факті, що ім’я процедури не може знаходитись у виразі в якості операнда.

На відміну від функцій, при обміні відбувається не обчислення якогось одного значення, а змінюється стан пам’яті програми. Тому такий опис оформляється й використовується інакше. Опис обміну задається процедурою, а її виклик являє собою окремий оператор.

Процедура має загальний вигляд

procedure ім’я(означенняпараметрів);

означення імен

begin

послідовністьоператорів

end;

Процедури поділяють на встроєні (стандартні) процедури мови і процедурикористувача. Процедури користувача створюються програмістом у відповідності з правилами мови програмування:

  1. Кожен ідентифікатор (назва змінної, процедури, функції і т.д.) повинен бути описаний перед тим, як він буде використаний.

  2. Областю дії ідентифікатора є блок в якому його описано.

  3. Всі ідентифікатори в блоці повинні бути унікальними, тобто не повторюватись.

  4. Один і той самий ідентифікатор може бути по-різному визначено в кожному окремому блоці.

  5. Якщо ідентифікатор програми користувача співпадає з ім’ям стандартної процедури або функції, то останні недоступні в межах області дії підпрограми, описаної користувачем, тобто стандартна функція або процедура ігнорується, а виконується підпрограма користувача.

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

Отже, при виконанні виклику процедури (чи функції) спочатку параметри одержують значення аргументів, а потім їх зміни ніяк не відбиваються на аргументах. Тому параметри, що дотепер розглядалися, називаються параметрами-значеннями.

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

Як ми вже говорили, у викликах підпрограм вказуються аргументи – вирази, однотипні з параметрами. Але є суттєва відмінність між аргументами, що можуть відповідати параметрам-значенням і параметрам-змінним.

Аргументом для параметра-значення може бути будь-який вираз, тип якого сумісний за присвоюванням із типом параметра.

Аргументом для параметра-змінної може бути тільки ім’я змінної того ж типу, що й параметр.

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