Тема: Методи структурування програм
Мета: Опанувати методологію перетворення довільної програми в структуровану.
Завдання:
Перетворити керуючу структуру програми, задану за допомогою скороченою матриці суміжності, в структуровану програму. Показати їх функціональну еквівалентність
Варіант: 3
Хід роботи:
1. Використовуючи матрицю суміжності, побудуємо блок-схему вихідної програми:
SHAPE \ * MERGEFORMAT
2. Виконаємо повний аналіз вихідної програми. Покажемо елементи аналізу та результуючі блок-схеми для кожного кроку аналізу.
Знаходимо у вихідній блок-схемі структуровані елементи, для кожного з яких вводиться функціональний додатковий вузол, в якому зберігається ідентифікатор і лічильник. Ідентифікатор містить номер кроку структурування та номер оператора. Лічильник вказує, скільки вихідних вузлів даними вузлом об'єднано. Даний етап закінчується, коли в програмі не залишається жодного структурованого елемента.
Крок 1:
SHAPE \ * MERGEFORMAT
Крок 2:
SHAPE \ * MERGEFORMAT
Крок 3:
SHAPE \ * MERGEFORMAT
Результат:
SHAPE \ * MERGEFORMAT
3. Виділені неструктуровані фрагменти перетворимо за допомогою теореми про структурування в структуровану форму. При використанні теореми про структуруванні отримаємо позначену і рекурсивну програми. Для структурування програми скористаємося методом введення змінної стану:
Крок 1: Ідентифікуємо всі функціональні і предикатні вузли і викреслюємо всі дуги, причому вихідний дузі присвоюємо «0», а всі інші дуги позначаються номерами вузлів, у які ці дуги входять:
SHAPE \ * MERGEFORMAT
Мета: Опанувати методологію перетворення довільної програми в структуровану.
Завдання:
Перетворити керуючу структуру програми, задану за допомогою скороченою матриці суміжності, в структуровану програму. Показати їх функціональну еквівалентність
Варіант: 3
SA0 | AX0 | XYC | YBU | BU0 | CZ0 | ZCU | UTD | TF0 |
DV0 | VGK | GW0 | WHU | HV0 | FE0 | KL0 | LP0 | PLE |
1. Використовуючи матрицю суміжності, побудуємо блок-схему вихідної програми:
SHAPE \ * MERGEFORMAT
S |
A |
X |
Y |
B |
C |
X |
U |
T |
F |
D |
V |
G |
W |
H |
K |
L |
P |
E |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
2. Виконаємо повний аналіз вихідної програми. Покажемо елементи аналізу та результуючі блок-схеми для кожного кроку аналізу.
Знаходимо у вихідній блок-схемі структуровані елементи, для кожного з яких вводиться функціональний додатковий вузол, в якому зберігається ідентифікатор і лічильник. Ідентифікатор містить номер кроку структурування та номер оператора. Лічильник вказує, скільки вихідних вузлів даними вузлом об'єднано. Даний етап закінчується, коли в програмі не залишається жодного структурованого елемента.
Крок 1:
SHAPE \ * MERGEFORMAT
S |
A |
X |
Y |
B |
C |
X |
U |
T |
F |
D |
V |
G |
W |
H |
K |
L |
P |
E |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
Крок 2:
SHAPE \ * MERGEFORMAT
X |
U |
D |
V |
G |
W |
H |
K |
E |
1 / 1 |
2 |
1 / 2 |
2 |
1 / 3 |
2 |
1 / 4 |
2 |
1 / 5 |
2 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
Крок 3:
SHAPE \ * MERGEFORMAT
U |
D |
V |
G |
W |
H |
E |
1 / 1 |
2 |
2 / 1 |
5 |
1 / 4 |
2 |
2 / 2 |
3 |
1 |
0 |
0 |
1 |
1 |
0 |
Результат:
SHAPE \ * MERGEFORMAT
U |
D |
V |
G |
W |
H |
E |
3 / 1 |
7 |
1 / 4 |
2 |
2 / 2 |
3 |
1 |
0 |
0 |
1 |
1 |
0 |
3. Виділені неструктуровані фрагменти перетворимо за допомогою теореми про структурування в структуровану форму. При використанні теореми про структуруванні отримаємо позначену і рекурсивну програми. Для структурування програми скористаємося методом введення змінної стану:
Крок 1: Ідентифікуємо всі функціональні і предикатні вузли і викреслюємо всі дуги, причому вихідний дузі присвоюємо «0», а всі інші дуги позначаються номерами вузлів, у які ці дуги входять:
SHAPE \ * MERGEFORMAT
0 |
U |
D |
V |
G |
W |
H |
E |
3 / 1 |
7 |
1 / 4 |
2 |
2 / 2 |
3 |
1 |
0 |
0 |
1 |
1 |
1 |
2 |
4 |
6 |
3 |
8 |
9 |
10 |
5 |
7 |
2 |
0 |
10 |
8 |
1 |
2 |
7 |
4 |
3 |
4 |
9 |
5 |
6 |
10 |
Крок 2: Замінюємо функціональні та предикатні вузли новими елементами з використанням лічильника i:
SHAPE \ * MERGEFORMAT
U |
D |
V |
G |
W |
H |
E |
3 / 1 |
7 |
1 / 4 |
2 |
2 / 2 |
3 |
U |
D |
V |
G |
W |
H |
E |
3 / 1 |
7 |
1 / 4 |
2 |
2 / 2 |
3 |
i = 2 |
i = 10 |
i = 10 |
i = 6 |
i = 4 |
i = 0 |
i = 4 |
i = 3 |
i = 8 |
i = 9 |
i = 5 |
i = 2 |
i = 7 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
Крок 3: Будуємо структуровану програму, використовуючи нові позначення, причому вводимо додатковий цикл по лічильнику i:
SHAPE \ * MERGEFORMAT
U |
D |
V |
G |
W |
H |
E |
3 / 1 |
7 |
1 / 4 |
2 |
2 / 2 |
3 |
i = 2 |
i = 10 |
i = 10 |
i = 6 |
i = 4 |
i = 0 |
i = 4 |
i = 3 |
i = 8 |
i = 9 |
i = 5 |
i = 2 |
i = 7 |
0 |
1 |
0 |
0 |
1 |
1 |
i = 1 |
i = 0 |
i = 1 |
i = 2 |
i = 3 |
i = 4 |
i = 5 |
i = 6 |
i = 7 |
i = 8 |
i = 9 |
Крок 4: Спростимо отриману схему шляхом підстановки вузлів і ліній у вузли присвоювання лічильнику нового значення. При цьому не можна допускати утворення рекурсії:
SHAPE \ * MERGEFORMAT
U |
D |
V |
G |
W |
H |
E |
3 / 1 |
7 |
1 / 4 |
2 |
2 / 2 |
3 |
i = 2 |
i = 10 |
i = 10 |
i = 6 |
i = 4 |
i = 0 |
i = 4 |
i = 3 |
i = 8 |
i = 9 |
i = 5 |
i = 2 |
i = 7 |
0 |
1 |
0 |
0 |
1 |
1 |
i = 1 |
i = 0 |
i = 1 |
i = 2 |
i = 3 |
i = 4 |
i = 5 |
i = 6 |
i = 7 |
i = 8 |
i = 9 |
SHAPE \ * MERGEFORMAT
U |
D |
V |
G |
W |
H |
E |
3 / 1 |
7 |
1 / 4 |
2 |
2 / 2 |
3 |
i = 2 |
i = 10 |
i = 10 |
i = 6 |
i = 4 |
i = 0 |
i = 4 |
i = 2 |
0 |
1 |
0 |
0 |
1 |
1 |
i = 1 |
i = 0 |
i = 1 |
i = 2 |
i = 4 |
i = 6 |
SHAPE \ * MERGEFORMAT
0 |
1 |
U |
D |
V |
G |
W |
H |
E |
3 / 1 |
7 |
1 / 4 |
2 |
2 / 2 |
3 |
i = 10 |
i = 10 |
i = 6 |
i = 4 |
i = 0 |
i = 4 |
1 |
0 |
0 |
1 |
i = 1 |
i = 0 |
i = 1 |
i = 4 |
i = 6 |
U |
D |
1 / 4 |
2 |
i = 10 |
i = 4 |
1 |
0 |
SHAPE \ * MERGEFORMAT
0 |
1 |
U |
D |
V |
G |
W |
H |
3 / 1 |
7 |
1 / 4 |
2 |
2 / 2 |
3 |
i = 6 |
i = 4 |
i = 4 |
1 |
0 |
0 |
1 |
i = 1 |
i = 0 |
i = 1 |
i = 4 |
U |
D |
1 / 4 |
2 |
i = 4 |
1 |
0 |
E |
i = 0 |
E |
i = 0 |
E |
i = 0 |
4. Перевіримо функціональну еквівалентність виділеного неструктурованого фрагмента вихідної програми і отриманого структурованого аналога:
Е-схема вихідної програми:
SHAPE \ * MERGEFORMAT
U |
D |
V |
G |
W |
H |
E |
3 / 1 |
7 |
1 / 4 |
2 |
2 / 2 |
3 |
1 |
2 |
3 |
3 |
E |
1 |
2 |
0 |
1 |
0 |
1 |
0 |
1 |
r 1 |
r 2 |
Е-дерево вихідної програми:
SHAPE \ * MERGEFORMAT
U |
D |
V |
G |
W |
H |
E |
3 / 1 |
7 |
1 / 4 |
2 |
2 / 2 |
3 |
E |
0 |
1 |
0 |
1 |
0 |
1 |
r 1 |
r 2 |
r 2 |
r 1 |
P: |
r 1: |
r 2: |
Введемо позначення складових функціональних вузлів:
SHAPE \ * MERGEFORMAT
3 / 1 |
7 |
1 / 4 |
2 |
2 / 2 |
3 |
- F 1 |
- F 2 |
- F 3 |
Програмна функція для вихідної програми буде виглядати наступним чином:
Е-дерево структурованої програми:
SHAPE \ * MERGEFORMAT
r 1 |
3 / 1 |
7 |
0 |
1 |
U |
D |
V |
G |
W |
H |
1 / 4 |
2 |
2 / 2 |
3 |
i = 6 |
i = 4 |
i = 4 |
1 |
0 |
0 |
1 |
i = 1 |
i = 0 |
i = 1 |
i = 4 |
U |
D |
1 / 4 |
2 |
i = 4 |
1 |
0 |
E |
i = 0 |
E |
i = 0 |
E |
i = 0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
r 2 |
r 2 |
r 3 |
r 4 |
Введемо позначення складових функціональних вузлів, а також допоміжних вузлів, модифікуючих стан лічильника:
SHAPE \ * MERGEFORMAT
3 / 1 |
7 |
1 / 4 |
2 |
2 / 2 |
3 |
- F 1 |
- F 2 |
- F 3 |
i = 0 |
i = 1 |
i = 4 |
i = 6 |
- Exit |
- R 1 |
- R 3 |
- R 4 |
SHAPE \ * MERGEFORMAT
3 / 1 |
7 |
0 |
1 |
V |
G |
W |
H |
2 / 2 |
3 |
0 |
1 |
U |
D |
1 / 4 |
2 |
1 |
0 |
E |
E |
r 1: |
r 2: |
r 2 |
r 3 |
r 3: |
r 4 |
r 2 |
r 4: |
r 3 |
P: |
r 1 |
Для спрощення програмної функції підставимо r 4 у r 3:
Висновки: Як видно, r 1 вихідної програми ідентично r 2 структурованої, а r 2 вихідної програми ідентично r 3 структурованої, тобто програмні функції абсолютно ідентичні, що підтверджує правильність структурування програми.
Цей текст може містити помилки.
Програмування, комп'ютери, інформатика і кібернетика | Контрольна робота
Схожі роботи:
Розробка форматів зберігання програм Структурування
Структурування таблиці Опис методів структурування таблиці в Excel
Етапи розробки програм Тестування та налагодження Документування програм
Розробка форматів зберігання даних програми Структурування
Структурування державного управління по горизонталі система поділу влади
Концепція математичного моделювання та структурування інформації в задачах прийняття рішень
Архівування файлів Методи архівування файлів за допомогою основних програм архваторів - опис
Складання програм в PR
Ринок телевізійних програм