Способы описания алгоритмов
Для строгого задания структур данных и алгоритмов их обработки требуется иметь такую систему формальных обозначений и правил, чтобы смысл всякого используемого предписания трактовался точно и однозначно. Соответствующие системы правил называют языками описаний.
Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных и задается в произвольном изложении на естественном языке. С точки зрения написания трудностей для авторов алгоритмов не представляет. Однако для «исполнителей» такие описания алгоритмов часто неприемлемы. Они строго не формализуемы, страдают многословностью, допускают неоднозначность толкования отдельных предписаний. Поэтому такой способ описания алгоритмов не имеет широкого распространения.
Пример. Алгоритм нахождения наибольшего общего делителя двух натуральных чисел:
задать два числа;
если числа равны, то взять любое из них в качестве ответа, в противном случае – продолжить выполнение алгоритма;
определить большее из чисел;
заменить большее число разностью большего и меньшего чисел;
повторить алгоритм с шага 2.
Структурно-стилизованный способ записи алгоритмов основан на формализованном представлении предписаний, задаваемых путем использования ограниченного набора типовых синтаксических конструкций, представленных в понятном для разработчика алгоритма виде. Такие средства описания алгоритмов часто называются псевдокодами.
Пример. Определить площадь треугольника по трем известным длинам сторон:
алг Площадь_треугольника (вещ А, В, С)
арг (А,В,С)
рез S
нач
Р=(А+В+С)
S= КОРЕНЬ(Р*(Р-А)*(Р-В)*(Р-С))
кон
В примере служебные (зарезервированные) слова написаны с подчеркиванием. В заголовке объявлены три вещественных параметра А, В, С, через которые передаются длины сторон треугольника. В теле программы используется функция нахождения квадратного корня КОРЕНЬ( ).
Графический способ записи алгоритмов. Для изображения структур алгоритмов используется совокупность блочных символов (блоков), соединяемых линиями передачи управления. Такое изображение называется методом блок-схем. Как и псевдокод, метод блок-схем можно применить на любом уровне абстракции. Поскольку алгоритмы воспринимаются в первую очередь визуально, их следует изображать таким образом, чтобы их структура выглядела четко и выразительно. Краткость, выразительность и планомерность при проектировании позволяют создавать схемы алгоритмов высокого качества.
В схеме алгоритма каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т. п.) соответствует геометрическая фигура, представленная в виде блочного символа (блока), называемого символом действия. Символы действия соединяются линиями переходов, определяющими очередность выполнения действий. Форма символов установлена ГОСТ 19.701-90 (ИСО 5807-85), а правила составления схем алгоритмов – ГОСТ 19.701-90 (ИСО 5807-85). Наиболее часто употребляемые символы действий приведены ниже в таблице.
Название символа | Обозначение | Пояснение |
Процесс |
| Вычислительное действие или последовательность вычислений |
Решение |
| Проверка условий |
Ввод-вывод данных |
| Ввод-вывод данных на стандартные устройства ввода-вывода |
Предопределенный процесс |
| Вычисления по подпрограмме или стандартной программе |
Модификация |
| Начало цикла |
Документ |
| Вывод результатов на печать |
Линия потока (перехода) |
| Соединение блоков |
Соединитель |
| Разрыв линий потока |
Пуск, останов |
| Пуск, останов программы (вход и выход в подпрограммах) |
Магнитная лента |
| Накопитель информации на магнитной ленте |
Магнитный диск |
| Накопитель информации на магнитном диске |
Ручной ввод |
| Ручной ввод входных данных |
Оперативная память |
| Оперативная память компьютера |
Дисплей |
| Вывод информации на дисплей (монитор) |
Блоки ввода-вывода используются для обозначения операций ввода и вывода информации. Отдельным логическим устройствам или отдельным функциям обмена соответствуют определенные блочные символы. В каждом из них указываются тип устройства или файла данных, тип информации, участвующий в обмене, а также вид операции обмена.
Блок обработки (процесс) применяется для обозначения одного или последовательности действий, изменяющих значение, форму представления или размещения данных. Для улучшения наглядности схемы несколько отдельных блоков обработки можно объединить в один блок. Представление отдельных операций достаточно свободно. Например, для обозначения вычислений можно использовать математические выражения, для пересылок данных – стрелки, для других действий – пояснения на естественном языке. В зависимости от уровня детализации схемы пояснения на естественном языке могут быть более или менее подробными. Метод блок-схем, так же как и алгоритмический язык (псевдокод), независим от специфики языков программирования, поэтому в описаниях операторов не следует использовать резервированные слова и символы языков программирования, а также применять имена данных, образованные в соответствии с синтаксическими правилами этих языков.
Линии переходов используются для обозначения порядка выполнения действий. Для улучшения наглядности следует придерживаться стандартных правил изображения линий передач управления – сверху вниз и слева направо. Если необходимо показать передачу управления снизу вверх или справа налево, то направление следует отметить стрелкой.
Символ ограничения (прерывания) предназначен для обозначения входов в схему алгоритма и выходов из нее. Каждая схема должна начинаться или заканчиваться символом ограничения. В этих символах разрешается давать пояснения к использованию. Если символ указывает на прерывание, то он должен идентифицировать соответствующую исключительную ситуацию и блок схемы, осуществляющий управление в этой ситуации.
Блок решения используется для обозначения переходов управления по условию. В каждом блоке решения должны быть указаны вопрос, решение, условие или сравнение, которые он определяет. Стрелки, выходящие из блока решения, должны быть помечены соответствующими ответами (например, ДА, НЕТ), так чтобы были учтены все возможные ответы. Следует отметить, что ответы, которые не могут появиться при анализе правильной информации, иногда появляются при рассмотрении некорректных данных. Такие ситуации всегда следует учитывать.
Блок вызова модуля используется для указания обращения к вспомогательным алгоритмам, выделенным автономно, в виде некоторого модуля; для обращений к библиотечным подпрограммам; для обозначения части алгоритма, не зависящей от основной схемы управления; для обозначения определенной части алгоритма, которая будет кодироваться вместе со всем алгоритмом, но в документации представлена отдельной схемой. Если такая часть алгоритма представляет собой итерационный процесс, то в соответствующий ей блок вызова необходимо включить описания условий окончания цикла. По мнению некоторых специалистов, использование более одной схемы для одного алгоритма затрудняет его понимание. Однако практика показывает, что удобнее всего применять схемы алгоритмов, разбитые в соответствии с уровнями абстракции.
Блок модификаций используется для организации циклических конструкций. Внутри блока записывается параметр цикла, для которого указываются его начальное значение, граничное условие и правило изменения значения параметра для каждого повторения. Блок размещается в начале циклической конструкции, для управления которой он используется, даже в том случае, если изменение параметра и проверка условий окончания цикла при реализации алгоритма производится не в начале, а в конце цикла.
Соединители используются в том случае, когда схема алгоритма разделяется на автономные части, особенно если она не умещается на одном листе, или когда необходимо избежать излишних пересечений линий переходов. Применение соединителей не должно нарушать структурности при изображении схем.
При составлении схем алгоритмов соблюдают следующие правила:
каждый блок алгоритма имеет единственную точку входа, кроме блока пуска, который не имеет входа;
каждый безусловный блок имеет единственную точку выхода, кроме блока останова, который ее не имеет;
каждый условный блок имеет два или три выхода, которые можно пометить условиями: ДА, НЕТ или >0, =0 и <0;
линии, идущие на вход блока, могут соединяться, но линия, выходящая из блока, не может разделяться;
стандартное направление линии передачи управления – сверху вниз и слева направо. Если необходимо показать передачу управления снизу вверх или справа налево, то направление следует отметить стрелкой.
Метод блок-схем является универсальным и не зависит от специфики языков программирования. Краткость и выразительность графического метода позволяет создавать схемы алгоритмов высокого качества.
- А.В. Данеев, о.Г. Деменченок информатика. Базовый курс
- 230100.62 «Информатика и вычислительная техника»
- Содержание
- Введение
- Основные понятия информатики
- Информация и ее свойства
- Меры измерения информации
- Системы счисления
- Перевод числа из десятичной системы в двоичную
- Перевод числа из двоичной системы в десятичную
- Выполнение арифметических операций в двоичной системе
- Показатели качества информации
- Вопросы для контроля
- Алгоритмизация
- Понятие алгоритма
- Этапы решения задач
- 1. Постановка задачи
- 2. Разработка алгоритма
- 3. Реализация алгоритма
- 4. Выполнение алгоритма и получение результатов
- 5. Анализ полученных результатов
- Способы описания алгоритмов
- Языки программирования
- Виды алгоритмов
- Циклический алгоритм
- Вопросы для контроля
- Аппаратное обеспечение
- Классификация эвм
- Классификация эвм
- По элементной базе
- По назначению
- Состав персонального компьютера
- Компьютера
- (Simm-модуль)
- (Dimm-модуль)
- (Rimm-модуль)
- Габаритные размеры (форм-фактор)
- Физические характеристики
- Стандарты записи дисков dvd
- Формат оптических носителей Blu-Ray
- Классификация по способу формирования изображения
- Размеры экранов
- Воздействие на здоровье
- Оптическое разрешение
- Глубина цвета
- Динамический диапазон (диапазон оптических плотностей)
- Принтер
- Работа с клавиатурой
- A) алфавитно-цифровых клавиш; b) функциональных клавиш; c) клавиш перемещения курсора; d) цифровых клавиш
- Вопросы для контроля
- Программное обеспечение
- Структура программного обеспечения
- Системное программное обеспечение
- Прикладное программное обеспечение
- Средства программирования
- Файловая система
- Сравнение файловых систем ntfs с fat и fat32
- Вопросы для контроля
- Текстовые процессоры
- Средства обработки текстовой информации
- Экран текстового процессора microsoft word
- Операции с документами
- Набор и редактирование текста
- Операции с фрагментами текста
- Форматирование текста
- Вопросы для контроля
- Графические редакторы
- Векторная графика
- Точечная (растровая) графика
- Основные параметры изображения
- Типы изображений
- Черно-белые (штриховые) изображения
- Полутоновые изображения
- Индексированный цвет
- Полноцветные изображения
- Цветовые модели
- Форматы файлов
- Получение изображений
- Вопросы для контроля
- Электронные таблицы
- Структура электронной таблицы
- Ввод данных
- Редактирование и форматирование данных
- Технология интервального прогнозирования
- Вопросы для контроля
- Защита информации понятие информационной безопасности
- Потенциальные угрозы и каналы утечки информации
- Цели и задачи систем компьютерной безопасности
- Принципы построения систем защиты компьютерной информации
- Средства обеспечения безопасности информации
- Характеристика средств защиты информации
- Обеспечение защиты информации
- Основы криптографии
- Классификация криптосистем
- Стандарты симметричных криптосистем
- Гост 28147-89 - отечественный стандарт шифрования
- Асимметричные криптосистемы
- Отечественный стандарт цифровой подписи
- Аппаратно-программные комплексы
- Разграничение доступа
- Вопросы для контроля
- Автоматизация решения прикладных задач
- Начальные сведения о vba
- Использование макросов в vba
- Запись макроса
- Выполнение макроса
- Редактирование макроса
- Ограниченность макросов
- Основы программирования на языке vba
- Объектная модель vba
- Applicaion.Workbooks("Книга1").Worksheets("Лист1").Range("Al")
- Работа с объектами
- MsgBox "Ячейка содержит значение " & Range("Al").Value
- Объект.Метод
- Workbooks("Примеры").Open
- Вопросы для контроля
- Системы управления базами данных
- Основные понятия
- Архитектура базы данных. Физическая и логическая независимость
- Microsoft access как субд реляционного типа
- Вопросы для контроля
- Компьютерные сетевые технологии
- Понятие, назначение и история развития компьютерных сетей
- Каналы связи
- Аппаратное и программное обеспечение компьютерных сетей
- Классификация, архитектура и топология компьютерных сетей
- Характеристика процесса передачи данных
- Особенности организации лвс
- Требования, предъявляемые к компьютерным сетям
- Глобальная сеть internet
- Система адресации в Internet
- Способы организации передачи информации
- Вопросы для контроля
- Заключение
- Библиографический список