Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Шаг
5.
Циклы
Тем,
ктосоприкасалсяспрограммированием,наверное,ненадообъяснятьсмыслиназначение
блоков,которыенаходятсявгруппеLoops
(циклы)редакторакодаВВСmicro:bit.
Несколькословдлятех,ктовстретилсясэтимпонятием
(в
контекстеалгоритмизацииипрограммирования)впервые.
Циклвпрограммировании,какициклвобычнойжизни, —
этоповторениеоднородныхдействий.Когдадетей
знакомятсциклами,обычноупоминаютциклсмены дня и
ночи,времёнгода,теилииныетехническиециклы
ит.
п.
Циклывжизни,какициклывпрограммировании,могут
бытьразличнымипотипу.
Например,участникиежегодногомарафона“EmpireStateBuildingrun-up”,бегомподнимаясь вверх
по
лестницамзнаменитогонебоскрёба,должныпреодолеть ровно1576ступенек.Тоестьровно
1576
раз
онидолжныповторитьодниитежедействиядляпреодоленияочереднойступеньки.
В
программированиитакойциклназывают“ц
иклсфиксированнымчисломповторений”.
Бываютдругиеситуации,когдазаранееневозможнопредсказать,сколькораздолжновыполняться
повторяющеесядействие.Например,ученикунеобходимовыучитьстихотворение.Дляэтого он
долженегоповторять,поканезапомнит.Одномудостаточноповторить2-3раза,другому—
и
10
не
хватит.
Такойциклназывается“циклсусловием”.
ДлякодированияBBCmicro:bitможноиспользоватьдватипацикласфиксированнымчислом
шагов
(на
самомделетри,ноотретьем—позже):
И
циклсусловием:
Как
работаютэтициклы,посмотримнапримере“Таймер”.
Сценарий
Наустройствеустанавливаетсявремя,черезкотороевключаетсязвуковой
сигнал.Этотсигналзвучитдотехпор,поканебудетвыключенкаким-либо
способом.Такойсценарийвполнесоответствуетжизненнойситуации.
Чтокасаетсяпрограммирования,тозадачаужедостаточносложная,
и
решать
мыеёбудемпочастям.
ТузоваО.А.Программируем
BBC
micro:bit.
Шаг
5.
Циклы
1. Разработаемзвуковойсигнал,которыйбудетоснованнаповторяющемсяфрагменте,
например,
таком:
Разберёмвсеэлементыэтогокода.
1) Сначалапеременнойсименем“нота”задаётсязначение440.Эточастотазвучания,
измереннаявГц.Этачастотасоответствуетноте“ля”.
2) Затем6разнотапроигрываетсясдлительностью1/16ипослекороткойпаузы(100мс)
изменяетчастотуна25.Тоесть,впервыйразчастотаравна440,затем465,490,515,
540,
565.Припоследнемповторениициклапеременнаяполучаетзначение590,нопроигрываться
такаянотауженебудет.
“Привяжите”этот
кодккакому-либособытию,чтобыможнобылопрослушатьвбраузерекак
он
работает,например,так:
Можновкачествесигналатаймеравключитьполицейскуюсирену:
Кому
чтонравится:)
2.
Теперьнапишемполныйкоддлятаймера.
1) Введёмчетырепеременные:
интервал —время,накотороеустанавливаетсятаймер(мс);
старт—время,вкотороетаймервключается(переменнойприсваиваетсязначение
времени,вкотороевыполняетсяэтакоманда—runningtime);
финиш—переменная,которая“отслеживает”время,прошедшеесмоментавключения
таймера;
ТузоваО.А.Программируем
BBC
micro:bit.
Шаг
5.
Циклы
СтопСигнал—логическаяпеременная(принимаетзначения“истина”и“ложь”),которая
отвечаетзавыключениесигналатаймера.
2) Вначальныймомент(onstart)переменнойинтервалзадаёмзначение5секунд(5000 мс),
а
переменнойСтопСигнал—значение“ложь”(false).
3) Остановкутаймерапривязываемк событиюonshake(встряхивание).Ноздесьпокаещё
не
самаостановка,аизменениезначенияпеременнойС топСигнал
4) И,наконец,основнойкод:
Здесьдвацикласусловием.
Первыйциклповторяется,покаразницамеждутекущимвременемивременемвключения
таймераменьшезаданногоинтервала.Вцикленичегонепроисходит,толькоотслеживается
время.
Кодаусловиефиниш-старт<интервалнарушается,становитсяложным,цикл
заканчиваетсяипрограммапереходиткследующейкоманде—следующемуциклу.
Этотцикл
выполняетсядотехпор,покапеременнаяС топСигналбудетиметьзначение
“ложь”.Призначении“ложь”условиеnotСтопСигналимеетзначение“правда”,ицикл
выполняется.
Кактолькомывстряхнёммикроконтроллер,переменнаяС топСигналполучитзначение “true”
(“правда”),notСтопСигнал—значение“false”(“ложь”),ициклзакончится,сигналвыключится.
Проверьтеиубедитесь,чтомыразработалисамыйнастоящийтаймер!
Проверяя,незабудьте,чтоуслышатьсигналможнотолькочерез5секундпосленажатия
кнопки
Удачи!
ТузоваО.А.Программируем
BBC
micro:bit.
Шаг
5.
Циклы