Программа как математический объект: Методические указания для самостоятельного изучения темы и выполнения РГР, страница 30

5.4.2  Анализ непоименованного блока

В этом пункте задания, необходимо указать, в каких подпрограммах непоименованного блока нарушен принцип структурированности. Например,  подпрограмма имеет два входа, два выхода или более сложные случаи.

 Если  возможно, предложите способ структурирования непоименованного блока. Стандартные ситуации, когда структурирование возможно без использования теоремы о структурировании:

1)  нарушена структурированность конструкций if _ then и if _ then _ else;

2)  простые циклы с двумя входами;

3)  простые циклы с двумя выходами.

Если Вы нашли неформальное решение проблемы структурированности, то необходимо доказать, что полученная Вами структурная схема непоименованного блока эквивалентна исходной. (см. 3.2.5, [12,4.4.1, стр.118])

                                                Литература

1.  Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов.

      М.: Мир, 1979.

2.  Алагич С., Арбиб М. Проектирование корректных структурированных программ.
М.: Радио и связь, 1984.

3.  Бежанова М.М., Поттосин И.В. Современные понятия и методы программирования.
М.: Научный мир, 2000.

4.  Гамма Э., Хелм Р., Джонсон Р., Ворссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования.
СПб: Питер, 2001. - 368 с.

5.  Грис Д. Наука программирования.
М.: Мир, 1984.

6.  Дейкстра Э. Дисциплина программирования.
М.: Мир, 1978.  

7.  Касьянов И.Н. Методы анализа прошграмм.

Новосибирск: НГУ, 1982

8.  Касьянов И.Н., Сабельфельд В. К. Сборник заданий по практикуму на ЭВМ.
М.: Наука, 1986.

9.  Ковальски Р. Логика в решении проблем.
М.: Наука, 1990.

10. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ.
М.: МЦНМО, 1999

11. Котов В.Е. Сабельфельд В. К. Теория схем программ.
М.: Наука, 1991.

12. Лингер Р., Миллс Х., Уитт Б. Теория и практика структурного программирования.

     М.: Мир, 1982.

13.  Майерс Г. Искусство тестирования программ.

 М.: Финансы и статистика, 1982.

14. Непейвода Н.Н. Стиль и методы программирования.
М.: ИНТУИТ, 2005.

15.  Непейвода Н.Н. Основания программирования. Лекции 2004 г
М.: ИНТУИТ, 2004.

16.  Шалыто А.А. Логическое управление Методы аппаратной и программной реализации алгоритмов
СПб.: Наука, 2000.

17.  Шалыто А.А. Новая инициатива в программировании. Движение за открытую проектную документацию
Мир ПК, №9, 2003.

                                                                                   Приложение

РАСЧЁТНО-ГРАФИЧЕСКОЕ ЗАДАНИЕ

ВАРИАНТ 1

1)  Для поставленной задачи разработать проект задачи и описать его на языке проектирования или построить конечный автомат.  Разработать полную систему тестов.

Для двух  неотрицательных чисел n и m меньших 231 , определить делиться ли n! на m.

Мы говорим, что а делит б, если существует такое целое к, что к * а = б.

2)  Определите функцию данной элементарной программы. Программа написана на Си, X и Y переменные целого типа. Докажите правильность данной гипотезы относительно предполагаемой функции  и постройте инвариант для цикла.

Do

    X = X – 1;

    Y = Y + 1;

While X ≠ 0;

3)  Для заданной схемы программы (см. рис. 1 ) выполнить:

a)  анализ данной схемы;

b)  по теореме о структурировании структурировать непоименованный блок, которой был получен в результате анализа (см. предыдущий пункт).

c)  Построить помеченную структурированную схему;

d)  Построить рекурсивную структурированную схему;

e)  Сделайте анализ непоименованного блока: какие принципы структурирования были нарушены?

f)  Сделайте анализ рекурсивного блока: за счет чего схема стала структурированной?

g)  Постройте Е – схему для непоименованного блока и опишите функцию непоименованного блока.

Рис. 1