Флагчета в програмирането Pro Preview

Необходимо е да се абонирате за FLLCasts.com, за да достъпите това видео

Абонирай се

  • #1494
  • 21 Nov 2019

Любопитни факти:

Флаговете имат много функции. От това да се идентифицират армии и кораби, до това да се сигнализират нарушения в различни спортове. Но едното общо нещо между всички функции, за които служат е, че те трябва да предадат някакъв вид информация.

Няколко примера:

  • Бялото знаме се е използвало като сигнал, с който армии са се предавали по време на война;
  • Флаг кариран с черни и бели квадратчета се използва за да сигнализира край на състезания;
  • Обърнатото армейско знаме се използва за да сигнализира, че държавата е във война (държавите без армейско знаме използват националните си знамена).

Дори се е развила наука около изучаването на знамената наречена "Вексилология".

Флаговете в програмирането също служат за да предадат информация и обикновено представляват логическа променлива:

Логическата променлива има само 2 състояния:

content picture

  •  За отговор Не, Невярно или смъкнато знаме.
  •  За отговор Да, Вярно или вдигнато знаме.

Задача:

Програмирайте един робот да се движи докато едно от 3 условия не бъде спазено:

Условие 1: Ултразвуковия му сензор не засече обект по-близо от 20 cm;
Условие 2: Сензора му за цветове не засече черна линия;
Условие 3: Сензора му за допир не бъде натиснат.

За да решите тази задача използвайки флагчета, ще трябва да я разделите на няколко паралелни нишки. Три от тях трябва да проверяват дали едно от тези условия е спазено и да вдигат флагче, когато това се случи, а последната паралелна нишка ще движи робота докато флагчето не бъде вдигнато. Ако се затруднявате да решите задачата, може да погледнете примерното решение показано отдолу.

Примерно решение на задачата, чрез имплементация на флагче:

content picture

Както виждате, главната нишка от програмата започва създавайки смъкнато флагче с името "Flag" и започва да движи моторите на робота докато това флагче бъде вдигнато, но самата тя никога не вдига флагчето. Задачата "да бъде вдигнато флагчето" остава за останалите нишки на програмата.

Курсове и занятия включващи този Урок

Този Урок е използван в следните курсове и занятия.

Image for Роботика с LEGO - Ниво 4.5 Време за игра
  • 35
  • 13:40
  • 221
Image for Роботика с LEGO - Ниво 4.5 Време за игра
  • 35
  • 13:40
  • 221
Image for Занятие 1 - Дърпане на въже със сензори
  • 6
  • 5
  • 28
  • 3d_rotation 1
Image for Роботика с LEGO - Ниво 4.0 - Тактилна Игра за Памет
  • 59
  • 2:58
  • 200
Image for Занятие 6 - Записване на резултат
  • 4
  • 7
  • 8
  • 3d_rotation 4