Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 4 Техн и средства программирования.doc
Скачиваний:
7
Добавлен:
21.11.2018
Размер:
576.51 Кб
Скачать

Алгоритм, основные свойства и способы представления. Проектирование алгоритмов

    1. Понятие алгоритма

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

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

Алгоритм обладает следующими свойствами (они следуют из определения):

определенность (детерминированность) – каждая команда (или предписание) понятна исполнителю (человеку или компьютеру) и исключает неоднозначность исполнения;

результативность – реализация вычислительного процесса, предусмотренного алгоритмом, должна через определенное число шагов привести к результату или сообщению о невозможности его получения;

массовость – если алгоритм разработан для решения определенной задачи, он должен быть применим для решения задач этого типа при всех допустимых значениях исходных данных;

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

Различают следующие простейшие виды алгоритмов:

линейный, когда предписания алгоритма выполняются в той последовательности, в которой они представлены в алгоритме;

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

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

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

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

– словесный;

– структурно-стилизованный;

– язык графических символов;

– операторный язык.

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

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

Структурно-стилизованный способ – это формализованное представление предписаний, задаваемых путем использования ограниченного набора типовых синтаксических конструкций. Данный способ представления алгоритма требует подготовки и специальных несложных знаний. Примером его может служить нотация Бэкуса – Наура, которая часто используется для описания структуры формализованных языков, например, языка программирования Visual Basic for Application.

Пример: Синтаксис процедуры MsgBox, предназначенной для вывода на экран диалогового окна с текстовым сообщением:

MsgBox(prompt[, buttons] [, title] [, helpfile, context])

где – MsgBox – обязательное к написанию наименование процедуры;

promptобязательный параметр процедуры, в качестве которого должен быть указано само текстовое сообщение;

[, buttons] [, title] [, helpfile, context] – необязательные дополнительные параметры процедуры, определяющие соответственно кнопки, которые должны отражаться в диалоговом окне, заголовок диалогового окна, справочные идентификаторы.

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

Язык графических символов предполагает соотнесение каждому типу действий соответствующей геометрической фигуры, представленной в виде блочного символа. Действия (блоки) соединяются линиями потока. Совокупность таких связанных блоков называется блок-схемой. Составление блок-схем регламентируется ГОСТ 19.003-80 и ГОСТ 19.002-80. Основными блоками, используемыми в блок-схемах, являются следующие:

Данная нотация является широко распространенной в советские времена. В настоящее время широкую популярность приобрели западные нотации: методология функционального моделирования SADT, семейство стандартов IDEF, ARIS eEPC (extended Event-driven Process chain), UML (Unified Modeling Language) и др.

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