Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 20-21.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
380.74 Кб
Скачать

Глобальні об'єкти підпрограм

Водночас у підпрограмі буває дозволено використання об'єктів, описаних поза|зовні| нею. Ці об'єкти називаються глобальними.

Глобальні об’єкти – об’єкти, описані поза підпрограмою, що існують до, під час і після виконання підпрограми.

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

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

Правило хорошого стилю програмування

Не використовуйте глобальні об’єкти для передачі інформації між оточенням виклику підпрограми й оточенням виконання та для повернення результату виконання підпрограми!

Відмінності між параметрами та локальними об’єктами підпрограми. 1

Принципові відмінності між параметрами підпрограм та її локальними об'єктами полягають у ступені|мірі| їхньої «локальності» та способах їх ініціалізації.

Параметри (parameters) – це частина сполучення підпрограми з її оточенням. Вони використовуються тільки для передавання інформації між оточенням виклику підпрограми та оточенням виконання. Початкові значення параметрів визначаються фактичними значеннями виклику (з оточення).

Відмінності між параметрами та локальними об’єктами підпрограми. 2

Локальні об'єкти (local objects) – це тимчасові ресурси, необхідні для виконання підпрограм та реалізації процедурної абстракції, тому вони повністю приховані від користувача підпрограми. Ініціалізація локальних об'єктів виконуються при їх описі або за допомогою операторів присвоювання.

Усі локальні об'єкти потребують повної специфікації, а коректність їх використання можна перевірити компілятором.

Прототип підпрограми

Очевидно, що синтаксична правильність частини|частки| програми, яка використовує об'єкти, введені|запроваджувати| через механізм параметрів, може бути перевірена|лише| шляхом визначення відповідності списку формальних параметрів у описі та фактичних – у виклику.

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

Способи передачі значень параметрів підпрограми. 1

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

Згідно цього устрою розрізняють передачу:

  • значення вмісту (значення, по значенню);

  • значення імені (посилання, по посиланню);

  • ім'я (найменування, по найменуванню).