Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по информатике.doc
Скачиваний:
27
Добавлен:
07.11.2018
Размер:
754.69 Кб
Скачать

4.4. Способы описания алгоритма

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

  • Словесно-формульный, словесно-пошаговый.

  • Структурный или блок-схемный.

  • С помощью граф-схем.

  • С помощью сетей Петри.

  • Алгоритмический язык.

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

В зависимости от цели, начальных условий задачи, путей ее решения, определения действий исполнителя алгоритмы подразделяются следующим образом:

  • Механические алгоритмы (детерминированные, жесткие).

  • Гибкие алгоритмы (стохастические, вероятностные и эвристические).

  • Вычислительные.

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

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

Например, необходимо найти значение выражения y = 2a - (x + 6). Словесно-формульный алгоритм решения данной задачи выглядит так.

  1. Ввести значения а и х.

  2. Сложить х и 6.

  3. Умножить а на 2.

  4. Вычесть из 2а сумму (х + 6).

  5. Вывести у как результат вычисления выражения.

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

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

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

Оформление программ должно соответствовать определенным требованиям. В настоящее время действует единая система программной документации (ЕСПД), которая устанавливает правила разработки, оформления программ и программной документации. В ЕСПД определены правила оформления блок-схем алгоритмов (ГОСТ 10.002-80 ЕСПД, ГОСТ 10.003-80 ЕСПД).

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

Таблица 4.1.

Наименование

Обозначение

Функции

Процесс

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

Ввод-вывод (данные)

Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов (вывод).

Решение

Выбор направления выполнения алгоритма в зависимости от некоторых переменных условий.

Предопределенный (типовой) процесс

Использование ранее созданных и отдельно написанных программ (подпрограмм).

Документ

Вывод данных на бумажный носитель.

Магнитный диск

Ввод-вывод данных, носителем которых служит магнитный диск.

Пуск-останов

Начало, конец, прерывание процесса обработки данных.

Соединитель (узел)

Указание связи между прерванными линиями, соединяющими блоки.

Стрелка в конце линии, соединяющей блоки и указывающей последовательность связей между блоками, может не ставиться, если линия направлена слева направо или сверху вниз. В блок может входить несколько линий (т.е. блок может являться преемником любого числа блоков), из блока может выходить только одна линия. Если на схеме имеет место слияние линий, то место пересечения выделяется точкой. В случае, если одна линия подходит к другой и слияние их явно выражено, точку можно не ставить. Схему алгоритма следует выполнять как единое целое. Однако в случае необходимости допускается обрывать линии, соединяющие блоки. Если при обрыве линии продолжение схемы находится на этом же листе, то на одном и другом конце линии изображается специальный символ соединитель. Внутри парных окружностей указывается один и тот же идентификатор. В качестве идентификатора используется порядковый номер блока, к которому направлена соединительная линия. Блок-схема должна содержать все разветвления, циклы и обращения к подпрограммам, содержащиеся в программе.

Запись алгоритма на алгоритмическом языке в общем случае представляет собой систему обозначений и правил для единообразной и точной записи алгоритмов и исполнения их. Обратите внимание, что между понятиями «алгоритмический язык» и «язык программирования» есть различие. Прежде всего под исполнителем в алгоритмическом языке подразумевается не только компьютер, но и устройство для работы «в обстановке». Программа, записанная на алгоритмическом языке, не обязательно предназначена для компьютера. Практическая реализация алгоритмического языка – отдельная задача в каждом конкретном случае.

Как любой язык, алгоритмический язык имеет свой словарь. Основу этого словаря составляют слова, употребляемые для записи команд, входящих в систему команд исполнителя того или иного алгоритма. Такие команды называются простыми командами. В алгоритмическом языке используют слова, смысл и способ употребления которых задан раз и навсегда. Эти слова называют служебными. Использование служебных слов делает запись алгоритма наглядной, а форму представления различных алгоритмов единообразной. Команды алгоритма записываются последовательно. Последовательность записи алгоритма:

АЛГ <Название алгоритма>

НАЧ

<Серия команд алгоритма>

КОН

При построении новых алгоритмов могут использоваться алгоритмы, составленные ранее. Алгоритмы, целиком используемые в составе других алгоритмов, называются вспомогательными алгоритмами. Вспомогательным может оказаться любой алгоритм из числа ранее составленных. Не исключается также, что вспомогательным может оказаться алгоритм, сам содержащий ссылку на вспомогательные алгоритмы. Часто при составлении алгоритмов возникает необходимость использования в качестве вспомогательного одного и того же алгоритма, который сложен и громоздок. Поэтому на практике используют встроенные (стандартные) вспомогательные алгоритмы – алгоритмы, которые постоянно имеются в распоряжении исполнителя.

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

Для описания разветвляющихся алгоритмов в алгоритмическом языке используют специальную составную команду – команду ветвления. Она имеет полную и сокращенную форму:

ЕСЛИ <Условие>

ТО <Серия1>

ВСЕ

ЕСЛИ <Условие>

ТО <Серия1>

ИНАЧЕ <Серия2>

ВСЕ