Алгоритм - это рецепт решения задачи. Следуя ему мы приходим к нужному результату при условии, что, во-первых, алгоритм верен, во-вторых, все необходимые условия выполняются. Алгоритм может записываться как пошаговая инструкция, и такой пример я уже приводил.
Любой алгоритм можно представить в виде комбинации трёх элементов: последовательное выполнение, ветвление, и цикл. Давайте резберёмся с этими понятиями.
Вообще, обычно при обучении программирования циклы (loops) и ветвления изучают отдельно, но я ведь пишу про программирование для непрограммистов.
Последовательное выполнение
Самое простое понятие. Шаги, которые выполняются последовательно. Сначала делаем первый шаг, потом второй, и так далее. Здесь всё просто, но нужно помнить, что порядок шагов может быть важен. Вот, например, простой алгоритм похода в магазин:
1) Одеться
2) Взять кошелёк
3) Дойти до магазина
Ветвление
Эта операция ещё называется "условный переход". Иногда нужно проверить какое-то логическое условие, чтобы понять, что делать дальше. Например, при расчёте того же среднего можно проверить, а сколько у нас значений вообще? А вдруг их ноль? Тогда ведь мы не сможем поделить на ноль: ошибка выйдет.
Как это выглядит на примере похода в магазин:
1) Одеться
2) Взять кошелёк
3) Если идёт дождь
- то взять зонт
4) Дойти до магазина
На третьем шаге мы проверяем логическое условие и, соответственно, выполняем или не выполняем заданное действие. Приведённый пример - т.н. неполное ветвление, тут мы совершаем действие только если условие выполняется. Полное ветвление выглядело бы так:
Если идёт дождь
- то взять зонт
, иначе взять солнцезащитные очки
То есть, мы совершаем одно действие, если условие выполняется, и другое - если не выполняется.
Естественно, действий может быть больше чем одно в каждой ветке, но не будем усложнять пример.
Цикл
Когда нам необходимо совершить много одинаковых действий, циклы приходят на помощь. Давайте сразу перейдём к примеру похода в магазин:
1) Одеться
2) Взять кошелёк
3) Идти в сторону магазина
4) Если не дошли до магазина
- то повторить шаг 3
Как видно, здесь совершается условный переход, но в качестве указанного действия - повторения предыдущего шага. Таким образом, пока мы не дойдём до магазина, мы будем идти в его сторону.
Это не единственный вид циклов. то же такое действие мы можем записать следующим образом:
1) Одеться
2) Взять кошелёк
3) Пока не дошли до магазина
- идти в сторону магазина
В третьем шаге тоже описан цикл, но менее наглядно. Важное отличие от предыдущего варианта заключается в том, что здесь мы сначала проверяем выполнение условия, а потом совершаем действие, а в предыдущем - сначала совершаем действие, а потом начинаем проверять выполнение условий. В реальной жизни мы, возможно, и не увидим особой разницы, но когда дело касается программирования - она есть.
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
myhardmoney, zhenek
Поэтому я тоже проголосовал за него!
Узнать подробности о сообществе можно тут:
Разрешите представиться - Кит Добрый
Правила
Инструкция по внесению Инвестиционного взноса
Вы тоже можете стать Инвестором и поддержать проект!!!
Если Вы хотите отказаться от поддержки Доброго Кита, то ответьте на этот комментарий командой "!нехочу"
Не очень наглядный пример с циклами... может ягоды собирать или грибы, пока карзина не наполнится?=)
Да, это хорошие классические примеры.
Я думаю, я потом сделаю отдельный пост про циклы, с разными их видами, и более наглядными примерами.
Как и с ветвлениями.
А на кого в принципе расчитаны эти статьи? На начинающих программистов или состоявшихся юристов и автослесарей к примеру? Недавно помогал одной девушке-юристу научиться программировать... но без четкой задачи она через пару месяцев слилась... Впрчоем если бы была у нее задача например свой сайт сделать, может бы и получилось чего. Однажды я также обучал юриста программированию а через 5 лет он запустил крутейший стартап. А я вначале не понимал за что он мне денег платит за обучение, и был уверен, что у него ничего не получится. Очень приятно удивил меня мужик.
Я их пишу для себя по большей части. Помогает систематизировать знания. Если они помогут кому-то ещё что-то понять, то я лично только буду рад. Если никому - то я не сильно огорчусь.
@karppaul Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за Количество комментариев
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп