Понятие и типы алгоритмов
Алгоритм — это последовательность шагов (операций), описывающих, как можно решить проблему. А также, это набор пошаговых процедур или набор правил, которым необходимо следовать для выполнения конкретной задачи или решения конкретной проблемы.
Слово «алгоритм» впервые было придумано в 9 веке. Алгоритмы вокруг нас. Типичные примеры включают в себя: процесс приготовления пищи, процесс стирки, режим дня — все это примеры алгоритма.
В зависимости от того, как они функционируют, мы можем разделить алгоритмы на несколько типов. Давайте взглянем на некоторые из важных.
Типы алгоритмов
Алгоритм — это план, набор пошаговых инструкций для решения проблемы. Есть три основных типа алгоритмов, которые можно использовать при разработке:
- Линейные алгоритмы — последовательность действий;
- Алгоритм с разветвлением – выбор;
- Циклические алгоритмы – итерация.
Каждый из алгоритмов имеет свои особенности, которые будут рассмотрены далее.
Линейный алгоритм (последовательный)
Линейный алгоритм – алгоритм, состоящий из инструкций (действий, команд), которые выполняются одна за другой в строгом порядке.
Например, очень простой алгоритм чистки зубов может состоять из следующих шагов:
- нанести зубную пасту на зубную щетку
- использовать зубную щетку для чистки зубов
- прополоскать зубную щетку
Каждый шаг — это инструкция, которую нужно выполнить. Последовательность – это порядок, в котором выполняются шаги.
Почему важна последовательность? Крайне важно, чтобы шаги алгоритма выполнялись в правильном порядке, иначе алгоритм не будет работать правильно.
Предположим, что шаги алгоритма чистки зубов были в такой последовательности:
- использовать зубную щетку для чистки зубов
- нанесите зубную пасту на зубную щетку
- прополоскать зубную щетку
Зубная щетка по-прежнему будет использоваться для чистки зубов, а зубная паста будет по-прежнему наноситься на щетку. Но из-за того, что шаги 1 и 2 выполняются в неправильной последовательности, зубная паста не очистит зубы, и зубная паста будет потрачена впустую.
Человек поймет, что забыл добавить зубную пасту в начале процесса, но компьютер не узнает, что что-то не так.
Для составления линейного алгоритма необходимо:
- Определить тип алгоритма и присвоить имена переменным;
- Определить тип конечного результата, присваивая имя этой переменной;
- Определить и обозначьте связь между входными переменными и результирующей переменной;
- При необходимости ввести промежуточные переменные, определить их тип, присвоить имена, указать связь с
исходными переменными и результирующей переменной; - Написать алгоритм, отражающий ввод данных, расчет, вывод конечного результата;
- Протестируйте полученный алгоритм на правильность его функционирования.
Важно. Компьютер может делать только то, на что он запрограммирован. Если шаги запрограммированы в неправильной последовательности, компьютер будет выполнять задачи в этой последовательности, даже если она неверна.
Алгоритм с разветвлением
Алгоритм с разветвлением – это выбор. В какой-то момент в алгоритме может возникнуть вопрос, потому что алгоритм достиг шага, на котором доступны один или несколько вариантов. В зависимости от полученного ответа алгоритм будет выполнять определенные шаги и игнорировать другие.
Почему выбор важен? Выбор позволяет нам включать более одного пути в алгоритм.
Например, можно создать простой алгоритм для определения правильных тарифов на проезд в автобусе. Шаги могут быть:
- спросить сколько лет пассажиру
- если меньше 7 лет — платить за проезд не нужно
- в противном случае оплатить полную стоимость проезда
Решение принимается на шаге 2. Если вам меньше 7 лет, взимается один тариф. В противном случае взимается другой тариф.
ЕСЛИ… ТОГДА… ИНАЧЕ
Выбор позволяет включить в алгоритм несколько путей. В алгоритмах (и в программировании) выбор обычно представлен инструкциями ЕСЛИ, TОГДА и ИНАЧЕ.
- ЕСЛИ представляет вопрос
- ТОГДА указывает, что делать, если ответ на вопрос верен
- ИНАЧЕ указывает, что делать, если ответ на вопрос неверен
Используя этот метод, алгоритм, связанный с платой за проезд, теперь выглядит следующим образом:
- спросить сколько лет
- ЕСЛИ меньше 7 лет, ТОГДА не платите за проезд
- ИНАЧЕ оплатить полную стоимость проезда.
Для составления алгоритма с разветвлением необходимо:
- Определить, какие могут быть варианты операций и их количество;
- Количество условных операторов (отражающих данное условие) — должно быть на единицу меньше, чем
количество существующих решений; - Понять, при каких условиях будет реализовываться каждый из установленных вариантов;
- Если в алгоритме более двух условий, то необходимо указать последовательность проверки этих
условий; - Написать алгоритм, отражающий ввод данных, расчет, вывод конечного результата;
- Протестировать получившийся алгоритм на корректность работы.
Типы алгоритмов с развертыванием
- полными – действия выполняются в обоих случаях: и при истинности, и при ложности условия;
- неполными – действие отсутствует, если условие не выполняется.
Нет времени решать самому?
Наши эксперты помогут!
Контрольная
| от 300 ₽ |
Реферат
| от 500 ₽ |
Курсовая
| от 1 000 ₽ |
Циклический алгоритм
Цикл – это процесс повторения шагов (действий).
Иногда алгоритму необходимо повторять определенные шаги, пока не будет сообщено об остановке или пока не будет достигнуто определенное значение.
Например, очень простой алгоритм употребления хлопьев на завтрак может состоять из следующих шагов:
- положить хлопья в миску
- добавить молоко в хлопья
- ложка хлопьев и молока в рот
- повторяйте шаг 3, пока все хлопья и молоко не будут съедены
- помыть миску и ложку
Почему важна цикличность? Цикличность позволяет упростить алгоритмы, заявляя, что определенные шаги будут повторяться до тех пор, пока не будет указано обратное. Это делает разработку алгоритмов быстрее и проще, поскольку в них не нужно включать множество ненужных шагов.
Можно создать простой алгоритм чистки зубов. Предположим, у человека десять верхних зубов. Чтобы убедиться, что все верхние зубы очищены, алгоритм будет выглядеть примерно так:
- нанесите зубную пасту на зубную щетку
- используйте зубную щетку для чистки зуба 1
- используйте зубную щетку, чтобы почистить зуб 2
- используйте зубную щетку для чистки зуба 3
- используйте зубную щетку для чистки зуба 4
- используйте зубную щетку для чистки зуба 5
- используйте зубную щетку для чистки зуба 6
- используйте зубную щетку для чистки зуба 7
- используйте зубную щетку для чистки зуба 8
- используйте зубную щетку для чистки зуба 9
- используйте зубную щетку для чистки зуба 10
- прополоскать зубную щетку
Шаги со 2-го по 11-й, по сути, повторяют один и тот же шаг, просто каждый раз чистят другой зуб. Цикличность может быть использована для значительного упрощения алгоритма. Посмотрите на эту альтернативу:
- нанесите зубную пасту на зубную щетку
- использовать зубную щетку для чистки зубов
- перейти к следующему зубу
- повторяйте шаги 2 и 3, пока все зубы не будут чистыми
- прополоскать зубную щетку
Этот алгоритм намного проще.
Для составления циклического алгоритма необходимо:
- Определить, какая из последовательностей операций должна быть положена в основу цикла;
- Определить входные данные о количестве повторений тела цикла до начала цикла.
- На основании этих данных определить, какой из видов цикла целесообразнее использовать: цикл с
параметром, постусловием или предусловием; - Установить конечное условие выполнения указанного цикла;
- Установить входные переменные;
- Написать алгоритм, отражающий ввод данных, расчет, вывод конечного результата;
- Протестируйте полученный алгоритм на правильность его функционирования.
Типы циклических алгоритмов
- Со счетчиком — в которых шаги выполняются определенное число раз;
- С условием — в которых тело цикла выполняется, в зависимости от условия.