- •Лекция 2
- •2.1. Операции отношения и логические операции
- •2.1.1. Предварительные замечания.
- •2.1.2. Операции и функции отношения.
- •2.1.3. Логические операции (логические связки) и функции.
- •2.1.4. Приоритет операций.
- •2.2. Управляющие структуры
- •2.2.1. Организация простейшего ввода-вывода в диалоговом режиме.
- •2.2.2. Операторы ветвления (условные операторы).
- •Решение квадратного уравнения
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 |
