Тема 5. Методи структуризації програм. Використання модулів.

Питання теми та основні терміни.

Методи структуризації програм

Створення і використання модулів

Синтаксична структуризація, процедурна структуризація, модульна структуризація, об’єктно-компонентна структуризація.

Інформаційні матеріали теми

1. Методи структуризації програм

Оскільки будь-яка програма є алгоритмічним рішенням поставленої задачі для ЕОМ, необхідно дотримувати деяких принципів, що сприяють написанню гарних та зрозумілих програм. Ці принципи  полегшують налагодження непрацюючих програм, дозволяють зменшити загальну кількість логічних помилок. Багаторівнева структуризація – один з найважливіших дійових заходів у цьому напрямку. Виділяють наступні рівні структуризації:

1. синтаксичний;

2. процедурний;

3. модульний;

4. об'єктно-компонентний.

Синтаксична структуризація визначає сучасну культуру написання програм і полягає в дотриманні декількох простих принципів:

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

- головним програмним блоком є тіло самої програми;

- запис програмних блоків здійснюється за допомогою відповідних відступів від початку рядка;

- блоки можуть бути вкладеними;

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

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

- розмір кожного програмного блоку бажано робити як можна меншим.

Приклади структурного запису програм:

Program Name1;

const

K1=5; K2=10;

K3=20; K4=25;

var

A,B: type1;

C : type2;

D,E,F,G: type3;

procedure Name2 (.....);

begin

.......

end;

function Name3 (.....):type4;

begin

.......

end;

Begin

оператор1; оператор2;

оператор3; оператор4;

if  умова1 then оператор5 else оператор6;

оператор7;

оператор8;

if умова2

then begin

  оператор9;

  оператор10;

  end

else begin

  оператор11;

  оператор12;

  end;

for і:=1 to K1 do

begin

  оператор13;

  оператор14;

  оператор15;

end; {for}

repeat

  оператор16;

  оператор17;

until умова3;

оператор18;

оператор19;

End.

Якщо який-небудь програмний блок збільшується в розмірах більш ніж на 20 рядків або повторюється кілька разів у різних місцях програми, то такий блок краще оформляти у виді підпрограми (процедури або функції). Іноді дуже зручно розбивати всю програму на окремі значеннєві блоки, що оформляються у виді підпрограм, наприклад: уведення даних, розрахунок допоміжних значень, побудова графіків, виведення результатів на екран і т.п.

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

Модульна структуризація використовується при побудові великих програм. У випадках, коли в програмі використовується велика кількість різних процедур і функцій усі підпрограми розбиваються на окремі значеннєві групи, що оформляються, компілюються і зберігаються у виді окремих файлів-модулів. Часто з подібних модулів складаються цілі програмні бібліотеки. Щоб потім в основній програмі можна було використовувати процедури або функції з визначених модулів, необхідно після заголовка програми після ключового слова uses указати список усіх модулів, підпрограми яких ви збираєтеся використовувати.

Приклад:

Program P2;

uses module1, module2, module3;

.........

Якщо компілятор виявляє в програмі незнайомий ідентифікатор, що не значиться в розділі описів поточної програми, то починається  послідовний пошук цього імені в модулях, перерахованих у рядку uses ... Якщо він не знайдений і там, тоді видається помилка про те, що даний ідентифікатор невідомий:

Unknown identifier

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

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

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

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

Об’єктно-орієнтована методологія дозволяє писати величезні програмні комплекси. Практично все сучасне програмне забезпечення (ОС Windows, Word, Excel, Access і багато інших програм) написане з використанням даної технології.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 
25 26 27 28  Наверх ↑