![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Методология преобразования произвольной программы в структурированную |
Контрольная работа 2 МЕТОДЫ СТРУКТУРИРОВАНИЯ ПРОГРАММ Цель работы: освоить методологию преобразования произвольной программы в структурированную. Методические указания Наиболее известными методами, позволяющими выполнить структурирование программ, являются: метод дублирования кодов программы, метод введения переменной состояния и метод булевых признаков. Метод дублирования кодов. Рассмотрим программу, блок-схема которой приведена на рисунке 1. В настоящем виде программа не является структурированной; каждый блок не удовлетворяет требованию «один вход – один выход». Чтобы получить структурированную программу, мы воспользуемся дублированием тех модулей, в которые можно войти из нескольких мест. Рассмотрим исходную программу как простую конструкцию типа IF- HE -ELSE, показанную на рисунке 2. Рисунок 2 -Упрощенное представление схемы по рисунку 1. Она может быть расширена до структуры, изображенной на рисунке 3. Окончательно вся программа может быть представлена в виде, показанном на рисунке 4. Метод применим к любой программе, имеющей структуру решетки Рисунок 3 - Более подробное представление схемы.или сети, но не может быть применен к циклическим программам. Метод дублирования кодов имеет недостаток: он требует больше памяти, чем исходный неструктурированный подход. Однако часто оказывается, что дублируемые модули содержат по 2-3 оператора. В таком случае дублирование кодов – приемлемая плата за возможность получить распадающуюся на уровни структуру. Если же модули состоят из значительного объема кодов, то вводятся подпрограммы. При этом важно, чтобы они были организованы как подпрограммы с формальными параметрами, что дает возможность установить их правильность вне зависимости от контекста, в котором они используются. Метод введения переменной состояния. Метод применим к любым программам и допускает автоматическое применение. Процесс преобразования состоит из пяти шагов. Рисунок 5 - Неструктурированная программа Каждому блоку неструктурированной схемы приписывается номер. В программу вводится новая переменная i целого типа. Функциональные блоки неструктурированной схемы заменяются функциональными блоками, которые выполняют те же самые вычисления и присваивают переменной i целое значение, идентифицирующее номер блока-приемника исходной схеме. Логические блоки исходной схемы преобразуются таким же образом. Теперь перестраиваем блок-схему, придав ей форму, показанную на Рисунок 6 - Структурированная форма программы Начальное значение i=1. Затем последовательно выполняется опрос значений переменной i и т.д. Рисунок 7 - Схема выполнения программы. Программная функция циклической программы описывается системой рекурсивных функций. При этом для каждого i-го узла слияния, начинающего цикл, вводится вспомогательная функция f, определяющая функцию всех узлов схемы выполнения, следующих за i-м узлом. На рисунке 8 приведен пример построения программной функции циклической программы. В данном случае рекурсивно зависит от f1 и f2. а) циклическая программа б) дерево выполнения в) вывод системы рекурсивных функций Рисунок 8 - Пример построения программной функцииНедостатки метода: разрушается форма и топология исходной блок-схемы; снижается эффективность программы, т.к
. каждый функциональный блок дополняется операцией присвпаивания значения переменной состояния и значение переменной состояния должно опрашиваться после исполнения каждого блока. Достоинства метода: преобразованная введением переменной состояния форма может быть неограниченно продолжена, не усложняя при этомобщего подхода; облегчается документирование программы, т.к. каждому блоку исходной схемы соответствует определенное состояние программы; облегчается процесс отладки, если програма не выполняется должным образом, то довольно просто трассировать переменную состояния, что дает ясное прдставление о ходе управления программой. Метод булевого признака. Существует еще один метод структурирования программ, содержащих циклы. Данный метод требует введения в программу некоторого признака задается в некоторой точке выше цикла; конструкциями типа DO-WHILE или REPEA -U IL осуществляется управление циклом до тех пор, пока названный признак сохраняет заданное значение; некоторыми условиями внутри цикла определяется момент смены значения признака. Таким тбразом, программа продставляется в форме: .flag:=0 WHILE flag = 0 DO If x=y HE flag:=1 . или в какой-нибудь другой эквивалентной форме. Программной функцией программы P называется множество всех упорядоченных пар {(X,Y)}, где X – исходное состояние данных перед выполнением программы по некоторому пути дерева ее выполнения; Y – состояние данных послеокончания выполнения программы по этому пути. Для ациклической программы P, показанной на рисунке 3.7, программная функция определяется условным правилом: Задание к контрольной работе Преобразовать управляющую структуру программы, заданную с помощью сокращенной матрицы смежности, в структурированную программу. Показать их функциональную эквивалентность. ТАБЛИЦА 1 Номер варианта 1 2 3 4 5 6 7 8 9 10 SX0 SA0 SA0 SX0 SA0 SX0 SX0 SA0 SA0 SB0 XZA AX0 AX0 XCA AB0 XAZ XYZ AX0 AX0 BX0 AB0 XDB XYC CD0 BX0 AY0 YBA XZY XDB XBY BY0 DY0 YBU DV0 XBY YAB ZBC YWV D 0 XQZ YBP BC0 BU0 VDY YPZ B 0 AP0 ZBW F0 QV P U CY0 CZ0 AB0 ZCW ZCD PLF BU0 BY0 J0 F0 YZ ZCU BY0 CD0 D 0 FV0 UBW YCF JH UGV ZKY U D YQZ DW0 C 0 VFL W R CF0 HJ0 FV0 KFH F0 QFL P G P0 LMP F0 FZ0 VK ZDQ FG0 DV0 LW0 Q0 PUQ BD0 RG ZHW KW0 QCU GK0 VGK WK QFV UWV DQ0 FG0 HW0 WK CU0 P0 GW0 KL0 FV0 WKH QDU VQ WVI ZCU DW0 PQ WHU FG0 GU0 VGH UDM QDC VUE CD0 WGD QH HV0 GR0 UGV HK0 CW0 C 0 UAK DG0 GE0 HL0 FE0 R M VHK GK0 W D 0 KQ0 GR0 VRH LR0 KL0 PO KL0 QM 0 HM QKA RLA REL RM LP0 MP0 LE0 GF ML HK0 ILM LI0 LE0 MU0 PLE ZF HL0 MFK MP KM0 LF0 IPM HK0 U0 U0 WHR FK0 PHK GP0 MJ0 MI0 KE0 UER UHM RML KL0 KE0 PLM JP PE0 HM0 ML0 LE0 HR0 LM0 PG0 P0 PE0 RGE ME0 0 A P GH0 GRO UFR RP0 FR0 OW0 Номер варианта 11 12 13 14 15 16 17 18 19 20 SA0 SX0 SX0 SA0 SA0 SA0 SA0 SA0 SA0 SA0 AB0 XDA XAE AX0 AX0 AX0 AX0 AX0 AX0 AB0 BX0 AB0 AY0 XCB XDB XBD XYB XCB XDB BC0 XBY BY0 YDB CY0 D 0 BC0 Y C BZ0 D 0 CDG YUZ YCF BZ0 YDZ ZO CY0 CD0 CY0 BC0 GI0 UYV CF0 ZCV DY0 BC0 YBF D 0 YDZ CY0 IQ0 ZVW DZ0 CV0 BZ0 CY0 DZ0 BZ0 DY0 YBZ DF0 WZK ZD DU0 ZGU YDZ Z F ZB ZGU Z0 FJ0 VCF U0 UDV UV ZRU F0 U0 UV ZRU JQF CP0 UDF VX GM0 UFV FG0 URV VKH UFW QBP P F FV0 F0 MW0 FV0 GU0 VLW KP0 FV0 PRM D0 VGW FH0 WME VGW ULH LF0 PLE VGW ML0 DC0 WFQ HW0 VKH GW0 HV0 FMK LK0 GW0 RL0 KFL GP0 WGQ HE0 WAQ VKL MF0 HE0 WEQ LOY FY0 PHR GH0 KP0 QRP KH0 KR0 GM0 QRP OW0 LMH HL0 QHP PLE PMR LW0 WGR MW0 PMR W 0 HE0 LG0 PVI LK0 R H WUP GP0 WME R H YL MG RGQ IRK F0 L0 PEQ PHR F0 L0 CU G 0 QMK R J F 0 LM0 QMR HG0 F 0 LM0 UE0 ME M 0 R0 R0 HJ0 M 0 R R0 ME0 I0 KM0 R Q JKM Q0 J0 R Q HJ0 KI0 MJ0 Q Z KH0 RFE JUE Q Z JKM IFJ JPL ME0 KH0 JQE LX0 EX0 Порядок выполнения работы Нарисовать блок-схему программы, используя сокращенную матрицу смежности.
Целесообразно сразу использовать базисные элементы структурного программирования: последовательность, if- he -else,while-do, do-u il и др. Выполнить полный анализ исходной программы. Показать элементы анализа и результирующие блок-схемы для каждого шага анализа. Выделенные неструктурированные фрагменты преобразовать одним из методов в структурированную форму. При использовании теоремы о структурировании получите помеченную и рекурсивную программы. Проверить функциональную эквивалентность выделенного неструктурированного фрагмента исходной программы и полученного структурированного аналога. Содержание отчета Блок-схема исходной программы. Элементы анализа и упрощенная блок-схема каждого шага анализа. Выделенный неструктурированный фрагмент программы. Помеченная и рекурсивная структурированные программы. E-схемы и программные функции для выделенных фрагментов исходной и структурированной программы. Контрольные вопросы Какие методы применяются для структурирования программ? В каких случаях применение метода дублирования кодов эффективно? Перечислите достоинства метода введения переменной состояния. Как формулируется теорема о структурировании программ? Лабораторная работа №2 ПЛАНИРОВАНИЕ ОРГАНИЗАЦИИ РАБОТ НАД ПРОЕКТОМ ПРОГРАММ Цель работы: приобрести практические навыки в применении методов сетевого планирования разработки крупных программных систем в заданные сроки и с оценкой необходимых ресурсов. Методические указания Современная наука об управлении программными проектами сложна и динамично развивается. Целью этого научного направления является создание подсистемы планирования, которая бы своевременно напоминала разработчику о том, что предстоит сделать в проекте; своевременно предупреждала его об окончании сроков, отведенных на данную работу; следила за его руководителем, чтобы он не переполнял заранее оговоренное число заданий на исполнение и каждое задание оформлял в строгом соответствии с существующей договоренностью; чтобы сроки согласовывались, а не назначались, работы распределялись поровну в коллективе, система поощрения была обьективной и соответсвовала выполняемой работе; чтобы система блокировала обращение &quo ;через голову&quo ; к подчиненным; чтобы исходя из существующего опыта, система подсказывала, обучала, следила и т.д. И все это (или почти все) автоматически благодаря анализу самой системой той информации, которая циркулирует в САПР ПО. Многие перечисленные функции планирования реализованы в современных CASE-системах проектирования программ (Compu er Aided Sof ware E gi eeri g): EPOS (Германия), CASE. Аналитик (Россия) и т.д. В данной лабораторной работе рассматривается сетевой метод, который составляет теоретическую основу любой схемы организации работ над проектом. Сетевые методы применяются для рационального планирования крупных программных комплексов. Они позволяют составить субоптимальный план разработки комплекса, распределить правильно ресурсы, оптимизировать сроки выполнения комплекса работ. Рассмотрим пример составления рационального сетевого графика изготовления программного комплекса Диспетчер, модульная структура которого приведена на рисунке 2.1
Выполнила ли методология научно-исследовательских программ эту задачу? Чтобы ответить на этот вопрос, важно понять принципиальную трудность, с которой сталкивается всякая попытка "рациональной реконструкции" истории науки. Когда критерии научной рациональности "накладываются" на процессы, происходящие в реальной научной истории, неизбежно происходит обоюдная критика: с одной стороны, схема рациональной реконструкции (как всякая схема) неизбежно оказывается слишком тесной, узкой, неполной, оставляющей за своими рамками множество фактов, событий, мотивов и т.д., имевших несомненное и важное значение для развития научной мысли; с другой стороны, история науки, рассмотренная сквозь призму этой схемы, выглядит нерациональной именно в тех своих моментах, которые как раз и обладают этим значением. Согласно критерию рациональности, выводимому из методологии И. Лакатоса, прогрессивное развитие научно-исследовательской программы обеспечивается приращением эмпирического содержания новой теории по сравнению с ее предшественницами
1. Разработка форматов хранения программ. Структурирование
2. Имре Лакатос. Методология программ научных исследований
3. Составление программы на алгоритмическом языке, выполняющей указанные преобразования с матрицами
4. Программа управления самолётом в режиме автопилота
5. Содержание договора о передаче прав на программу для ЭВМ
9. Политическая программа английского просвещения Джона Локка
10. Диагностика банкротства предприятия и разработка антикризисной программы (на примере ООО «Оптима»)
11. Рецензия на программу "Тема" - "журналистская этика"
12. Политическая программа декабристов
13. Кирилло-Мефодьевское братство: программа его деятельности
14. Программы и планы действий Декабристов
15. Реформы и государственные преобразования в России во второй половине XIX века
16. Компьютерные вирусы и антивирусные программы
19. Система научно-технического перевода (пример перевода программой PROMT Гигант)
20. Программа эмуляции развития популяций животных
25. Программа и План - сопоставительный анализ
26. Web-Дизайн и программы для создания web-страниц
27. Разработка программы- тренажера "Управление электросетями"
28. Кадры с использованием программы Microsoft Access 97
29. Разработка лабораторного практикума "Создание тестирующей программы"
30. Обучающая программа "Графика" программированию в графическом режиме на языке turbo-pascal 7.x
32. Создание проекта с использованием программы GeniDAQ и контроллеров серии АДАМ-4000
33. Разработка игровой программы на языке программирования Turbo Pascal
35. Программа управления самолётом в режиме автопилота
36. Разработка программы рисования линий с помощью мыши
37. Программа по ведению операций в магазине
41. Компьютерной программе Visio v.4.0
43. "Семейный бюджет" (расчет с помощью программы Microsoft Excel 97)
44. Настройка программы Microsoft Excel
46. Изучение программ MS Office
48. Программы системы 1С: Предприятие. Администрирование в программах 1С: Предприятие
49. Архиваторы. Программа Архиватор ARJ
50. Контролирующие программы в Internet
52. О преобразовании дифференциальных систем уравнений в случае сингулярных пучков матриц
53. Методология науки криминалистики (Контрольная)
58. Идея и программа анархизма Бакунина
59. Компьютерная программа для расчета режимов резания деревообрабатывающего круглопильного станка
60. Программа для расчета цеха серийного производства
61. Ремонт автомобилей и двигателей (рабочая программа для преподавателей специальности 1705)
63. Экзистенциальный анализ. История, теория и методология практики
65. Кодер-декодер речевого сигнала. Амплитудно-фазовое преобразование
67. Преобразование и сохранение естественной среды обитания человека
68. Теория и методология статистического наблюдения
69. Методология и методика эмпирического социологического исследования (Контрольная)
73. Обзор регионального рынка бухгалтерских программ
74. Планирование и программа аудита
75. Анализ рынка бухгалтерских и аналитических программ
76. Разработка программы стимулирования сбыта
77. Методология и методы принятия решения
78. Разработка программ стимулирования труда
79. Программа экологического менеджмента на московской обойной фабрике
81. Источники финансирования учреждений культуры и культурных программ. Технология планирования.
83. Расчет технологической себестоимости на изделие шкафа с годовой программой 2800 штук
84. Методология и методы принятия решения
85. Программа лекционных и практических занятий спецкурса "экономическая психология"
89. Программа вступительных экзаменов по обществознанию в 2004г. (МГУ)
90. Методология исследования политической традиции в России
91. Россия после первой Февральской революции. Октябрь 1917 г. Первые преобразования советской власти
92. Эпоха петровских преобразований
93. Программа, идеология, тактика. Устав партии Эсеров
94. Цели и характер петровских преобразований в области экономики
95. Роль Бориса Николаевича Ельцина в демократических преобразованиях в России
96. Преобразования в России в начале XX века
97. Преобразования Александра Второго