logo
Kniga_Osnovy_informatiki_i_informatsionnyh_tehn

5.3. Основные способы описания алгоритмов

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

Словесное описание – это описание на естественном языке, когда исполнителем алгоритма является человек. Процесс описания алгоритма в этом случае предполагает получение ответов на ряд полезных вопросов, например, следующих:

 Понятна ли терминология исполнителю?

 Что дано в качестве исходных данных?

 Что нужно найти (что будет результатом выполнения)?

 Как определить решение?

 Каких данных не хватает?

 Являются ли какие-то имеющиеся данные бесполезными?

 Какие сделаны допущения?

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

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

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

Наиболее распространенным способом описания алгоритмов является описание алгоритмов в виде структурных блок-схем.

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

Структурная блок-схема – это блок-схема, которая может быть выражена как композиция из трех основных (базовых) управляющих структур: следования, ветвления (выбора, альтернативы) и повторения (цикла, итерации).

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

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

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

Графическое представление алгоритмов решения задач в различных областях с помощью специальных графических нотаций, диаграмм принято как при разработке информационных систем, при анализе и моделировании деятельности предприятий и организаций, так и в других случаях, когда необходимо формально описать деятельность предприятий (например, при сертификации предприятия). Примеры таких описаний – диаграммы потоков работ (Workflow Diagram), функционального моделирования (IDEF0 Diagram).

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

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

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

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

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