You are on page 1of 9

Міністерство освіти і науки України

Національний авіаційний університет

Факультет кібербезпеки, комп’ютерної та програмної інженерії


Кафедра інженерії програмного забезпечення

Основи програмування
Лабораторна робота 2.5
Дослідження механізму підпрограм
ВАРІАНТ № 10

Виконала: студентка групи ПІ 124-Б


Спеціальність:
121“Інженерія програмного
забезпечення”
Ткачук Катерина Дмитрівна
(ПІБ студента)
Прийняла: Васильєва М.Д.
(ПІБ викладача)

Київ 2021
Мета лабораторної роботи- вивчити опис та використання закритих підпрограм.

Завдання 1
Написати програму, яка складається з наступних дій:
1. Опису підпрограми, що обчислює функцію згідно з варіантом (табл.
2.6).
2. Опису головної програми, що табулює функцію, значення якої
обчислюється підпрограмою, вказаною в п.1 завдання.
Таблиця 2.6

Завдання 2
Написати програму на мові Сі, яка складається з наступних дій:
1. Опису підпрограми_ 1 та підпрограми_ 2 згідно варіанта (табл.2. 7).
2. Опису та ініціювання змінної індексованого типу (двовимірний масив
вимірністю М х N, де М - кількість рядків, а N - кількість стовпців)
(табл.2.7).
3. Опису та ініціювання рядка символів (кількість символів не менш 5).
4. Виклику підпрограми_l для обробки двовимірного масиву.
5. Виклику підпрограми_ 2 для обробки рядка символів.
Таблиця 2.7
Хід роботи

Створюємо програму відповідно до умов завдання 1:


У вікні Локальні можна побачити, що функцію протабульовано й значення
занесено в масив arr[].
Створюємо програму відповідно до умов завдання 2. Підпрограма_1:
До транспонування:

Після транспонування:
Підпрограма_2:

У вікні Локальні можна побачити, що в результаті виконання


підпрограми_2 було створеноа новий рядок out[], у якому немає символів ‘k’,
відповідно до умов завдання.
Висновки: під час виконання лабораторної роботи було досліджено та
вивчено опис та використання закритих підпрограм.

Контрольні питання
1. Що таке підпрограма?
Підпрограма – іменована, повторювальна частина програми.
2. Наведіть особливості закритої підпрограми.
Виклики закритих підпрограм обробляються завжди під час компіляції.
Відкрита – при виклику програми код копіюється у місце, де вона
викликається.(in line).
3. Наведіть відмінності процедури та функції.
Процедура не повертає значення, функція повертає значення.
4. Що таке прототип функції?
Якщо підпрограму використано раніше, ніж її описано, то потрібно до її
виклику навести специфікацію інтерфейсу, тобто написати прототип
функції.
5. Наведіть способи передачі параметрів у підпрограму, надайте приклади.
Параметри у підпрограму можуть передаватися 3 способами:
- значення вмісту (значення, по значенню, pass-by-value);
void function1(int a, int b)
(…)
- значення імені (посилання, по посиланню, pass-byreference);
void function2(&a,&b)
(…)
- ім'я (найменування, по найменуванню, pass-by-name).
void function3(a*,b*))
(…)
6. Наведіть способи повертання результатів з підпрограми, надайте приклади.
Закриті підпрограми можуть повертати результат у зовнішнє оточення
підпрограми трьома шляхами:
- використовуючи способи передавання параметрів за посиланням або
за найменуванням;
- використовуючи в тілі підпрограми об'єкти, описані глобально;
- формуючи результат спеціальним оператором і у спеціальному місці
пам'яті поза підпрограмою.
7. Чи можна використовувати глобальні змінні у підпрограма?
Можна, але не бажано через засмічення пам’яті та руйнування
інтерфейсу програми
8. Що таке локальні об’єкти підпрограми?
Локальні об’єкти – це значення об'єктів, що містяться в середині капсули.
9. Що таке процедурна абстракція та абстракція керування?
Підпрограмна капсула – це послідовність структурних операторів,
охоплених оболонкою. Порядок розміщення операторів у капсулі відбиває
сутність розв’язувної капсулою задачі. Такий погляд на підпрограму
відбиває сутність процедурної абстракції.
Підпрограмну капсулу можна також розглядати як «чорну скриньку», на
вхід якої передається управління, а на виході управління повертається.
Такий погляд на підпрограму становить сутність абстракції управління.
10. Що розуміється під побічним ефектом підпрограми? Надайте приклади.
Явними побічними ефектами (explicit side effect) називаються неосновні
результати, які передбачувані програмістом. Прикладом є використання
глобальних змінних.
Неявними побічними ефектами (ixplicit side effect) називаються неосновні
результати, отримувані при виконанні підпрограми, яких не передбачав
програміст.
Неявні побічні ефекти можуть виникати внаслідок:
- невизначеної послідовності обчислення виразів (підвиразів),
операторів і їхніх частин;
- невизначеності послідовності обчислень фактичних параметрів
підпрограм;
- особливостями макропідстановки.

You might also like