Алгоритмы

advertisement
1. Алгоритмы
Если надо написать программу на каком-нибудь языке программирования, то
сначала нужно составить алгоритм решения задачи.
Алгоритм – это точное и простое описание последовательности действий для
решения данной задачи. Алгоритм содержит несколько шагов, которые должны
выполняться в определенной последовательности. Каждый шаг алгоритма может
состоять из одной или нескольких простых операций.
Свойства алгоритма:
• дискретность - алгоритм состоит из отдельных пунктов или шагов;
• определённость - каждый шаг алгоритма должен быть строго
сформулирован (иметь точный смысл);
• связанность - на каждом следующем шаге используются результаты
предыдущего;
• конечность – алгоритм должен завершаться после конечного числа шагов;
• результативность – алгоритм должен приводить к получению конечных
результатов за конечное число шагов;
• массовость – пригодность для решения широкого класса задач;
• эффективность – применение а. должно давать какой бы-то положительный
результат за конечное время;
• понятность для исполнителя – исполнитель алгоритма должен знать, как его
выполнять.
Важным свойством алгоритма является то, что результат его выполнения не
должен зависеть от исполнителя. Поэтому выполнять алгоритм может ЭВМ.
Способы представления алгоритмов:
• словесно-формульный;
• алгоритмические языки;
• графический способ.
Для составления алгоритмов чаще всего используют графический способ – блоксхемы. На блок-схеме каждый шаг алгоритма обозначается специальной геометрической
фигурой, а внутри нее записываются простые операции. Направление выполнения
алгоритма обозначается стрелками.
Существует несколько типов алгоритмов.
1.1.
Линейный алгоритм
Алгоритм называется линейным, если он содержит N шагов и все шаги
выполняются последовательно друг за другом от начала до конца. Блок-схема алгоритма
дана на рис. 1.1.
1.2.
Разветвляющийся алгоритм
Алгоритм называется разветвляющимся, если последовательность выполнения
шагов алгоритма изменяется в зависимости от некоторых условий.
Условие – это логическое выражение, которое может принимать два значения: «да»
– если условие верно, и «нет» – если условие неверно. Любое условие состоит из трех
частей: левая часть, знак сравнения, правая часть.
Начало
Шаг 1
Шаг 2
Шаг N
Конец
Рис. 1.1.
Примеры условий: A > 0, X < A + B, Z = 5.
Общий вид разветвляющей части алгоритма представлен на рис.1.2.
Условие
Ветвь «да»
Ветвь «нет»
Рис. 1.2.
Блок проверки условия обозначается на блок-схеме ромбом (один вход, два
выхода). Если условие верно, то для решения задачи используется ветвь «да», в
противном случае – ветвь «нет».
Для примера на рис. 1.3 приведена блок-схема алгоритма «Как перейти на другую
сторону улицы».
Начало
Подойти к
перекрестку
Посмотреть на
светофор
нет
Свет
зеленый ?
да
Перейти на
другую сторону
улицы
Конец
Рис. 1.3.
1.3.
Циклический алгоритм
Алгоритм называется циклическим, если определенная последовательность шагов
выполняется несколько раз в зависимости от заданной величины. Эта величина
называется параметром цикла.
Рассмотренный нами пример алгоритма для перехода на другую сторону улицы
содержит циклическую часть. Эта часть состоит из двух шагов: 1) посмотреть на
светофор; 2) проверить: зеленый свет? Параметром в этом циклическом алгоритме
является цвет светофора. В этом алгоритме условие проверяется в конце цикла, поэтому
циклическая часть выполняется по крайней мере один раз. Если свет все время будет
красный, то цикл не завершится (будет бесконечным).
В любом циклическом алгоритме, для того чтобы он мог закончиться, должен быть
параметр. Цикл заканчивается, когда параметр принимает определенное значение.
Проверка значения параметра может выполняться и в начале цикла. Общий вид
блок-схемы циклического алгоритма с проверкой условия для параметра в начале цикла
приведен на рис. 1.4. Для этого алгоритма циклическая часть может не выполниться ни
разу, если условие сразу имеет значение «нет».
Начало цикла
Условие для
перехода
да
Шаг 1
Шаг N
Конец цикла
Рис. 1.4.
нет
Download