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

Методология преобразования произвольной программы в структурированную с помощью сокращенной матрицы смежности. Проверка функциональной эквивалентности выделенного неструктурированного фрагмента исходной программы и полученного структурированного аналога.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.