Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Модульність, розподіл пам'яті, підпрограми.doc
Скачиваний:
2
Добавлен:
25.11.2018
Размер:
764.42 Кб
Скачать

ПЛАН

СТРУКТУРУВАННЯ ОБЧИСЛЕНЬ НА РІВНІ ПІДЗАДАЧ 1

Блочна організація програм 1

Принцип модульності програм 1

Поняття підпрограми 2

Принцип локалізації 3

Концепція розподілу пам’яті 4

Процедурне програмування 5

Організація підпрограм 5

Механізм передачі параметрів 7

Різновиди підпрограм 8

Покажчики та посилання 13

Способи передачі параметрів 16

Рекурсія 21

Модулі 22

Стандартні бібліотечні модулі. 23

Бібліотечні модулі користувача 24

Unit <ім'я модуля>; заголовок модуля 24

Компіляція модулів 25

Структурування обчислень на рівні підзадач Блочна організація програм Принцип модульності програм

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

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

  1. відповідає лише одній задачі;

  2. має єдиний вхід і єдиний вихід (деякі мови програмування дозволяють існування декількох входів або виходів);

  3. має порівняно невеликий розмір (до 100 операторів);

  4. доступний за своїм ідентифікатором (ім’ям);

  5. може викликати інший модуль (не в усіх мовах програмування);

  6. повинен повертати керування тому, хто його викликав;

  7. не повинен зберігати історію своїх викликів (інакше може виникати так званий побічний ефект);

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

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

Переваги модульності програм:

  • полегшується налагодження і тестування програми;

  • внесення змін може привести до зміни окремих модулів, а не програми в цілому;

  • програмний продукт може розроблятися кількома виконавцями (кожен виконавець розробляє свій модуль).

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

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

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

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

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

Активація підпрограми здійснюється за її іменем спеціальною конструкцією виклику підпрограми. При цьому запам'ятовується так звана точка повернення в основну програму і керування передається підпрограмі (її першому оператору). Точка повернення – це місце в програмі, що описує дію, якою програма продовжується по закінченні виконання підпрограми. Це може бути наступний за викликом підпрограми оператор, умова завершення чи продовження циклу, якщо виклик записаний останнім у тілі циклу, тощо. Вказівка на точку повернення зберігається до закінчення виконання підпрограми. Після завершення виконання підпрограми відбувається автоматичне повернення в основну програму, яка продовжує своє виконання з дії, що була позначена як точка повернення. Схема взаємодії програми і підпрограми наведена на рис.1.

Рис. 1. Схема взаємодії програми і підпрограми

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

Рис. 2. Реалізація вкладеності підпрограм

Тут А - основна програма; В, Е - підпрограми, описані в основній програмі; С, D - підпрограми, вкладені в підпрограму B; F - підпрограма, вкладена в підпрограму E.

Переваги використання підпрограм:

  1. в програмі немає дублювання коду, що скорочує трудомісткість створення програми;

  2. поліпшується "читабельність" програми і, як наслідок, істотно полегшується процес її налагодження;

  3. значно підвищується надійність програми.