Логические операции
![]() |
![]() |
| Векторный | Си
| ST |
|
| в палитре | на схеме |
Описание
- & (И) (операция аналогична блоку Оператор И).
- 1 (ИЛИ) (Оператор ИЛИ).
- > (БОЛЬШЕ) (Операция БОЛЬШЕ).
- < (МЕНЬШЕ) (Операция МЕНЬШЕ).
- = (РАВНО) (Операция РАВНО).
- ≠ (НЕ РАВНО) (Операция НЕ РАВНО).
- ≥ (БОЛЬШЕ ИЛИ РАВНО) (Операция БОЛЬШЕ ИЛИ РАВНО).
- ≤ (МЕНЬШЕ ИЛИ РАВНО) (Операция МЕНЬШЕ ИЛИ РАВНО).
- ⊻ (ИСКЛЮЧАЮЩЕЕ ИЛИ, XOR) (XOR).
- ¬⊻ (ИСКЛЮЧАЮЩЕЕ НЕ-ИЛИ, NOT XOR) (NOT XOR).
Входные порты
| Имя | Описание | Тип линии связи |
|---|---|---|
| inport_1 | Порт первого операнда. | Математическая |
| inport_2 | Порт второго операнда. | Математическая |
Выходные порты
| Имя | Описание | Тип линии связи |
|---|---|---|
| outport | Порт для результата операции. На выходе может быть 0 или 1. | Математическая |
Свойства
| Название | Имя | Описание | По умолчанию | Тип данных |
|---|---|---|---|---|
| Тип второго операнда | what | Указывает тип второго операнда. Если вектор – то осуществляется поэлементная операция. Скаляр – производится операция с каждым элементом первого входа и значением второго входа. | Скаляр | Перечисление |
| Тип операции | log_type | Тип логической операции. | & (И) | Перечисление |
| Контроль ошибки равенства при генерации кода | checkerr |
Для операций РАВНО и НЕ РАВНО выдавать или нет предупреждение при использовании этого блока при генерации кода: Нет - не выдавать сообщений. Предупреждение - генерировать предупреждение (при этом генерация кода далее продолжается). Ошибка - генерировать ошибку (и запрет на дальнейшую генерацию кода). Сравнение с eps - вместо операции математически точного равенства, генерировать сравнение входов с заданной точностью. Это бывает необходимо делать для действительных чисел из-за особенности их представления в компьютерной технике. В этом случае надо задать так же число eps в свойстве "Точность оператора сравнения действительных чисел". |
Ошибка | Перечисление |
| Точность оператора сравнения действительных чисел | eps |
Для операций РАВНО и НЕ РАВНО - точность сравнения, если выбран вариант "Сравнение с eps". Входные сигналы для операции РАВНО при этом сравниваются следующим образом:
где – выходной сигнал блока, – входные сигналы, – точность сравнения. Для операции НЕ РАВНО, сравнение будет выполнено аналогично (наоборот). |
0.001 | Вещественное |
Параметры
Блок не имеет параметров.
Промпт
//Описание блока, реализующего произвольную логическую операцию
//по выбору пользователя:
// 1. & (И) (операция аналогична блоку "Оператор И")
// 2. | (ИЛИ) (аналогична блоку "Оператор ИЛИ")
// 3. > (БОЛЬШЕ)
// 4. < (МЕНЬШЕ)
// 5. = (РАВНО)
// 6. ≠ (НЕ РАВНО)
// 7. ≥ (БОЛЬШЕ ИЛИ РАВНО)
// 8. ≤ (МЕНЬШЕ ИЛИ РАВНО)
// 9. ⊻ (ИСКЛЮЧАЮЩЕЕ ИЛИ, XOR)
// 10. ¬⊻ (ИСКЛЮЧАЮЩЕЕ НЕ-ИЛИ, NOT XOR)
//В зависимости от выбранной логической операции изменяется пиктограмма блока
//на схеме, а также количество портов в некоторых случаях
// what - тип второго операнда. Указывает тип второго операнда. Если вектор -
//то осуществляется поэлементная операция. Скаляр - производится операция с каждым
//элементом первого входа и значением второго входа. По умолчанию: Скаляр
// log_type - тип операции. Тип логической операции. По умолчанию: & (И)
// checkerr - контроль ошибки равенства при генерации кода. Для операций РАВНО
//и НЕ РАВНО выдавать или нет предупреждение при использовании этого блока при
//генерации кода:
// Нет - не выдавать сообщений
// Предупреждение - генерировать предупреждение (при этом генерация кода далее
//продолжается)
// Ошибка - генерировать ошибку (и запрет на дальнейшую генерацию кода)
// Сравнение с eps - вместо операции математически точного равенства, генерировать
//сравнение входов с заданной точностью. Это бывает необходимо делать для
//действительных чисел из-за особенности их представления в компьютерной технике.
//В этом случае надо задать так же число eps в свойстве "Точность оператора сравнения
//действительных чисел". По умолчанию: Ошибка
// eps - точность оператора сравнения действительных чисел. Для операций РАВНО
//и НЕ РАВНО - точность сравнения, если выбран вариант "Сравнение с eps". Входные
//сигналы для операции РАВНО при этом сравниваются следующим образом:
//y(t) = 1, если |x1(t) − x2(t)| ≤ ε
//y(t) = 0, если |x1(t) − x2(t)| > ε
// y(t) - выходной сигнал блока
// x1(t), x2(t) - входные сигналы
// ε - точность сравнения. Для операции НЕ РАВНО сравнение будет выполнено
//аналогично (наоборот). По умолчанию: 0.001
//Входы: inport_1 - порт первого операнда; inport_2 - порт второго операнда
//Выходы: outport - порт для результата операции. На выходе может быть 0 или 1
block: (
type = "Логические операции",
points=[(-200 , 0),(-184 , 0),(-200 , -16),(408 , 308)],
what = Скаляр,
log_type = & (И),
checkerr = Ошибка,
eps = 0.001
),

