Программирование на Arduino. Урок 2. Основные алгоритмы.


Урок 2. Циклы и условные операторы

Наверно, многие, кто изучал (или изучает) информатику в школе, слышал про обучающую среду КУМИР, которая представляет собой "Робота", которому нужно добраться из точки А в точку Б на карте, но просто пройти эту дорогу он не может - ему мешает нарисованная стена, если Робот с ней столкнется, то он разобьется. Учащимся предлагается написать на алгоритмическом языке программу, которая позволит ему оказаться в нужной точке. Для универсальности и оптимальности программы используются различные алгоритмы. Именно о них мы сегодня и поговорим.

На прошлом занятии мы с вами познакомились с платформой Arduino, разобрались с ее строением и назначением пинов. А сегодня давайте «оживим» ее и начнем работу со знакомства с видами алгоритмов.

Алгоритмы это основа любой программы, ведь нам нужно «объяснить» контроллеру, чего мы от него ожидаем, именно для этого и пишется программа. Программа, написанная посредством определенного языка программирования - это перевод в письменный код ожиданий оператора. Т.к. любая программа выполняется последовательно строка за строкой, за исключением прерываний (но о них чуть позже), то мы должны понимать, что происходит на каждом шаге выполнения программы, чтобы получить желаемый результат.

В «природе» существует два основных вида алгоритмов: условные и циклические.
Начнем с простых и интуитивно понятных – Условные алгоритмы.  Как можно догадаться из их названия, мы имеем дело с условиями. На алгоритмическом языке они выглядят так: «….Если (условие) верно, то…» или «…Если (условие) верно, то…, а если не верно, то…».


Рис. 1 Неполное ветвление             

              Рис. 2 Полное ветвление

Здесь основное различие состоит в том, что при неполном ветвлении мы выполняем действие, которое предписывает нам условие, если оно принимает значение «true», если же оно «false», т.е. ложно, пропускаем фрагмент программы с условием и идем дальше.
На языке программирования это ветвление выглядит так:

Рис. 3 Программа «Неполное ветвление»

Если же имеем дело с полным ветвлением, то в обоих случаях и когда условие значение «true», и когда условие «false», у нас заданы определенные действия, которые мы будем выполнять.
На языке программирования это ветвление выглядит так:

Рис. 6 Программа «Полное ветвление»

А теперь приступим к циклическим алгоритмам. Их у нас существует три разновидности: цикл с «предусловием», цикл с «постусловием» и цикл с «параметром».



Этот цикл выполняется до тех пор, пока условие остается «true», если же условие становится «false», цикл заканчивается и переходит к дальнейшему выполнению программы. При этом, если условие заведомо было ложным, этот цикл не выполнится ни разу (это удобно при проверке, например, знаменателя дроби, ведь если он 0, то производить деление мы не будем).


Рис. 7 Цикл с «предусловием»




Этот цикл выполняется до тех пор, пока условие остается«false»,   если же условие становится «true», цикл заканчивается и переходит к дальнейшему выполнению программы Такой цикл используется, когда нам необходимо проверить результат какого-то оператора в программе, т.е. мы сначала выполняем действие, а потом проверяем, что же мы получили в его результате. Но если у нас как в предыдущем примере «деление на ноль», то этот цикл будет неверным.


Рис. 8 Цикл с «постусловием»



А теперь мой любимый цикл, а любимый потому, что мы заранее знаем, сколько раз он выполнится. Да, вы правильно поняли, речь идет о цикле с «параметром».
Такой цикл мы используем, когда нам необходимо повторить определенное действие в программе несколько раз. С помощью него мы можем избежать повторения одинаковых записей в коде программы.


Рис. 9 Цикл с «параметром»

Сегодня мы разобрались в основных алгоритмах, используемых при написании программ. Это лишь краткий экскурс по тому, что нам с вами предстоит изучить и уметь использовать в своих программах. Каждый из этих циклов мы будем разбирать по отделенности подробнее в следующих статьях и  применять на практике для сборки электрических схем и их программирования с помощью контроллера Arduino.

Все вопросы, которые мы не осветили в этой статье, оставляйте в комментариях, будем рады на них ответить.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.