Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
124__Release.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
1.49 Mб
Скачать

4. Схемы программ.

Схемы программ и методы программной спецификации и верификации

Программа выступает как промежуточное звено при общении человека с вычислительной машиной.

Программа задает некоторую механическую процедуру, решения задач и является одним из способов задания алгоритма решения задачи.

В силу этого, программа обладает всеми общими свойствами алгоритмов – дискретностью, массовостью, детерминированностью, элементарностью шагов и эффективностью. С другой стороны, программа должна реализовать алгоритм решения задачи. И генерировать необходимую последовательность действий машины.

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

Каждая отдельная синтаксическая конструкция и их совокупность несут определенную смысловую нагрузку.

Смысл отдельных синтаксических конструкций и смысл всей программы в целом составляет семантическую стороную программы.

Теория схем программ берет на вооружение обычный методологический прием теоретических разделов прикладных наук, который заключается в замене сложных реальных объектов и явлений упрощенными абстрактными моделями.

Математические модели программ должны удовлетворять следующим требованиям:

  1. Модель позволяет изучать свойства достаточно широких классов программ, а не отдельных конкретных программ

  2. Модель сохраняет все интересующие исследователя свойства и особенности рассматриваемого класса программ

  3. Модель позволяет игнорировать несущественные для данной проблемы свойства

  4. Модель должна по возможности быть подобна структуре самой программы, что дает возможность наглядного графического представления (как правило, графические модели очень наглядны и несут много дополнительной визуальной информации)

Схема программ представляет из себя математические модели программ.

Особенно наглядным становится схемное представленное программ, если логическая структура программы изображена в виде графа, вершинами которого являются операторы, а дуги представляют возможные переходы от одного оператора к другому в процессе выполнения программы при различных исходных данных.

Такая графовая модель близка к наиболее распространенным в среде программистов блок-схемам и дает возможность использовать опыт программиста и его интуицию.

5. Способы задания алгоритмов.

Любой алгоритм может быть задан в следующих видах:

  1. Вербальная (словесная) форма. Эта форма пригодна для реализации сравнительно простых алгоритмов.

  2. Графическая форма. В виде блок-схеме или ЛГСА (логическая граф-схема алгоритма). Эта форма представления алгоритма наиболее наглядно и особенно оправдано когда логика программы достаточно сложна

  3. Структурограмма Наси-Шнейдермана. Такая форма представления алгоритма особенно удобна, когда имеются развитые графические средства изображения и они широко используются в задачах САПР (систем автоматического проектирования)

  4. Программа для ЭВМ. Любая программа для ЭВМ, записанная на любом языка программирования, как высокого, так и низкого уровня, даже записанная в кодах машины, является представлением алгоритма в виде, удобном для фиксации её в виде формальных символов или для ввода ЭВМ, если алгоритм записан в кодах машины.

В настоящее время наиболее удобно изображать любой алгоритм в виде блок-схемы.

Блок-схема – это граф, где изображен путь выполнения отдельных шагов алгоритма.

При построении блок-схемы содержимое каждого шага алгоритма записывается в произвольной форме, представленного определнной геометрической фигурой.

Использование различных геометрических фигур отражает различный характер выполняемых действий.

Размеры фигур и их вид регламентированы в России ГОСТом 19.003-80. А в международной практике регламентированы ISO 1028-73.

В блок-схемах алгоритма вершинам соответствуют шаги алгоритма, а ребрам – переходы между шагами алгоритма.

Вершины бывают двух видов:

  1. Операторы - те, из которых выходят одна дуга.

  2. Логические условия (предикаты) – те, из которых выходят 2 или более ребер.

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

С помощью блок-схем можно несколько алгоритмов, рассматриваемых как отдельные блоки связать в один укрупненный алгоритм, такое объединение алгоритмов называется композицией алгоритмов.

С другой стороны, блок-схема позволяет большой алгоритм разбить на отдельные части, которые могут разрабатываться различными программистами, что широко используется при программировании больших задач.

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

Различные пути в одном и том же графе возникают при различных исходных данных, которые создают различные логические условия в точках принятия решений. (в точках ветвления)

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

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

Блок-схемы, к сожалению, не содержат сведений ни о данных, которыми обладает программа, ни о памяти, ни об используемых наборах элементарных шагов.

По существу, блок-схемы – это не язык, а средство для описания детерминизма алгоритма.

Точки ветвления могут быть не только двоичными (выбор одного из двух вариантов в зависимости от истинности или ложности логического условия) или многозначными.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]