Иногда возникают ситуации, в которых необходимо принимать решения, опираясь одновременно на несколько данных или по их совокупности. В таких случаях целесообразно применять логические операции. В языке NXT-G это позволяет сделать команда Logic.
Приведем таблицу истинности основных логических операций для двух операндов.
На основе этой таблицы составим программу. Пусть робот движется вперед. Условием его остановки будет либо пересечение черной линии, ограничивающей тестовое поле, либо наличие препятствия в 10 сантиметрах от робота. В этом случае Вам придется применить в программе логическую операцию ИЛИ (OR).
В данном примере цикл работает до тех пор, пока не будет передано истинное значение от команды Logic (Логика). Эта команда выполняет логическую операцию ИЛИ (OR), операндами (входными данными) которой являются показания датчиков ультразвука и освещенности. В цикле постоянно считываются показания с датчиков и, как только на одном из них появится истинное значение, команда Логика передаст его в цикл, и он завершится. Истинное значение (логическая 1) команды отправят, если значение на датчике расстояния меньше 10 или значение на датчике освещенности меньше 40 (черная линия). Чтобы лучше разобраться в работе команды Logic, вернитесь к таблице истинности и посмотрите на результат операции ИЛИ при различных значениях.