Тема: Методы структурирования программ
Цель: Освоить методологию преобразования произвольной программы в структурированную.
Задание:
Преобразовать управляющую структуру программы, заданную с помощью сокращенной матрицы смежности, в структурированную программу. Показать их функциональную эквивалентность
Вариант: 3
SA0 |
AX0 |
XYC |
YBU |
BU0 |
CZ0 |
ZCU |
UTD |
TF0 |
|
DV0 |
VGK |
GW0 |
WHU |
HV0 |
FE0 |
KL0 |
LP0 |
PLE |
Ход работы:
1. Используя матрицу смежности, построим блок-схему исходной программы:
2. Выполним полный анализ исходной программы. Покажем элементы анализа и результирующие блок-схемы для каждого шага анализа.
Находим в исходной блок-схеме структурированные элементы, для каждого из которых вводится функциональный дополнительный узел, в котором хранится идентификатор и счетчик. Идентификатор содержит номер шага структурирования и номер оператора. Счетчик указывает, сколько исходных узлов данным узлом объединено. Данный этап заканчивается, когда в программе не остается ни одного структурированного элемента.
Шаг 1:
Шаг 2:
Шаг 3:
Результат:
3. Выделенные неструктурированные фрагменты преобразуем с помощью теоремы о структурировании в структурированную форму. При использовании теоремы о структурировании получим помеченную и рекурсивную программы. Для структурирования программы воспользуемся методом введения переменной состояния:
Шаг 1: Идентифицируем все функциональные и предикатные узлы и помечаем все дуги, причем выходной дуге присваиваем «0», а все остальные дуги помечаются номерами узлов, в которые эти дуги входят:
Шаг 2: Заменяем функциональные и предикатные узлы новыми элементами с использованием счетчика i:
Шаг 3: Строим структурированную программу, используя новые обозначения, причем вводим дополнительный цикл по счетчику i:
Шаг 4: Упростим полученную схему путем подстановки узлов и линий в узлы присваивания счетчику нового значения. При этом нельзя допускать образования рекурсии:
4. Проверим функциональную эквивалентность выделенного неструктурированного фрагмента исходной программы и полученного структурированного аналога:
Е-схема исходной программы:
Е-дерево исходной программы:
Введем обозначения составных функциональных узлов:
Программная функция для исходной программы будет выглядеть следующим образом:
Е-дерево структурированной программы:
Введем обозначения составных функциональных узлов, а также вспомогательных узлов, модифицирующих состояние счетчика:
Для упрощения программной функции подставим r4 в r3:
Выводы: Как видно, r1 исходной программы идентично r2 структурированной, а r2 исходной программы идентично r3 структурированной, т. е. программные функции абсолютно идентичны, что подтверждает правильность структурирования программы.
Контрольная работа | Концепция информатизации Российской Федерации |
Контрольная работа | Причины агрессивного поведения. Методы работы с агрессивными детьми |
Контрольная работа | Алгоритм выбора и реализации предпринимательской идеи |
Контрольная работа | Системы управления взаимоотношения с клиентами |
Контрольная работа | Учет материальных затрат в бухгалтерском учете |
Контрольная работа | Геополитическое положение России |
Контрольная работа | Особенности вознаграждения работников в организации |
Контрольная работа | Виды запасов |
Контрольная работа | Психоанализ |
Контрольная работа | Экономико-географическая характеристика Печорского угольного бассейна 2 |
Контрольная работа | Современные методы идентификации подлинности виноградных вин |
Контрольная работа | Зарубежный опыт стимулирования персонала |
Контрольная работа | Социологическая теория марксизма |
Контрольная работа | Предмет морфологии. Понятие о частях речи. Пути ораторского искусства |
Контрольная работа | Правила внутреннего трудового распорядка |