Разработка алгоритмов методов методом последовательной детализации

1. Разработка алгоритмов методом последовательной детализации.

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

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

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

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

Последовательность составления алгоритмов - сверху вниз

ОСНОВНОЙ АЛГОРИТМ

ВСПОМ. АЛГОРИТМ 1 ВСПОМ. АЛГ.2 1-Й УРОВЕНЬ

ВСПОМ. АЛГ.1.1 ВСПОМ. АЛГ.1.2 ВСПОМ. АЛГ. 2.1 2-Й УРОВЕНЬ

И Т. Д.

Методы последовательной детализации применяется при любом конструировании сложных объектов. Это естественная логическая последовательность мышления конструктора: постепенное углубление в детали. В нашем случае речь идет тоже о конструировании, но только не технических устройств, а алгоритмов. Достаточно сложный алгоритм другим способом практически построить невозможно. Такая методика позволяет организовать работу коллектива программистов над сложным проектом. Например, руководитель группы строит основной алгоритм, а разработку вспомогательных алгоритмов и составление подпрограмм поручает своим сотрудникам.

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

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

Согласно концепции структурного программирования, вспомогательный алгоритм должен:

· Иметь заголовок ( имя ), с помощью которого его можно вызвать (обратится к нему чтобы начать его выполнение) из двух вспомогательных или основного алгоритмов ( это нужно для “состыковки” алгоритмов);

· Возвращать управление тому алгоритму, из которого он был вызван, т. е. После выполнения вспомогательного алгоритма должно продолжатся, выполнение вызвавшего его алгоритма с той точки, в которой он был прерван;

· иметь возможность вызвать другие алгоритмы;

· быть относительно небольшим.

Желательно также, чтобы вспомогательный алгоритм:

· имел один вход ( т. е. Его выполнение всегда начиналось в одной точке, независимо от того, откуда и при каких условиях он был выхван0 и один выход. Это гарантирует его замкнутость и упрощает работу с состыкованными алгоритмами;

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

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

Билет 18

Вопрос 1