- •Содержание
- •Часть 1. Основные понятия программирования §1.1. Этапы разработки программного обеспечения
- •§1.2. Основные сведения об алгоритмах Понятие алгоритма
- •Свойства алгоритма
- •Формы записи алгоритмов
- •Блок-схемы алгоритмов
- •§1.3. Языки программирования
- •§1.4. Паскаль и Object Pascal, Турбо-Паскаль и Delphi
- •Контрольные вопросы
- •Язык, оболочка и интегрированная среда разработки
- •Часть 2. Общие сведения о языке Паскаль §2.1. Алфавит и служебные слова
- •Описание общих конструкций языка
- •§2.2. Структура программы
- •§2.3. Разделы описаний Описание меток
- •Определение констант
- •Определение типов
- •Описание переменных
- •Контрольные вопросы
- •Часть 3. Простые типы данных Иерархия типов
- •§3.1. Целые типы
- •§3.2. Вещественные типы
- •§3.3. Логический тип
- •§3.4. Литерный тип
- •§3.5. Перечисляемый тип
- •§3.6. Диапазоны (интервальный тип)
- •Дополнительные типы в Delphi
- •Контрольные вопросы
- •Глава 4. Операторы языка Паскаль Выражения
- •§4.1. Оператор присваивания
- •§4.2. Ввод-вывод данных
- •§4.3. Составной оператор
- •§4.4. Пустой оператор
- •§4.5. Безусловный оператор перехода
- •§4.6. Условный оператор
- •§4.7. Оператор цикла с параметром for
- •§4.8. Оператор цикла с предусловием while
- •§4.9. Оператор цикла с постусловием repeat
- •§4.10. Оператор выбора case
- •Контрольные вопросы
- •Глава 5. Процедурное программирование §5.1. Функции
- •Параметры – значения
- •Параметры – переменные
- •Бестиповые параметры
- •§5.2. Процедуры
- •Правила использования подпрограмм
- •Рекурсия
- •Директивы
- •Процедурные типы
- •Пример использования подпрограмм
- •Контрольные вопросы
- •Глава 6. Структурированные типы данных
- •§6.1. Массивы
- •§6.2. Строки
- •§6.3. Записи
- •§6.4. Множества
- •Пример использования множеств
- •§6.5. Файлы
- •Установочные и завершающие операции
- •Операции ввода-вывода
- •Перемещения по файлу
- •Пример работы с файлом
- •Обработка ошибок ввода-вывода
- •Специальные операции
- •Пример объединения двух файлов
- •Текстовые файлы
- •Стандартные текстовые файлы
- •Файлы без типа
- •Контрольные вопросы
- •Глава 7. Динамические структуры данных §7.1. Динамические переменные
- •§7.2. Указатели
- •Работа с динамическими переменными
- •Пример двухсвязанного циклического списка
- •Указатели без типа
- •Контрольные вопросы
- •Глава 8. Низкоуровневые возможности Паскаля §8.1. Язык Ассемблер
- •§8.2. Доступ к аппаратуре Доступ к памяти
- •Доступ к портам ввода-вывода
- •Работа по прерываниям
- •Контрольные вопросы
- •Глава 9. Модули §9.1. Основные понятия
- •§9.2. Использование модулей
- •§9.3. Стандартные модули
- •§9.4. Модуль Crt
- •Работа с экраном в текстовом режиме
- •Работа с клавиатурой
- •Работа со звуком
- •§9.5. Модуль dos
- •§9.6. Графический режим монитора
- •Контрольные вопросы
- •Глава 10. Введение в объектно-ориентированное программирование §10.1. История развития программирования
- •Понятие объекта
- •§10.2. Свойства объектов
- •Раннее и позднее связывание
- •§10.3. Виртуальные методы
- •Конструкторы и деструкторы
- •§10.4. Динамические объекты
- •Скрытые поля и методы
- •Контрольные вопросы
- •Литература
Блок-схемы алгоритмов
В настоящее время в вычислительной технике для записи алгоритмов используется «ГОСТ 19.701-90. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения». Он входит в группу стандартов единой системы программной документации (ЕСПД) [6]. Этот стандарт введен взамен «ГОСТ 19.002-80. Схемы алгоритмов и программ. Правила выполнения. ГОСТ 19.003-80. Схемы алгоритмов и программ. Обозначения условные графические» [7,8]. Но стандарт от 1990 года не совсем полный, в частности, там отсутствуют размеры и отношения сторон блоков, изменены название и трактовка некоторых из них. Поэтому совместно с ГОСТ 19.701-90 рекомендуется использовать и ГОСТ 19.002-80, ГОСТ 19.003-80.
Далее приводятся выдержки из этих стандартов. В них графические блоки называются символами.
2.2. Схема программы.
2.2.1. Схемы программ отображают последовательность операций в программе.
2.2.2. Схема программы состоит из:
1) символов (т.е. блоков) процесса, указывающих фактические операции обработки данных (включая символы, определяющие путь, которого следует придерживаться с учетом логических условий);
2) линейных символов, указывающих поток управления;
3) специальных символов, используемых для облегчения написания и чтения схемы.
Из-за разночтений далее приводится описание основных символов (в стандарте их существенно больше) как по ГОСТ 19.701-90, так и по ГОСТ 19.003-80.
Таблица 1. Наименование и обозначение символов и отображаемые ими функции.
Обозначение и размеры |
Наименование и функция по ГОСТ 19.701-90 |
Наименование и функция по ГОСТ 19.003-80 |
|
Процесс. Символ отображает функцию обработки данных любого вида (выполнение операции или группы операций, приводящие к изменению значения, формы или размещения информации или к определению, по которому из нескольких направлений потока следует двигаться). |
Процесс. Выполнение операций или группы операций, в результате которых изменяется значение, форма представления или расположение данных. |
|
Линия. Символ отображает поток данных или управления. При необходимости или для повышения удобочитаемости могут быть добавлены стрелки-указатели. |
Линия потока. Указание последовательности перехода между символами. Направления линии потока сверху вниз и слева направо принимают за основные и, если линии потока не имеют изломов, стрелками можно не обозначать. В остальных случаях направление линии потока обозначать стрелкой обязательно. |
|
Решение. Символ отображает решение или функцию переключательного типа, имеющую один вход и ряд альтернативных выходов, один и только один из которых может быть активизирован после вычисления условий, определенных внутри этого символа. Соответствующие результаты вычисления могут быть записаны по соседству с линиями, отображающими эти пути. |
Решение. Выбор направления выполнения алгоритма или программы в зависимости от некоторых переменных условий. |
|
Подготовка. Символ отображает модификацию команды или группы команд с целью воздействия на некоторую последующую функцию (установка переключателя, модификация индексного регистра или инициализация программы). |
Модификация. Выполнение операций, меняющих команды или группу команд, изменяющих программу. |
|
Граница цикла. Символ, состоящий из двух частей, отображает начало и конец цикла. Обе части символа имеют один и тот же идентификатор. Условия для инициализации, приращения, завершения и т.д. помещаются внутри символа вначале или в конце в зависимости от расположения операции, проверяющей условие. |
(отсутствует) |
|
Данные. Символ отображает данные, носитель данных не определен. |
Ввод-вывод. Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод) |
|
Ручной ввод. Символ отображает данные, вводимые вручную во время обработки с устройств любого типа (клавиатура, переключатели, кнопки, световое перо, полоски со штриховым кодом). |
Ручной ввод. Ввод данных вручную при помощи неавтономных устройств с клавиатурой, набором переключателей, кнопок. |
|
Документ. Символ отображает данные, представленные на носителе в удобочитаемой форме (машинограмма, документ для оптического или магнитного считывания, микрофильм, рулон ленты с итоговыми данными, бланки ввода данных). |
Документ. Ввод-вывод данных, носителем которых служит бумага |
|
Предопределенный процесс. Символ отображает предопределенный процесс, состоящий из одной или нескольких операций или шагов программы, которые определены в другом месте (в программе, модуле). |
Предопределенный процесс. Использование ранее созданных и отдельно описанных алгоритмов или программ. |
|
Терминатор. Символ отображает выход во внешнюю среду и вход из внешней среды (начало или конец схемы программы, внешнее использование и источник или пункт назначения данных). |
Пуск – останов. Начало, конец, прерывание процесса обработки данных или выполнения программы. |
|
Соединитель. Символ отображает выход в часть схемы и вход из другой части этой схемы и используется для обрыва линии и продолжения ее в другом месте. Соответствующие символы-соединители должны содержать одно и то же уникальное обозначение. |
Соединитель. Указание связи между прерванными линиями потока, связывающими символами. |
|
Комментарий. Символ используют для добавления описательных комментариев или пояснительных надписей в целях объяснения или примечаний. |
Комментарий. Связь между элементом схемы и пояснением. |
Расстояния между параллельными линиями потока должно быть не менее 3 мм, между остальными символами схемы - не менее 5 мм.
Размер a должен выбираться из ряда 10, 15, 20 мм. Допускается увеличивать размер a на число, кратное 5. Размер b равен 1,5a.
Записи внутри символа или рядом с ним должны быть краткими. Сокращение слов и аббревиатуры, за исключением установленных государственными стандартами, должны быть расшифрованы в нижней части поля схемы или в документе, к которому эта схема относится.
Координаты зоны символа или порядковый номер проставляют в верхней части символа в разрыве его контура по аналогии с примером, изображенным на рис. 1.2.
Рис. 1.2. Пример фрагмента схемы с обозначением порядковых номеров символов на схеме.
При числе исходов не более трех признак условия решения (Да, Нет, =, <, >) проставляют над каждой выходящей линией потока или справа от линии потока. При числе исходов более трех условие исхода проставляется в разрыве линии потока. Адрес исхода проставляется в продолжении условия исхода и отделяется от него пробелом (см. рис. 1.3).
Рис. 1.3. Возможные варианты отображения блока решения.
Здесь Yi - условие i-го исхода, 011E1, 016A3, 005B5, 015E4 – адреса исходов.
Рис. 1.4. Пример использования символов границы цикла.
Рис. 1.5. Пример блок-схемы алгоритма вычисления кубического корня с блоком «решение».
Рис. 1.6. Пример блок-схемы алгоритма вычисления кубического корня с блоками границы цикла.
На рис. 1.4 приводится фрагмент алгоритма с введенным в ГОСТ 19.701-90 символом «Граница цикла», а на рис. 1.5 и рис. 1.6 изображены примеры блок-схем одного и того же алгоритма, но с использованием разных символов.
