Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LEKTsIYa-2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
198 Кб
Скачать
☆

2.1.3. Логические операции (логические связки) и функции.

Операндами логических операторов в простейшем случае являются скаляры (в общем случае массивы). Тогда логические операции выполняются по описанным выше правилам преобразования числовых и логических значений. Логические операторы перечислены в таблице 2.1.3. Заметим, что первые две операции, приведенные в таблице 2.3, являются двухоперандными (бинарными), а последняя операция является однооперандной (унарной). Соответственно знак ~ ставится перед операндом, а знаки & и | ставятся между операндами.

Таблица 2.3. Логические операторы (логические операции, логические связки) в MATLAB.

Символ

(оператор)

Выполняемое действие (описание)

&

Логическая операция «и» (логическое «и», логическое умножение). Результатом является истина (значение 1), если оба операнда истинны. В противном случае возвращается 0.

|

Логическая операция «или» (логическое «или», логическое сложение). Результатом является истина (значение 1), если хотя бы один операнд истинен. В противном случае возвращается 0.

~

Логическая операция «не» (логическое «не», логическое отрицание). Для истинного операнда возвращается значение 0, а для ложного – значение 1.

Функции, соответствующие операциям сравнения и логическим операторам, приведены в таблице 2.4. Соответствие функций операторам и командам в системе MATLAB является одним из основных положений программирования, позволяющим одновременно использовать элементы как операторного, так и функционального программирования.

Таблица 2.4. Функции, соответствующие логическим операциям.

Операция

Функция

в системе MATLAB

Логическое «и»

and

Логическое «или»

or

Логическое «не»

not

Исключающее «или»

xor

Более наглядное представление о работе логических операторов дает таблица 2.5, где в качестве операндов используются значения 0 и 1.

Таблица 2.5. Работа логических операторов и функций.

X

y

x&y

and(x,y)

x|y

or(x,y)

~x

(not x)

xor(x,y)

0

0

0

0

1

0

0

1

0

1

1

1

1

0

0

1

0

1

1

1

1

1

0

0

2.1.4. Приоритет операций.

Если в программе, наряду с арифметическими операциями, используются операции отношения и логические операции, то приоритетность операций, сведения приведена в таблице 2.6.

Таблица 2.6. Приоритет операций в системе MATLAB.

Приоритетность (порядковый номер в порядке убывания приоритета)

Наименование операции

Обозначение в системе MATLAB

1

Арифметические операции

(согласно таблице 1.5)

Согласно таблице 1.5

2

Операции отношения

<, <=, >, >=, ==, ~=

3

Логическое «не»

~

4

Логическое «и»

&

5

Логическое «или»

|

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

Приведем ниже пример вычислений в командном окне:

>> x=2; y=4; z=8;

>> (x<y)+(y<=z)

ans =

2

Поясним, что в силу истинности выражений x<y и y<=z (т.е. равенства единице их значений), получаем, что сумма значений этих выражений оказывается равной двум. Операции отношения имеют более низкий приоритет по сравнению с арифметическими операциями, поэтому при вычислении последнего выражения в приведенном выше примере возникла необходимость заключения в скобки операций отношения x<y и y<=z. Исключительно важно не забывать про данное правило, так как отсутствие круглых скобок может привести к изменению результата, например:

>> a=1; b=2; c=4;

>> (b>a)+c

ans =

5

>> b>a+c

ans =

0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]