Что такое Алгоритм?
Что это такое? Конечно, некоторым может быть интуитивно понятно это слово. Все же дам определение, сначала из старой доброй Википедии :
Алгори́тм — набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий.А если проще, то алгоритм, это как рецепт какого-то блюда, который описывает, что вы должны сделать с ингредиентами, чтобы приготовить это блюдо. То есть, в каком порядке класть овощи, сколько их жарить. Думаю, что понятно. И если так, то давайте что нибудь "приготовим"! :)
Для начала что-то очень простое, например.. алгоритм покупки семечек.
Алгоритм покупки семечек
Давайте предположим, что вы собрались пойти за семечками (если не любите их, как я, то пусть это будет что-то другое, не важно).
Что вам нужно? Прежде всего, это деньги. Итак, напишем:
Ну и теперь их надо купить.
Вот такой алгоритм. И очень просто, правда? Такие алгоритмы называются линейными.
Однако.. А откуда вы знаете, что семечки вообще есть в магазине? Давайте тогда для начала проверим, есть они в продаже или нет. И усовершенствуем алгоритм:
Вроде бы получше.. Такой вид алгоритма называется разветвляющимся.
Но предположим, что вам эти семечки позарез нужны :) Что вы обычно делаете, если не находите семечки в магазине? Думаю, что стоит пойти в другой магазин, вдруг они там будут? Хорошее решение.
Однако давайте не спешить, и подумаем, а что если их и во втором магазине не будет? Допустим, что у вас есть 7 магазинов. Конечно, можно, используя знакомый нам разветвляющийся алгоритм просто сделать 7 раз на ветке "Нет" продолжение с пункта "2". Но это будет нерационально.
Поэтому, давайте сделаем по-умному. Вместо действия "Печаль" в 4 пункте, напишем "Вернуться в пункт : 2".
И тогда нам не придется писать лишнего. В этом и заключается суть качественных алгоритмов. Чтоб быть максимально простыми, и лаконичными.
Вот что получилось. Такой вид алгоритма называется циклическим, а само действие, когда мы возвращаемся в другую часть алгоритма, называется итерацией цикла.
После составления алгоритма, нужно всегда проверять его. Давайте проверим наш алгоритм.
Допустим дело было так : мы взяли деньги, вышли из дома, пошли в ближайший магазин, семечек не нашли, пошли в еще один, но и там их не оказалось. Мы пошли в третий магазин и нашли там семечки. Купили! Довольные как слон, идем домой :)
А вот другой пример : мы обошли все 7 магазинов и нигде не нашли семечек. Что нормальный человек сделает? Конечно пойдет домой. Но мы проверяем алгоритм, поэтому.. согласно плану, пойдем в ближайший магазин. В один из тех, что мы уже посещали. Естественно, что семечек там нет! И мы снова идем в ближайший магазин. Глупо, да? Вот этот процесс называется зацикливанием. Все потому, что мы не предусмотрели, что во всех магазинах может не оказаться семечек.
Давайте думать, как это исправить. В этот раз вы попробуйте сначала сами сделать. А потом посмотрите, как я это реализовал. Если вы сделали не так как я, ничего страшного, это не обязательно значит, что вы ошиблись. Если вы проверили алгоритм, и зацикливания не происходит, значит все верно! :)
Ну а я предлагаю свое решение:
Вот так. Здесь все нормально будет :)
Можете в качестве домашнего задания написать несколько своих алгоритмов. А я предлагаю такие:
- Алгоритм мойки посуды.
- Алгоритм поведения комара. (Вредного такого) :)
- Алгоритм заваривания кофе/чая.
- Алгоритм приготовления бутерброда.
Cледующая статья--->
ниче так
ОтветитьУдалить