Проектирование алгоритмов

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

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

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

1. Сохраняется концептуальная целостность программы: от сложного к простому.

2. Проектирование программы, кодирование, проверку и документирование можно делать параллельно.

3. В каждый момент времени (даже в начале разработки) имеется работающий вариант программы.

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

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

Вопросы для самопроверки

1. Что понимают под алгоритмом?

2. Каковы способы записи алгоритмов?

3. В чем заключаются основные свойства алгоритма?

4. Как определяется свойство массовости алгоритма?

5. Какие существуют основные алгоритмические структуры (опишите их)?

6. Какие имеются основные блоки, используемые в графическом представлении алгоритма?

7. Что такое псевдокод? Для каких целей он используется?

8. Как реализуется цикл с предусловием? Как реализуется цикл с постусловием?

9. Каковы основные принципы разработки алгоритмов?

10. Каковы основные этапы решения задач с помощью ЭВМ? Дайте характеристику каждому этапу.

Литература

1. Гагарина Л.Г., Колдаев В.Д. Алгоритмы и структура данных. - М.: Финансы и статистика, 2009. - 304 с.

2. Голицина О.Л. Основы алгоритмизации и программирования. - М.: Форум, 2008. - 430 с.

3. Семакин И.Г. Основы алгоритмизации и программирования. - М.: Академия, 2008. - 392 с.

4. http://www.lessons-tva.info/edu/e-inf1/e-inf1-4-2.html - понятие алгоритмов и алгоритмизация.

5. http://www.ido.rudn.ru/nfpk/inf/inf8.html - виды алгоритмов.

6. http://bagir.ucoz.ru/publ/2-1-0-13 -формализация блок-схем.

7. http://poruchik2.narod.ru/algor.html - характеристика алгоритма.

8. http://www.algoritmv.info - описание основных алгоритмов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: