Что такое алгоритм?
Алгоритм - это некоторый набор инструкций, описание действий исполнителя для достижения поставленной цели/результата за определенное количество так называемых шагов (итераций).
Понятие алгоритма появилось еще в IX веке нашей эры и произошло от имени его создателя, известного математика Мухаммеда ибн Муса ал-Хорезми (Alhorithmi). Наука, занимающаяся формированием и созданием алгоритмов, называется алгоритмикой.
Классификация алгоритмов
Как правило, основой для классификации алгоритмов является порядок выполнения команд (шагов). На основании данного признака специалисты в данной области выделяют три основных типа алгоритмов:
- Линейные алгоритмы;
- Алгоритмы с разветвлением;
- Циклические алгоритмы.
Каждый из типов алгоритмов имеет свои особенности, которые будут рассмотрены далее.
Линейные алгоритмы
Линейным алгоритмом называется алгоритм, в котором последовательность записанных команд (действий) осуществляется строго согласно порядка их записи без каких-либо изменений. Как правило, такой алгоритм составляется из нескольких базовых структур следования.
Простым примером линейного алгоритма может выступить алгоритм утренних действия:
- Проснуться;
- Встать с постели;
- Обуть тапочки;
- Зайти в ванную;
- Почистить зубы;
- Вернуться в комнату;
- Застелить постель;
- Одеться;
- Приготовить завтрак;
- Позавтракать.
Т. е. действия выполнятся последовательно, одно за другим. Пример записи линейного алгоритма представлен на рисунке 1.
Рисунок 1. Линейный алгоритм. Автор24 — интернет-биржа студенческих работ
Для составления линейного алгоритма необходимо:
- Определить тип и присвоить имена переменных;
- Определить тип окончательного результата, присвоить имя этой переменной;
- Определить и обозначить связь между исходными переменными и переменной результата;
- При необходимости ввода промежуточных переменных, определить их тип, присвоить имена, обозначить связь с исходными переменными и переменной результата;
- Записать алгоритм, который отражает ввод данных, вычисление, вывод окончательного результата;
- Протестировать полученный алгоритм на предмет его корректного функционирования.
Исключительно линейные алгоритмы применяются достаточно редко, обычно при расчете простых формул и решения простейших задач.
Алгоритмы с разветвлением
Как отмечено ранее, ситуации, когда применение линейных алгоритмов целесообразно, встречаются достаточно редко. Они применяются, как правило, для элементарных вычислений, гораздо чаще возникают задачи, когда необходимо принятие решения в зависимости от сложившихся обстоятельств (условий). Для решения таких задач и используются алгоритмы с ветвлением.
Разветвляющиеся алгоритмы представляют собой алгоритм, последовательность выполнения команд которого находится в зависимости от соответствия заявленному условию. Команда «ветвления» относится к структурным командам. Выполнение такой команды всегда происходит в несколько шагов: проверка заданного условия и дальнейшее исполнение команд по одной из ветвей: «да» или «нет».
Простым примером разветвляющегося алгоритма может выступить алгоритм выбора одежды перед выходом на улицу:
- Есть ли на улице дождь?
- Если дождь идет, то необходимо надеть плащ.
- Если дождя нет, холодно на улице?
- Если холодно, надеть джемпер;
- Если не холодно, надеть футболку.
В структуре такого алгоритма может быть любое количество условий. Таким образом, сначала проверяется выполнение логического выражения (Есть ли на улице дождь?), затем выполняется одно из условий в соответствии с выбором ответа.
Пример записи разветвляющегося алгоритма представлен на рисунке 2.
Рисунок 2. Автор24 — интернет-биржа студенческих работ
Алгоритм с разветвлением
Для составления разветвляющегося алгоритма необходимо:
- Установить какие могут быть варианты операций и их количество;
- Количество условных операторов (которые и отражают заданное условие) должно быть на одну единицу меньше, чем количество существующих вариантов;
- Понять, при соответствии каким из условий будет реализован каждый их установленных вариантов;
- Если в алгоритме существует больше двух условий, то необходимо задать и последовательность проверки данных условий;
- Записать алгоритм, который отражает ввод данных, вычисление, вывод окончательного результата;
- Протестировать полученный алгоритм на предмет его корректного функционирования.
Стоит отметить, разветвляющиеся алгоритмы могут быть как полными, так и неполными. Пример таких алгоритмов представлен на рисунках 3-4.
Рисунок 3. Алгоритм с полным разветвлением. Автор24 — интернет-биржа студенческих работ
Рисунок 4. Алгоритм с неполным разветвлением. Автор24 — интернет-биржа студенческих работ
Разветвляющие алгоритмы встречаются чаще линейных, но не являются самыми популярными и используемыми в сфере программирования.
Циклические алгоритмы
Чаще всего автоматизируют процессы, выполнение которых необходимо большое количество раз. Поэтому для целей автоматизации наиболее часто используют циклические алгоритмы. Такие алгоритмы используют для решения задач, в которых действия необходимо повторить несколько раз, до тех пор, пока соблюдается заданное ранее условие (выполнение цикла).
Циклические алгоритмы представляют собой алгоритмы, которые обеспечивают выполнение заранее заданного цикла.
Простым примером циклического алгоритма может выступить необходимость посещений школы или университета в будние дни. Данный цикл прекращается при выполнении условия наступления выходных или праздничных дней.
Пример записи циклического алгоритма представлен на рисунке 5.
Рисунок 5. Циклический алгоритм. Автор24 — интернет-биржа студенческих работ
Для составления циклического алгоритма необходимо:
- Установить, какая из последовательностей операций должна быть в основе цикла;
- Определить вводные данные о количестве повторений тела цикла до начала цикла. Исходя из этих данных, определить какой из видов циклического цикла наиболее целесообразно использовать: цикл с параметром, постусловием или предусловием;
- Установить условие окончания выполнения заданного цикла;
- Установить вводные переменные;
- Записать алгоритм, который отражает ввод данных, вычисление, вывод окончательного результата;
- Протестировать полученный алгоритм на предмет его корректного функционирования.