Методы структурирования программ
Методология преобразования произвольной программы в структурированную с помощью сокращенной матрицы смежности. Проверка функциональной эквивалентности выделенного неструктурированного фрагмента исходной программы и полученного структурированного аналога.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 15.03.2009 |
Размер файла | 109,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Тема: Методы структурирования программ
Цель: Освоить методологию преобразования произвольной программы в структурированную.
Задание:
Преобразовать управляющую структуру программы, заданную с помощью сокращенной матрицы смежности, в структурированную программу. Показать их функциональную эквивалентность
Вариант: 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 структурированной, т. е. программные функции абсолютно идентичны, что подтверждает правильность структурирования программы.
Подобные документы
Метод дублирования кодов. Метод введения переменной состояния. Методология преобразования произвольной программы в структурированную. Замена функциональных блоков неструктурированной схемы функциональными блоками. Логические блоки исходной схемы.
лабораторная работа [51,8 K], добавлен 15.03.2009Решение нелинейного уравнения вида f(x)=0 с помощью программы Excel. Построение графика данной функции и ее табулирование. Расчет матрицы по исходным данным. Проведение кусочно-линейной интерполяции таблично заданной функции с помощью программы Mathcad.
контрольная работа [1,8 M], добавлен 29.07.2013Программа формирования матрицы смежности по заданному списку окрестностей вершин ориентированного графа. Формирование динамического списка дуг ориентированного графа по заданному списку окрестностей. Анализ временной и емкостной сложности алгоритма.
курсовая работа [8,1 M], добавлен 07.09.2012Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.
курсовая работа [1,2 M], добавлен 04.08.2014Составление программы вычисления матрицы и программы вычисления интеграла с погрешностью, не превышающей заданную величину. Схема алгоритма и её описание. Инструкция по использованию разработанной программы и проверка правильности е функционирования.
курсовая работа [54,8 K], добавлен 27.10.2010Разработка эскизного и технического проектов программы преобразования заданной матрицы в ортогональную матрицу. Сравнивание транспонированной матрицы с обратной с целью проверки ортогональности. Выбор состава технических и программных средств реализации.
курсовая работа [52,1 K], добавлен 09.12.2014Описание алгоритма и исходного кода программы формирования графовой модели заданного фрагмента принципиальной электрической схемы. Разработка схемы алгоритмов решения задачи. Результаты решения контрольных примеров, выполненные с помощью программы.
контрольная работа [47,8 K], добавлен 14.10.2012Построение функциональной и информационной моделей с использованием программ BPWin и ERWin. Описания интерфейса и элементов панели инструментов. Создание реляционной базы данных с помощью Microsoft Access. Разработка проекта федеральной целевой программы.
курсовая работа [703,3 K], добавлен 26.02.2014Разработка сканера, который считывает литеры первоначальной, исходной программы и строит символы, исходной программы. Глобальные переменные и необходимые подпрограммы. Диаграмма состояний. Текст программы. Инструкция пользователю. Тестовый пример.
курсовая работа [3,4 M], добавлен 05.07.2008Разработка программы для решения системы линейных уравнений методом Крамера и с помощью расширенной матрицы на языке С++. Описание метода Крамера. Структура программы: заголовочные файлы, типы данных, переменные, идентификаторы, операторы, массивы.
курсовая работа [32,3 K], добавлен 19.01.2009