Вы находитесь на странице: 1из 3

Программируем​​BBC​​micro:bit

Шаг​​
5.​​
Циклы

Тем,​​
кто​​соприкасался​​с​​программированием,​​наверное,​​не​​надо​​объяснять​​смысл​​и​​назначение
блоков,​​которые​​находятся​​в​​группе​​Loops​
​​(циклы)​​редактора​​кода​​ВВС​​micro:bit.

Несколько​​слов​​для​​тех,​​кто​​встретился​​с​​этим​​понятием​​

контексте​​алгоритмизации​​и​​программирования)​​впервые.

Цикл​​в​​программировании,​​как​​и​​цикл​​в​​обычной​​жизни,​​ —
это​​повторение​​однородных​​действий.​​Когда​​детей
знакомят​​с​​циклами,​​обычно​​упоминают​​цикл​​смены​​ дня​​ и
ночи,​​времён​​года,​​те​​или​​иные​​технические​​циклы​​
и​​т.​​
п.
Циклы​​в​​жизни,​​как​​и​​циклы​​в​​программировании,​​могут
быть​​различными​​по​​типу.

Например,​​участники​​ежегодного​​марафона​​“Empire​​State​​Building​​run-up”,​​бегом​​поднимаясь​​ вверх​​
по
лестницам​​знаменитого​​небоскрёба,​​должны​​преодолеть​ ​​ровно​​1576​​ступенек.​​То​​есть​​ровно​​
1576
раз​​
они​​должны​​повторить​​одни​​и​​те​​же​​действия​​для​​преодоления​​очередной​​ступеньки.

В​​
программировании​​такой​​цикл​​называют​​“ц
​ икл​​с​​фиксированным​​числом​​повторений​”.

Бывают​​другие​​ситуации,​​когда​​заранее​​невозможно​​предсказать,​​сколько​​раз​​должно​​выполняться
повторяющееся​​действие.​​Например,​​ученику​​необходимо​​выучить​​стихотворение.​​Для​​этого​​ он
должен​​его​​повторять,​​пока​​не​​запомнит.​​Одному​​достаточно​​повторить​​2-3​​раза,​​другому​​—​​
и​​
10​​
не
хватит.

Такой​​цикл​​называется​​“​цикл​​с​​условием​”.

Для​​кодирования​​BBC​​micro:bit​​можно​​использовать​​два​​типа​​цикла​​с​​фиксированным​​числом​​
шагов
(на​​
самом​​деле​​три,​​но​​о​​третьем​​—​​позже):

И​​
цикл​​с​​условием:

Как​​
работают​​эти​​циклы,​​посмотрим​​на​​примере​​“Таймер”.

Сценарий

На​​устройстве​​устанавливается​​время,​​через​​которое​​включается​​звуковой
сигнал.​​Этот​​сигнал​​звучит​​до​​тех​​пор,​​пока​​не​​будет​​выключен​​каким-либо
способом.​​Такой​​сценарий​​вполне​​соответствует​​жизненной​​ситуации.

Что​​касается​​программирования,​​то​​задача​​уже​​достаточно​​сложная,​​
и​​
решать
мы​​её​​будем​​по​​частям.

Тузова​​О.​​А.​​Программируем​​
BBC​​
micro:bit.​​
Шаг​​
5.​​
Циклы
1. Разработаем​​звуковой​​сигнал,​​который​​будет​​основан​​на​​повторяющемся​​фрагменте,
например,​​
таком:

Разберём​​все​​элементы​​этого​​кода.

1) Сначала​​переменной​​с​​именем​​“нота”​​задаётся​​значение​​440.​​Это​​частота​​звучания,
измеренная​​в​​Гц.​​Эта​​частота​​соответствует​​ноте​​“ля”.
2) Затем​​6​​раз​​нота​​проигрывается​​с​​длительностью​​1/16​​и​​после​​короткой​​паузы​​(100​​мс)
изменяет​​частоту​​на​​25.​​То​​есть,​​в​​первый​​раз​​частота​​равна​​440,​​затем​​465,​​490,​​515,​​
540,
565.​​При​​последнем​​повторении​​цикла​​переменная​​получает​​значение​​590,​​но​​проигрываться
такая​​нота​​уже​​не​​будет.

“Привяжите”​​этот​​
код​​к​​какому-либо​​событию,​​чтобы​​можно​​было​​прослушать​​в​​браузере​​как​​
он
работает,​​например,​​так:

Можно​​в​​качестве​​сигнала​​таймера​​включить​​полицейскую​​сирену:

Кому​​
что​​нравится​​:)

2.​​
Теперь​​напишем​​полный​​код​​для​​таймера.

1) Введём​​четыре​​переменные:
интервал​​ —​​время,​​на​​которое​​устанавливается​​таймер​​(мс);
старт​​—​​время,​​в​​которое​​таймер​​включается​​(переменной​​присваивается​​значение
времени,​​в​​которое​​выполняется​​эта​​команда​​​—​r​unning​​time​);
финиш​​—​​переменная,​​которая​​“отслеживает”​​время,​​прошедшее​​с​​момента​​включения
таймера;

Тузова​​О.​​А.​​Программируем​​
BBC​​
micro:bit.​​
Шаг​​
5.​​
Циклы
СтопСигнал​​​—​​логическая​​переменная​​(принимает​​значения​​“истина”​​и​​“ложь”),​​которая
отвечает​​за​​выключение​​сигнала​​таймера.
2) В​​начальный​​момент​​(​on​​start​)​​переменной​​интервал​​задаём​​значение​​5​​секунд​​(5000​​ мс),​​
а
переменной​​СтопСигнал​​​—​​​значение​​“ложь”​​(false).
3) Остановку​​таймера​​привязываем​​к​​ событию​​on​​shake​​(встряхивание).​​Но​​здесь​​пока​​ещё​​
не
сама​​остановка,​​а​​изменение​​значения​​переменной​С ​ топСигнал

4) И,​​наконец,​​основной​​код:

Здесь​​два​​цикла​​с​​условием.
Первый​​цикл​​повторяется,​​пока​​разница​​между​​текущим​​временем​​и​​временем​​включения
таймера​​меньше​​заданного​​интервала.​​В​​цикле​​ничего​​не​​происходит,​​только​​отслеживается
время.
Кода​​условие​​финиш​​-​​старт​​<​​интервал​​нарушается,​​становится​​ложным,​​цикл
заканчивается​​и​​программа​​переходит​​к​​следующей​​команде​​​—​​следующему​​циклу.
Этот​​цикл​​
выполняется​​до​​тех​​пор,​​пока​​переменная​С ​ топСигнал​​будет​​иметь​​значение
“ложь”.​​При​​значении​​“ложь”​​условие​​not​​СтопСигнал​​имеет​​значение​​“правда”,​​и​​цикл
выполняется.
Как​​только​​мы​​встряхнём​​микроконтроллер,​​переменная​С ​ топСигнал​​получит​​значение​​ “true”
(“правда”),​​not​​СтопСигнал​​—​​значение​​“false”​​(“ложь”),​​и​​цикл​​закончится,​​сигнал​​выключится.

Проверьте​​и​​убедитесь,​​что​​мы​​разработали​​самый​​настоящий​​таймер!

Проверяя,​​не​​забудьте,​​что​​услышать​​сигнал​​можно​​только​​через​​5​​секунд​​после​​нажатия​​
кнопки

Удачи!

Тузова​​О.​​А.​​Программируем​​
BBC​​
micro:bit.​​
Шаг​​
5.​​
Циклы