Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция Pascal_mat №11_12.doc
Скачиваний:
7
Добавлен:
02.12.2018
Размер:
92.16 Кб
Скачать

Структура процедур і функцій

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

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

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

Область дії ідентифікаторів при використанні процедур і функцій

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

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

Відмітимо, що поняття "глобальні" і "локальні" варто розуміти відносно – стосовно конкретної процедури або функції.

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

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

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

Класифікація способів передачі параметрів

При активізації процедури/функції їй можна передавати параметри. При передачі необхідно стежити, щоб в операторі виклику були зазначені всі параметри, описані в заголовку процедури/функції.

Параметри, що вказують у заголовку процедури/функції при її описі, називаються формальними параметрами. Параметри, що вказують при виклику процедури/функції, називаються фактичними параметрами.

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

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