Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 4 Алгоритмизация.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
753 Кб
Скачать
☆

Технология разработки алгоритмов

Какими качествами должен обладать хороший алгоритм?

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

Но не менее важно, какой ценой это достигается. Речь идет о разумности затрат на его создание.

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

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

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

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

а) структуры следования или последовательности;

б) структуры ветвления;

в) структуры цикла .

Прямоугольник 1 Ромб 6

Прямая со стрелкой 2 Прямая со стрелкой 7 Прямая со стрелкой 8

Прямоугольник 3 Параллелограмм 5 Прямая со стрелкой 9 Прямая со стрелкой 10

Прямая со стрелкой 4

Прямоугольник 11 Прямоугольник 12

Прямая соединительная линия 15 Прямая со стрелкой 16

Шестиугольник 17 Прямая со стрелкой 19 Прямая со стрелкой 30

Прямая соединительная линия 25 Прямая со стрелкой 26

Прямая со стрелкой 21

Прямоугольник 22

Прямоугольник с двумя вырезанными соседними углами 27 Прямая соединительная линия 29

Прямая соединительная линия 24

Рис. 2. Базисные управляющие структуры

Базисный набор управляющих структур является функционально полным, то есть с его помощью можно создать любой сколь угодно сложный алгоритм. Однако с целью создания более компактных и наглядных алгоритмов дополнительно используются следующие управляющие структуры:

а) структура сокращенного ветвления;

б) структура выбора; в) структура цикла с предусловием;

г) структура цикла с постусловием (Рис. 3, соответственно а, б, в, г).

Group 2 Freeform 18

Рис. 3. Дополнительные управляющие структуры

Любой алгоритм может быть построен посредством композиции базисных и дополнительных структур:

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

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

В области автоматизированной обработки данных такой подход называют нисходящим проектированием или проектированием «сверху вниз».

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

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

Структуры алгоритмов Алгоритмы линейной структуры Ветвления

Схема алгоритма приведена на Рис. 4. Алгоритм содержит сложное ветвление, являющееся композицией двух простых ветвлений.

Рис. 4. Алгоритм решения квадратного уравнения

К операндам вещественного типа не следует применять операцию отношения «=» (равно), условие может не выполняться из-за неточного представления вещественных чисел в памяти ЭВМ и неизбежных ошибок округления при вычислениях. В алгоритме отношение D = 0 заменено отношением |D| < , где  – допустимая погрешность округления. □

Циклы

Вычислительные процессы с многократным повторением однотипных вычислений/действий для различных значений входящих величин/данных называются циклическими, повторяемые участки вычислений – циклами, изменяющиеся в цикле величины – переменными цикла. Для организации циклов в алгоритмах необходимо предусмотреть (Рис. 5.):

- подготовку цикла – задание начальных значений переменным цикла перед первым его выполнением;

- тело цикла – вычислении/действия, повторяемые в цикле для различных значений переменных цикла;

- модификацию/изменение значений переменных цикла перед каждым новым его повторением;

- управление циклом – проверку условия продолжения/окончания цикла и переход на повторение цикла или его окончание.

Рис. 5. Общие схемы циклического алгоритма

Рис. 6. Общие схемы алгоритма табулирования функции

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