Разработка алгоритмов методов методом последовательной детализации.
1. Разработка алгоритмов методом последовательной детализации.
Алгоритм—это понятное и точное предписание исполнителю выполнить конечную последовательность команд, приводящую от исходных данных к искомому результату.
Всякий алгоритм составляет из простых команд, команд-обращений к вспомогательным алгоритмам и структурных команд.
Вспомогательным алгоритмом называется алгоритм некоторых подзадач по отношению к исходной (основной) задаче. Алгоритм решения основной задачи называется основным алгоритмом. Основные алгоритм содержит команды обращения к вспомогательным алгоритмам. Если составление вспомогательного алгоритма оказывается достаточно сложным, тогда в нем могут быть выделены подзадачи, для которых строятся вспомогательные алгоритмы второго уровня и т.д.
Последовательная детализация –это построение алгоритма “сверху вниз”. Сначала строится основной алгоритм, и в нем записываются обращения к вспомогательным алгоритмам первого уровня. Затем составляются эти вспомогательные алгоритмы, в которых могут быть записаны обращения к вспомогательным алгоритмам второго уровня, и.д. Вспомогательные алгоритмы последнего уровня не содержат обращений к другим вспомогательным алгоритмам.
Последовательность составления алгоритмов - сверху вниз
ОСНОВНОЙ АЛГОРИТМ
ВСПОМ. АЛГОРИТМ 1 ВСПОМ. АЛГ.2 1-Й УРОВЕНЬ
ВСПОМ. АЛГ.1.1 ВСПОМ. АЛГ.1.2 ВСПОМ. АЛГ. 2.1 2-Й УРОВЕНЬ
И Т. Д.
Методы последовательной детализации применяется при любом конструировании сложных объектов. Это естественная логическая последовательность мышления конструктора: постепенное углубление в детали. В нашем случае речь идет тоже о конструировании, но только не технических устройств, а алгоритмов. Достаточно сложный алгоритм другим способом практически построить невозможно. Такая методика позволяет организовать работу коллектива программистов над сложным проектом. Например, руководитель группы строит основной алгоритм, а разработку вспомогательных алгоритмов и составление подпрограмм поручает своим сотрудникам.
Вспомогательные алгоритмы, следовательно, создаются, когда возникает необходимость разбиения задачи на ряд более простых задач или когда есть необходимость многократного использования одного и того же набора действий в одном или разных алгоритмах.
Метод последовательной детализации путем разбиения задачи на подзадачи лежит в основе технологии структурного программирования и широко применяется при использовании структурных языков программирования, таких, как Паскаль или структурные версии Бейсика.
Согласно концепции структурного программирования, вспомогательный алгоритм должен:
· Иметь заголовок ( имя ), с помощью которого его можно вызвать (обратится к нему чтобы начать его выполнение) из двух вспомогательных или основного алгоритмов ( это нужно для “состыковки” алгоритмов);
· Возвращать управление тому алгоритму, из которого он был вызван, т. е. После выполнения вспомогательного алгоритма должно продолжатся, выполнение вызвавшего его алгоритма с той точки, в которой он был прерван;
· иметь возможность вызвать другие алгоритмы;
· быть относительно небольшим.
Желательно также, чтобы вспомогательный алгоритм:
· имел один вход ( т. е. Его выполнение всегда начиналось в одной точке, независимо от того, откуда и при каких условиях он был выхван0 и один выход. Это гарантирует его замкнутость и упрощает работу с состыкованными алгоритмами;
· обладает единственной функцией (например, вычислить недельный заработок сотрудника, напечатать отчет о состоянии оборудования), что служит ключом к хорошо спроектированному итоговому алгоритму? Таким оброзом, при проектировании основного алгоритма нужно сначала опредилить необходимый набор функции, а затем разработать вспомогательный алгоритмы.
При составлении и использовании вспомогательных алгоритмов важно знать, что является для них исходными данными (аргументами) и результатами их выполнения. Иногда команды вызова вспомогательного алгоритма содержат указания на имена переменных, значения которых являются для него исходными данными, и имена переменных, значения которых будут являться результатами его выполнения и использоваться в дальнейшем вне его. Иногда результатом выполнения вспомогательного алгоритма может стать значение некоторой сигнальной переменной (флажка), сообщающее, например, об истинности какого-то условия или наличии какого-либо факта, скажем корней уравнения (т. е. Значение флажка может быть равно 1или0). При записи программы для компьютера на языках программирования высокого уровня вспомогательные алгоритмы реализуются в виде программ. Правила обращения к ним и возврата в основную программу определяются конкретным языкам программирования. Программы общего назначения могут объединиться в библиотеки программ (процедур или функций). В языках программирования высокого уровня ветвление реализуется с помощью условного оператора.
Билет 18
Вопрос 1