Skip to main content

Логика

Условные операторы

Условные операторы занимают центральное место в программировании. Они позволяют организовывать ветвления, например:

  • Если есть путь, ведущий влево, то сверни влево.
  • Если количество баллов = 100, то напечатай «Молодец!».

Блоки «если»

Простейшим условием является блок «если»:

Bild1_ru.PNG

При выполнении этого блока значение переменной x сравнивается с 100. Если значение переменной x превышает 100, выдается фраза «Was für eine große Zahl!» («Какое большое число»)! В противном случае ничего не происходит.

Блоки «если... иначе»

Также можно указать, что в случае невыполнения условия что-либо не должно происходить, как в этом примере:

Bild2_ru.PNG

Как и в случае с предыдущим блоком, если x > 100, выдается фраза «Was für eine große Zahl!». В противном случае выдается фраза «Das ist nicht sehr groß.» («Это не очень большое число.»).

Блок «если» может иметь не более одной ветки «иначе».

Блоки «если-иначе-если»

Ты можешь протестировать несколько условий при помощи одного блока «если», добавив к нему ветку «иначе-если»:

Bild3_ru.PNG

Сначала блок проверяет, больше ли x 100, и выдает «what a great number!», если это так. Если это не так, блок проверяет, равен ли x 42. Если да, он выдает «this is my lucky number!» («Это мое счастливое число!»). В противном случае ничего не происходит.

Блок «если» может иметь любое количество ветвей «иначе-если». Условия анализируются сверху вниз, пока не будет выполнено какое-либо условие или пока не останется ни одного условия.

Блоки «если-иначе-если-иначе»

Блоки «если» могут иметь как ветви «иначе-если», так и ветви «иначе»:

Bild4_ru.PNG

Ветвь «иначе» обеспечивает выполнение действия, даже если не выполняется ни одно из предшествующих условий.

Ветвь «иначе» может стоять после любого количества ветвей «иначе-если», включая ноль; в последнем случае ты получишь обычный блок «если-иначе».

Изменение блока

В панели инструментов отображается только простой блок «если» и блок «если-иначе»:

image.png

Чтобы добавить ветви «иначе-если» и «иначе», щелкни по символу «+». Символ «-» удаляет ветви «иначе-если»:

Bild6_ru.PNG

Обрати внимание на то, что формы блоков допускают добавление любого количества подблоков «иначе-если», однако только одного блока «если».

Булевская логика

Булевская логика — это простая математическая система, в которой существуют два значения:

  • истина
  • ложь

Как правило, логические блоки в программе ROBO Pro Coding предназначены для контроля условий и циклов.

Приведем пример:

Bild1_ru.PNG

Если значение переменной x больше 100, условие является истиной и выдается текст «Was für eine große Zahl!». Если значение переменной x не больше 100, условие является ложью и выдается текст «Das ist nicht sehr groß.». Булевские значения могут наподобие числам, текстам и спискам сохраняться в переменных и передаваться в функции.

Если блок ожидает ввода булевского значения, отсутствие такого ввода интерпретируется как ложь. Небулевские значения нельзя напрямую вставить туда, где ожидаются булевские значения, но можно (хотя и не рекомендуется) сохранить небулевское значение в переменной и потом вставить ее в условие. Мы не советуем использовать этот способ, и в следующих версиях ROBO Pro Coding возможности его использования могут быть изменены.

Значения

Для вызова булевского значения можно использовать один-единственный блок с выпадающим списком, в котором (списке) указано wahr (истина) или falsch (ложь).

Операторы сравнения

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

image-1623518116706.pngimage-1623518117182.png

image-1623518116894.pngimage-1623518116802.png

image-1623518116985.pngimage-1623518166030.png

Шесть операторов сравнения — это равно, не равно, меньше, больше, меньше или равно, больше или равно.

Логические операторы

Блок und (и) возвращает wahr (истина) тогда и только тогда, когда оба его входных значения являются истиной.

Bild8.PNG

Блок oder (или) возвращает wahr, если как минимум одно из двух его входных значений является истиной.

Bild9.PNG

не

Блок nicht (не) превращает введенное булевское значение в противоположное. Например, результатом

Bild10_ru.PNG

будет falsch (ложь)

Если не вводится никакое значение, программа исходит из значения wahr, поэтому следующий блок генерирует значение falsch:

Bild11_ru.PNG

Не рекомендуем оставлять поле для ввода значения пустым.

Тернарный оператор

Тернарный оператор — это блок «если-иначе» в миниатюре. Тернарный оператор принимает три входных значения. Первое из них — проверяемое булевское условие, второе — значение, возвращаемое, если проверка даст результат wahr (истина), третье — значение, возвращаемое, если проверка даст результат falsch (ложь). В следующем примере переменной Farbe (цвет) присваивается значение rot (красный), если переменная x меньше 10, иначе переменной Farbe присваивается значение grün (зеленый).

Bild12_ru.PNG

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

Bild13_ru.PNG

Bild14_ru.PNG