UkrReferat.com
найбільша колекція україномовних рефератів

Всього в базі: 75838
останнє поновлення: 2016-12-03
за 7 днів додано 10

Реферати на українській
Реферати на російській
Українські підручники

$ Робота на замовлення
Реклама на сайті
Зворотній зв'язок

 

ПОШУК:   

реферати, курсові, дипломні:

Українські рефератиРусские рефератыКниги
НазваПідпрограми (реферат)
Авторdimich
РозділІнформатика, компютерні науки
ФорматWord Doc
Тип документуРеферат
Продивилось1966
Скачало401
Опис
ЗАКАЧКА
Замовити оригінальну роботу

Реферат на тему:

 

Підпрограми

 

 

 

1. Точка повернення

 

Повернемося до програми sort31 із підрозділу 3.4. Виклики процедури swap

записані в ній тричі, тому після їх виконання повинні виконуватися різні

дії: спочатку обчислення умови b>c, потім обчислення a>b, і, нарешті,

виведення значень. Проте в самій процедурі немає ніяких указівок, чим

повинна бути продовжена програма після виконання її виклику. Виходить,

перед тим, як виконати виклик підпрограми, комп'ютер якимось таємничим

чином запам'ятовує, із якого місця йому слід продовжити програму.

 

Місце в програмі, що описує дію, якою вона продовжується по закінченні

виконання виклику підпрограми, називається точкою повернення з

підпрограми.

 

Отже, коли виконання програми доходить до виклику підпрограми,

запам'ятовується точка повернення з неї, та вказівка на цю точку

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

продовжується виконання програми саме з точки повернення. Вказівка точки

повернення займає частину локальної пам'яті процесу виконання виклику

підпрограми. Що ще знаходиться в цій пам'яті, ми скажемо трохи нижче.

 

Точка повернення з процедури – це позначення дій, виконуваних після її

виклику. Це може бути наступний за її викликом оператор, як у програмі

sort31. Або умова завершення чи продовження циклу, якщо виклик записаний

останнім у тілі циклу.

 

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

повертається з виклику, або обчислюватися наступний операнд у виразі,

або обчислене значення може використовуватися в операторі. Наприклад, у

програмі minimdis із підрозділу 3.3 результат виклику функції

присвоюється змінної dd. У програмі simpi із прикладу 4.7 виклик функції

issimple записана як умова в if-операторі, і після виклику визначається,

яка з гілок повинна бути виконана. При обчисленні виразу sqr(x)+sqr(y)

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

з них значення додаються.

 

Конкретний вигляд точки повернення в машинній програмі ми не уточнюємо.

 

2. Локальна пам'ять процесу виконання виклику підпрограми

 

У підрозділі 3.4 ми вже говорили про те, що параметрам-значенням

підпрограми при виконанні її виклику зіставляються власні ділянки

пам'яті, тобто змінні. У блоці підпрограми можуть бути означені власні

імена змінних – ділянки пам'яті зіставляються їм так само. Крім того, є

ділянка пам'яті з точкою повернення. Сукупність усіх цих ділянок пам'яті

називається локальною пам'яттю процесу виконання виклику підпрограми. Її

часто неточно називають локальною пам'яттю підпрограми. Будемо грішити

цим і ми. Змінні в ній також називаються локальними.

 

Якщо підпрограма є функцією, то до її локальної пам'яті додається змінна

для збереження значення, що повертається з її виклику. Можна сказати, що

ця змінна ставиться у відповідність імені функції.

 

Таким чином, наприклад, локальна пам'ять процедури swap із підрозділу

3.4 (у її остаточному вигляді) складається з єдиної змінної, зіставленої

імені t, а пам'ять функції dd із програми minimdis (підрозділ 3.3) – із

-----> Page:

0 [1] [2] [3] [4] [5] [6]

ЗАМОВИТИ ОРИГІНАЛЬНУ РОБОТУ