Методи структурування програм

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Тема: Методи структурування програм
Мета: Опанувати методологію перетворення довільної програми в структуровану.
Завдання:
Перетворити керуючу структуру програми, задану за допомогою скороченою матриці суміжності, в структуровану програму. Показати їх функціональну еквівалентність
Варіант: 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 структурованої, тобто програмні функції абсолютно ідентичні, що підтверджує правильність структурування програми.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Контрольна робота
94.4кб. | скачати


Схожі роботи:
Розробка форматів зберігання програм Структурування
Структурування таблиці Опис методів структурування таблиці в Excel
Етапи розробки програм Тестування та налагодження Документування програм
Розробка форматів зберігання даних програми Структурування
Структурування державного управління по горизонталі система поділу влади
Концепція математичного моделювання та структурування інформації в задачах прийняття рішень
Архівування файлів Методи архівування файлів за допомогою основних програм архваторів - опис
Складання програм в PR
Ринок телевізійних програм
© Усі права захищені
написати до нас