Какими качествами должен обладать хороший алгоритм?
Прежде всего, от алгоритма требуется, чтобы он правильно решал поставленную задачу.
Но не менее важно, какой ценой это достигается. Речь идет о разумности затрат на его создание.
С этой точки зрения алгоритм должен быть легким для понимания, простым для доказательства правильности и удобным для модификации.
В рамках такой идеологии и сформировался так называемый структурный подход к конструированию и оформлению алгоритмов, позволяющий уменьшить количество ошибок в алгоритмах, упрощающий их контроль и модификацию.
По своей сути структурный подход есть отказ от беспорядочного стиля в алгоритмизации и программировании (в частности, отказ от оператора go to) и определение ограниченного числа стандартных приемов построения легко читаемых алгоритмов и программ с ясно выраженной структурой.
Теоретическим фундаментом этого подхода является теорема о структурировании, из которой следует, что алгоритм решения любой практически вычислимой задачи может быть представлен с использованием трех элементарных базисных управляющих структур:
а) структуры следования или последовательности;
б) структуры ветвления;
в) структуры цикла .
Рис. 2. Базисные управляющие структуры
Базисный набор управляющих структур является функционально полным, то есть с его помощью можно создать любой сколь угодно сложный алгоритм. Однако с целью создания более компактных и наглядных алгоритмов дополнительно используются следующие управляющие структуры:
а) структура сокращенного ветвления;
б) структура выбора; в) структура цикла с предусловием;
г) структура цикла с постусловием (Рис. 3, соответственно а, б, в, г).
Рис. 3. Дополнительные управляющие структуры
Любой алгоритм может быть построен посредством композиции базисных и дополнительных структур:
- путем их последовательного соединения - образования последовательных конструкций;
- путем их вложения друг в друга - образования вложенных конструкций.
В области автоматизированной обработки данных такой подход называют нисходящим проектированием или проектированием «сверху вниз».
Разработка алгоритма по нисходящей схеме начинается с разбиения сложной исходной задачи на отдельные более простые подзадачи, решение которых может быть представлено в общей структуре алгоритма функционально независимыми блоками. Разработку логической структуры каждого такого блока и ее модификацию можно осуществлять независимо от остальных блоков.
При восходящей схеме алгоритм начинают разрабатывать с создания алгоритмов для подпрограмм.
ПРИМЕРЫ Структур алгоритмов
Дата: 2018-12-21, просмотров: 421.