Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВМИП.doc
Скачиваний:
17
Добавлен:
11.07.2019
Размер:
359.94 Кб
Скачать

Методы разработки алгоритмов

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

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

Рассмотрим два способа конструирования алгоритмов.

Пошаговое уточнение алгоритма

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

На первом шаге процесс решения задачи делится на крупные действия. Каждое действие записывается в виде четкой инструкции, которая задает, «ЧТО ДЕЛАТЬ» (но не «КАК ДЕЛАТЬ»). Затем разрабатывается укрупненная схема алгоритма. Она показывает общий порядок решения задачи и имеет вид простой последовательности функциональных блоков и других конструкций.

На втором и последующих шагах выполняется детализация алгоритма. Сложные действия уточняются и детализируются. Для каждого из них определяются свои последовательности действий и базовых конструкций, показывающих «КАК НУЖНО» выполнять сложные действия. Ими заменяют функциональные блоки укрупненной схемы алгоритма.

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

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

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

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

Основной алгоритм – это план действий, который необходимо выполнять для достижения назначенной цели. Он является укрупненным алгоритмом решения задачи и может включать ссылки на используемые вспомогательные алгоритмы (рис.3). Эти ссылки обозначаются с помощью символов «Предопределенный процесс». В середине символов помещают команды-ссылки на вспомогательные алгоритмы. В каждой такой команде задаются имя вспомогательного алгоритма и фактические параметры. Эти параметры имеют конкретные значения и физический смысл. При решении подзадачи они передаются во вспомогательный алгоритм, где используются вместо формальных параметров в качестве исходных данных и конечных результатов. Тем самым обеспечивается связь между основным и вспомогательным алгоритмами.

Рис.3. Основной алгоритм, использующий готовые вспомогательные алгоритмы

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

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

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

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

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

Таким образом, методика алгоритмизации и программирования прикладных задач включает:

  • математическую постановку задачи;

  • выбор методов решения поставленной задачи;

  • разработку сценария работы с ЭВМ;

  • выбор типов и структур используемых данных;

  • разработку алгоритма методом пошаговой детализации;

  • разработку (кодирование) программы.

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