ЧТО ТАКОЕ РАЗВЕТВЛЯЮЩИЙСЯ АЛГОРИТМ?
Как вы уже поняли, компьютерные программы — это инструкции, указывающие компьютеру, как обрабатывать и преобразовывать информацию. Важной частью программирования является указание компьютеру, когда, при каком условии выполнять определенную задачу. Для этого мы используем команды (операторы), называемые «условными».
И опять обратимся к сравнению… Наверняка вы уже встречались с условиями в своей повседневной жизни.
Вы когда-нибудь слышали от своих родителей такие фразы:
- «Если ты уберешься в своей комнате, то ты можешь пойти погулять с друзьями».
- «Если твоя домашняя работа сделана, то ты можешь поиграть в видеоигры».
Эти, равно как и все другие условия, следуют формату:
ЕСЛИ условие истинно, выполнить ДЕЙСТВИЕ 1, ИНАЧЕ выполнить ДЕЙСТВИЕ 2.
Попробуем визуализировать следующий алгоритм в виде схемы:
ЕСЛИ идет снег, ТОГДА наденьте ботинки, ИНАЧЕ наденьте кроссовки
Схема разветвляющегося алгоритма
Так как micro:bit это микрокомпьютер, мы можем также запрограммировать его на выполнение какого-либо условия. Таким образом мы сможем построить разветвляющийся алгоритм.
Чтобы построить разветвляющийся алгоритм в среде программирования Microsoft MakeCode, необходимо воспользоваться блоками из раздела “Logic” (логика). Они поделены на 3 отдельных подраздела:
- “Conditionals” (условные конструкции)
“Если условие истинно, то” Если условие истинно, то, иначе” “Comparison” (сравнение):
“Boolean” (Булевы операторы)
Немного теории или справочник начинающего программиста…
Разветвляющийся алгоритм — алгоритм, в котором выполнение действия зависит от выполнения или невыполнения какого-либо условия. Рассмотрим подробнее на конкретном примере.
Текстовое решение:
Задача: составить программу по выводу на экран платы micro:bit знака “сердце”, если значение числовой переменной Х больше двух, иначе вывести на экран знак “крестик”, реализуя разветвляющийся алгоритм (псевдокод):
- задать значение переменной “х” с помощью блока из раздела “Math” (математика) (представить как сумму двух слагаемых, например 1+3);
- используя блок сравнения из раздела “Logic” (логика) реализовать ветвление: если при изменении одного из слагаемых получается значение суммы больше 2, то показать значок 1 (например, сердце) иначе показать значок 2 (например, крестик).
С учетом описанной специфики среды программирования Microsoft MakeCode наш план деятельности (включая псевдокод) может быть описан следующим образом:
- удалите обработчик события “forever” (навсегда);
- создайте переменную “x” с числовым значением “1 + 3”
- вставьте блок “if then else” (если то, иначе);
- вставьте блок сравнения из раздела “Logic” (логика) для проверки условия “if x > 2 then” (если переменная “x” больше 2-х, то)
- вставьте блок “show icon” (показать значок с иллюстрацией знака “сердец”, если проверяемое условие истинно);
- вставьте блок “show icon” (показать значок с иллюстрацией знака “крестик”, если проверяемое условие ложно).
Реализуем программу в среде программирования Microsoft MakeCode. Разветвляющийся алгоритм будет иметь следующий вид:
Пример разветвляющегося алгоритма в среде
Microsoft MakeCode
Таким образом, мы реализовали разветвляющийся алгоритм, в котором все действия выполняются в зависимости от условия (в нашем случае, значения переменной, которое мы изменяем вручную).
В примере программы разветвляющегося алгоритма, измените значения одного из слагаемых, чтобы числовое значение переменной было равно 5 и условие, проверяемое значение переменной, с “x > 2” на “x < 2”. Проверьте, как изменилась программа по выводу знаков на плату?
Программируем вместе…
ПРЕДСКАЗАТЕЛЬ
Magic 8 ball — игрушка, шуточный способ предсказывать будущее или отвечать на вопросы в формате Да/Нет.. Самое знаменитое появление шарика — это фильм «Трасса 60». Причём сначала шарик появляется в компьютерном варианте, а потом уже реально. Способ использования — держа шар в руках (окошком вниз) пользователь задаёт ему вопрос, трясет и переворачивает его, после чего в окошке появляется ответ.
Также его можно увидеть в фильмах (мультфильмах) «Друзья», «Доктор Хаус», «Зачарованные», «Симпсоны», «История игрушек» и др.
Вступление
Вы собираетесь закодировать свой микро: немного, чтобы прочитать будущее! Просто задайте вопрос микро: бит, и нажмите кнопку, чтобы узнать ответ!
Перейдите по адресу чтобы начать новый проект в редакторе MakeCode Назовите свой новый проект «Предсказатель».
НАЧАЛЬНАЯ АНИМАЦИЯ
СОЗДАЙТЕ АНИМАЦИЮ НА НАЧАЛО РАБОТЫ MICRIBIT
ПРИНЯТИЕ РЕШЕНИЯ
Давайте заставим ваш micro: bit принять решение, выбрав случайным образом число ( 0 для «No» и 1 «Yes»).
- Добавьте новое on button A pressed событие в ваш код.
- Давайте создадим новую переменную для хранения ответа. Нажмите «Переменные», а затем нажмите «Создать переменную».
- Назовите новую переменную с именем answer.
- Перетащите set блок из переменных в ваш on button A pressed блок и выберите answer переменную.
- Как вы можете видеть, to блок in означает, что вы можете установить ответ для отображения.
- Нажмите «Математика» и перетащите pick random блок после to:
- Скажите случайному блоку, чтобы он выбирал число от 0 до 1. Вот как должен выглядеть ваш код:
Далее, вы хотите, чтобы отобразить слово No если случайное число 0
- Чтобы сделать это, перетащите if блок в конец вашего on button A pressed мероприятия:
- Затем перетащите = блок как условие в if:
- Перетащите вашу answer переменную на левую сторону if блока.
- Любой код внутри if блока будет выполняться, только если значение answer равно 0. Если 0 — No, давайте добавим show string блок.
- Проверьте свой код.
- Иногда значение answer будет 0, а бит micro: должен сказать «Нет».
- Иногда answerбудет 1, и ничего не случится!
ДОПОЛНИТЕЛЬНО.
ЗАДАЧА: НЕСКОЛЬКО ОТВЕТОВ
Можете ли вы добавить код, чтобы на вашем микро: бите отображалось «Да», если ответ 1? Вы даже можете изменить показанный текст на что-то более интересное, чем просто «Да» и «Нет»!.Вы даже можете заставить свой micro: bit произносить что-то вроде «Возможно» или «Спросить еще раз», если ответ 2. Чтобы это сработало, вам также нужно изменить код, чтобы выбрать случайное число от 0 до 2!
Совет: Вы можете щелкнуть правой кнопкой мыши if блок, чтобы продублировать блок и его содержимое.