КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Поняття підпрограмиБлочна організація програм Принцип модульності програм Одним із основних принципів структурного програмування є принцип модульності, який полягає в організації програми як сукупності логічно незалежних блоків (модулів), структура і поведінка яких відповідають певним правилам. При цьому функціональність модуля (що він повинен виконувати) відокремлюється від його реалізації (як це виконується). Тобто, знаючи, що робить модуль і як його викликати, можна без обмежень використовувати його, не маючи при цьому жодного уявлення, як саме він реалізований. Модуль – це програмний блок, який розв’язує порівняно нескладну задачу, логічно незалежну від інших задач. Властивості модуля: 1) відповідає лише одній задачі; 2) має єдиний вхід і єдиний вихід (деякі мови програмування дозволяють існування декількох входів або виходів); 3) має порівняно невеликий розмір (до 100 операторів); 4) доступний за своїм ідентифікатором (ім’ям); 5) може викликати інший модуль (не в усіх мовах програмування); 6) повинен повертати керування тому, хто його викликав; 7) не повинен зберігати історію своїх викликів (інакше може виникати так званий побічний ефект); 8) підтримує незалежність функціонування (заміна модуля на аналогічний не впливає на всю програму). Механізм блокової або модульної організації програм допускає вкладеність блоків. Оскільки блоки можуть вкладатися один в інший, то кожному з них можна приписувати деякий рівень вкладеності. Якщо самий зовнішній блок (програма) відноситься до рівня 0, то блок, визначений всередині цього блоку, повинен ставитися до рівня 1 і т. д.). Вкладеність блоків, в загальному випадку, не обмежена. Переваги модульності програм: - полегшується налагодження і тестування програми; - внесення змін може привести до зміни окремих модулів, а не програми в цілому; - програмний продукт може розроблятися кількома виконавцями (кожен виконавець розробляє свій модуль). Поняття підпрограми В якості окремих модулів (блоків) часто виступають підпрограми, які наряду з виразами і операторами є керуючими структурами мов програмування і служать для структурування дій, визначених алгоритмом програми. Підпрограма - це іменований, спеціальним чином оформлений фрагмент програми, який реалізує певний алгоритм і може викликатися для виконання з різних місць основної програми. Підпрограми з'явились як засіб оптимізації програм за обсягом займаної пам'яті - вони дозволили не повторювати в програмі ідентичні блоки коду, а описувати їх одноразово і викликати в міру необхідності (обчислення відстаней між точками площини, виведення поточного вмісту масиву, тощо). Натепер ця функція підпрограм стала допоміжною, головне їх призначення - структуризація програми з метою зручності її розуміння і супроводу. Тому сучасний підхід до розробки програм заохочує явне оформлення у вигляді підпрограм кожного логічно завершеного програмного фрагмента (що не обов'язково повторюється). Підпрограмами реалізуються, наприклад, операції розв’язання системи лінійних рівнянь, знаходження найбільшого загального дільника двох натуральних чисел, впорядкування компонент вектора, тощо. Структурно програма складається з основної програми і підпрограм, звертання до яких здійснюється кожного разу, коли в основній програмі виникає необхідність їх виконання. Активація підпрограми здійснюється за її іменем спеціальною конструкцією виклику підпрограми. При цьому запам'ятовується так звана точка повернення в основну програму і керування передається підпрограмі (її першому оператору). Точка повернення – це місце в програмі, що описує дію, якою програма продовжується по закінченні виконання підпрограми. Це може бути наступний за викликом підпрограми оператор, умова завершення чи продовження циклу, якщо виклик записаний останнім у тілі циклу, тощо. Вказівка на точку повернення зберігається до закінчення виконання підпрограми. Після завершення виконання підпрограми відбувається автоматичне повернення в основну програму, яка продовжує своє виконання з дії, що була позначена як точка повернення. Схема взаємодії програми і підпрограми наведена на рис.1. Рис. 1. Схема взаємодії програми і підпрограми Механізм блокової організації програм дозволяє розглядати програму як деяку ієрархічну структуру, що складається з головної програми і множини вкладених блоків (підпрограм). Зовнішньою по відношенню до всіх інших підпрограм, є програма (рис. 5). Рис. 2. Реалізація вкладеності підпрограм Тут А - основна програма; В, Е - підпрограми, описані в основній програмі; С, D - підпрограми, вкладені в підпрограму B; F - підпрограма, вкладена в підпрограму E. Переваги використання підпрограм: 1) в програмі немає дублювання коду, що скорочує трудомісткість створення програми; 2) поліпшується "читабельність" програми і, як наслідок, істотно полегшується процес її налагодження; 3) значно підвищується надійність програми.
|