- •СОДЕРЖАНИЕ
- •Раздел 1. ОБЩИЕ СВЕДЕНИЯ О ПРОГРАММНОМ ОБЕСПЕЧЕНИИ
- •1.1. Принцип программного управления
- •1.2. Автоматическое выполнение команд программы
- •1.3. Этапы постановки и решения задачи на компьютере
- •1.4. Назначение и классификация языков программирования
- •1.4.1. Машинно-ориентированные языки
- •1.4.2. Машинно-независимые языки
- •1.5. Структура программного обеспечения
- •1.5.1. Системы программирования
- •1.5.2. Операционные системы
- •Раздел 2. ОСНОВЫ АЛГОРИТМИЗАЦИИ
- •2.1. Алгоритм и его свойства
- •2.2. Способы описания алгоритмов
- •2.2.1. Словесное описание
- •2.2.2. Графическое описание
- •2.2.3. Запись на алгоритмическом языке
- •2.3. Разновидности структур алгоритмов
- •2.3.1. Линейный вычислительный процесс
- •2.3.2. Разветвляющийся вычислительный процесс
- •2.3.3. Циклический вычислительный процесс
- •Раздел 3. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ
- •3.1. Теория структурного программирования
- •3.2. Реализация структурного проектирования в современных языках программирования
- •3.3. Преобразование неструктурированных программ в структурированные
- •3.3.2. Метод введения переменной состояния
- •3.3.3. Метод булевого признака
- •3.4. Способы графического представления структурированных схем алгоритмов
- •3.4.1. Метод Дамке
- •3.4.2. Схемы Насси-Шнейдермана
- •Раздел 4. АЛГОРИТМИЧЕСКИЙ ЯЗЫК ПРОГРАММИРОВАНИЯ ПАСКАЛЬ
- •4.1. Общая характеристика языка Паскаль
- •4.2. Алфавит языка Паскаль
- •4.3. Основные понятия языка
- •4.3.1. Идентификаторы
- •4.3.2. Комментарии
- •4.4. Структура простейшей программы
- •4.5. Способы описания синтаксиса
- •4.5.2. Синтаксические диаграммы
- •Раздел 5. ОСНОВНЫЕ ТИПЫ ДАННЫХ
- •5.1. Классификация данных
- •5.2. Стандартные скалярные типы данных
- •5.2.1. Целочисленные типы
- •Формат
- •5.2.2. Вещественные типы
- •Функция
- •5.2.3. Символьный тип (тип Char)
- •5.2.4. Логический тип (тип Boolean)
- •Функция
- •5.3. Выражения
- •5.4. Оператор присваивания
- •Раздел 6. СТРУКТУРА ПРОГРАММЫ
- •6.1. Программный модуль
- •6.2. Раздел меток
- •6.3. Раздел констант
- •6.4. Раздел типов
- •6.5. Раздел переменных
- •6.6. Раздел операторов
- •Раздел 7. ОПЕРАТОРЫ
- •7.1. Составной оператор
- •7.2. Программирование линейных и разветвляющихся структур алгоритмов
- •7.2.1. Оператор перехода Goto
- •7.2.2. Условный оператор If
- •7.2.3. Оператор варианта (выбора) Case
- •7.2.4. Пустой оператор
- •7.3. Программирование циклических структур алгоритмов
- •7.3.1. Оператор цикла с параметром (оператор For)
- •7.3.2. Оператор цикла с постусловием
- •7.3.3. Оператор цикла с предусловием
- •7.3.4. Операторы Continue и Leave
- •Раздел 8. СТРУКТУРИРОВАНИЕ И ОФОРМЛЕНИЕ ПРОГРАММ
- •Раздел 9. ОПИСАННЫЕ СКАЛЯРНЫЕ ТИПЫ
- •9.1. Перечислимый скалярный тип
- •9.2. Тип диапазон
- •10.1. Массивы
- •10.1.1. Задание массивов
- •10.1.2. Действия над элементами массивов
- •10.1.3. Действия над массивами
- •10.1.4. Типизованные константы типа массив
- •10.2. Строковые данные
- •10.2.1. Строковые константы
- •10.2.2. Строковые переменные
- •10.2.3. Встроенные функции, определенные над данными типа String
- •ЛИТЕРАТУРА
(1 и 2) |
1 |
= 0 |
|
0 |
|
|
3 |
1 |
1 |
|
|
0 |
|
4 |
5 |
Рисунок 3.18 − Структурированная форма исходной схемы, |
|
преобразованная без использования дополнительного признака |
Результирующая схема (см. рисунок 3.18) содержит обобщенный цикл с одним входом и одним выходом и конструкцию If-Then-Else, то есть является структурированной.
Следует иметь в виду, что преобразование схемы к структурированному виду без дополнительного признака возможно и эффективно только при небольшом количестве условий.
3.4.Способы графического представления структурированных схем алгоритмов
Многие специалисты в области теории программирования считают, что графическое представление алгоритмов в соответствии с ГОСТ 19.701-90 (ISO 5807-85, см. п. 2.2.2) скрывают структуру структурированной программы,
67
представляя структурированность недостаточно очевидной. Поэтому для представления структурированных схем алгоритмов были предложены специальные методы графических обозначений.
В данном пособии рассмотрены два из них – метод Дамке и диаграммы Насси-Шнейдермана.
3.4.1. Метод Дамке
М. Дамке предложил для конструкций структурированных схем алгоритмов специальные обозначения.
Три основных конструкции структурного программирования изображаются следующим образом.
1) Функциональный блок по-прежнему обозначается прямоугольником
(рисунок 3.19).
Подзадача
Рисунок 3.19 – Представление функционального блока по методу Дамке
2)Конструкция If-Then-Else изображается так, как иллюстрирует рисунок 3.20.
Элементы с выполняемыми действиями находятся справа от символа «Решение». Вход и выход из конструкции находятся соответственно сверху и снизу символя «Решение».
3)Конструкция Do-While (цикл с предусловием “Пока”) изображается так, как показывает рисунок 3.21.
Тело цикла выполняется до тех пор, пока условие истинно. Условие проверяется первым. Графически это изображается положением шестиугольника над выполняемым телом цикла.
Следует обратить внимание, что входы и выходы из всех конструкций метода Дамке находятся в левой части (сверху и снизу) графического представления конструкций. Расширения конструкций в правой части представления выходов не имеют.
68
|
1 (да) |
|
|
If |
|
Подзадача, |
|
|
выполняемая, если |
||
условие |
|
||
0 (нет) |
условие истинно |
||
|
|||
|
|
||
|
|
Подзадача, |
|
|
|
выполняемая, если |
|
|
|
условие ложно |
|
Рисунок 3.20 – Представление конструкции If-Then-Else |
|||
|
по методу Дамке |
While
условие
Тело цикла
Рисунок 3.21 – Представление конструкции Do-While по методу Дамке
69
Помимо трех основных конструкций в структурном программировании допускаются дополнительные конструкции. В методе Дамке они изображаются следующим образом.
1) Конструкция Repeat-Until (цикл с постусловием “До”) изображается так, как иллюстрирует рисунок 3.22.
Если условие истинно, осуществляется выход из цикла. Тело цикла выполняется до проверки условия. Графически это изображается положением шестиугольника под телом цикла.
Тело цикла
Until
условие
Рисунок 3.22 – Представление конструкции Repeat-Until по методу Дамке
2)Конструкция цикла с параметром изображается так, как представляет рисунок 3.23.
3)Конструкция Case изображается так, как иллюстрирует рисунок 3.24.
Основным принципом при разработке структурированных схем алгоритмов по методу Дамке является принцип декомпозиции. Он означает, что любой элемент, представляющий собой задачу, можно разделить на несколько элементов, образующих необходимые подзадачи.
Элементы в самой левой части схемы представляют укрупнённую структуру алгоритма. Затем элементы расширяются вправо по мере разделения каждого элемента на подзадачи.
Чтобы исследовать любую подзадачу, достаточно анализировать только те элементы и управляющие структуры, которые находятся справа от данной подзадачи.
70
For
I=1 to N
|
Тело цикла |
Рисунок 3.23 – Представление конструкции цикла с параметром |
|
|
по методу Дамке |
|
Значение 1 |
|
Подзадача 1 |
|
Значение 2 |
Case |
Подзадача 2 |
условие |
|
|
Значение 3 |
|
Подзадача 3 |
|
Значение 4 |
|
Подзадача 4 |
Рисунок 3.24 − Представление конструкции Case |
|
|
по методу Дамке |
71