Презентация Операции арифметические, сравнения, логические и поразрядные. Лекция 10 онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Операции арифметические, сравнения, логические и поразрядные. Лекция 10 абсолютно бесплатно. Урок-презентация на эту тему содержит всего 55 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Операции арифметические, сравнения, логические и поразрядные. Лекция 10
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:55 слайдов
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:178.37 kB
- Просмотров:90
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№2 слайд
![Операции Операции часто](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img1.jpg)
Содержание слайда: Операции
Операции часто разделяются на четыре основные группы: арифметические (arithmetic), сравнения (relational), логические (logical) и побитовые (bitwise).
Операнд - это константа, литерал, идентификатор, вызов функции, индексное выражение, выражение выбора элемента или более сложное выражение, сформированное комбинацией операндов, знаков операций и круглых скобок. Каждый операнд имеет тип.
№8 слайд
![Арифметические операции](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img7.jpg)
Содержание слайда: Арифметические операции
Унарные операции
Арифметическое отрицание (унарный минус – ) меняет знак операнда на противоположный. Стандартная операция отрицания определена для типов int, long, float, double и decimal. К величинам других типов ее можно применять, если для них возможно неявное преобразование к этим типам.
double u = 5;
u = -u; /* переменной u присваивается ее отрицание, т.е. u принимает значение -5 */
Унарный плюс - по умолчанию: u = +u;
№9 слайд
![Арифметические операции](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img8.jpg)
Содержание слайда: Арифметические операции
Унарные операции
Арифметическое отрицание (унарный минус – ) меняет знак операнда на противоположный. Стандартная операция отрицания определена для типов int, long, float, double и decimal. К величинам других типов ее можно применять, если для них возможно неявное преобразование к этим типам.
double u = 5;
u = -u; /* переменной u присваивается ее отрицание, т.е. u принимает значение -5 */
Унарный плюс - по умолчанию: u = +u;
№10 слайд
![Инкрементация и декрементация](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img9.jpg)
Содержание слайда: Инкрементация и декрементация
операции префиксная форма постфиксная форма
x = х + 1; ++x; x++;
x = х - 1; --x; x--;
а) int t=1, s=2, z, f;
Операторы: z = t++ * 5; f = ++s/3;
Результаты: z = , t = s = , f =
б) int х = 10, z = 1;
у = ++х; // х = , у =
у = х++; // у = , х =
z++; /* эквивалентно */ ++z;
№13 слайд
![Операция new Операция new](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img12.jpg)
Содержание слайда: Операция new
Операция new служит для создания нового объекта: new тип ([аргументы])
С помощью этой операции можно создавать объекты как ссылочных, так и значимых типов, например:
object z = new object();
int i = new int(); // то же самое, что int i = 0;
При выполнении операции new сначала выделяется необходимый объем памяти (для ссылочных типов в хипе, для значимых — в стеке), а затем вызывается так называемый конструктор по умолчанию, то есть метод, с помощью которого инициализируется объект. Переменной значимого типа присваивается значение по умолчанию, которое равно нулю соответствующего типа.
№14 слайд
![Операции и amp Объявить](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img13.jpg)
Содержание слайда: Операции * и &
Объявить (определить) указатель можно с помощью операции *.
Получить адрес памяти, на который указывает указатель, можно с помощью оператора адресации &.
Ключевой при работе с указателями является операция *, которую еще называют операцией разыменовывания (разадресации). Операция разыменовывания позволяет получить или установить значение по адресу, на который указывает указатель.
№15 слайд
![Операции и amp Чтобы](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img14.jpg)
Содержание слайда: Операции * и &
Чтобы использовать небезопасный код в C#, надо первым делом указать проекту, что он будет работать с небезопасным кодом. Для этого надо установить в настройках проекта соответствующий флаг - в меню Project (Проект) найти Свойства проекта. Затем в меню Build (Сборка) установить флажок Allow unsafe code (Разрешить небезопасный код).
Ключевое слово "unsafe" отключает систему безопасности так как работа с указателями небезопасна, поэтому для компиляции небезопасного кода необходимо указать параметр компилятора unsafe.
№18 слайд
![Арифметические операции](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img17.jpg)
Содержание слайда: Арифметические операции
Бинарные операции
Операции сложения, вычитания, умножения, деления определены для типов int, uint, long, ulong, float, double и decimal. К величинам других типов их можно применять, если для них существует неявное преобразование к этим типам. Тип результата операций равен "наибольшему" из типов операндов, но не менее int.
№19 слайд
![Арифметические операции](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img18.jpg)
Содержание слайда: Арифметические операции
Бинарные операции
Операция сложения (+) возвращает сумму двух операндов.
Если оба операнда целочисленные или типа decimal и результат операции слишком велик для представления с помощью заданного типа, генерируется исключение System.OverflowException.
int x = 10;
int z = x + 12; // 22
№20 слайд
![Арифметические операции](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img19.jpg)
Содержание слайда: Арифметические операции
Бинарные операции
Операция вычитания (-) возвращает разность двух операндов.
Если оба операнда целочисленные или типа decimal и результат операции слишком велик для представления с помощью заданного типа, генерируется исключение System.OverflowException.
int x = 10;
int z = x - 6; // 4
№22 слайд
![Арифметические операции](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img21.jpg)
Содержание слайда: Арифметические операции
Бинарные операции
Операция деления (/) вычисляет частное от деления первого операнда на второй.
Если оба операнда целочисленные, результат операции округляется вниз до ближайшего целого числа. Если делитель равен нулю, генерируется исключение System.DivideByZeroException.
№23 слайд
![Арифметические операции](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img22.jpg)
Содержание слайда: Арифметические операции
Бинарные операции
Для финансовых величин (тип decimal ) при делении на 0 и переполнении генерируются соответствующие исключения, при исчезновении порядка результат равен 0.
int x = 10;
int z = x / 5; // 2
double a = 10;
double b = 3;
double c = x / y; // 3.33333333
№24 слайд
![Арифметические операции](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img23.jpg)
Содержание слайда: Арифметические операции
Бинарные операции
При делении стоит учитывать, что если оба операнда представляют целые числа, то результат также будет округляться до целого числа:
double z = 10 / 4; // результат равен 2
double z = 10.0 / 4.0; // результат равен 2.5
double z = 10.0 / 4; // результат равен 2.5
int a = 4, b = 10;
double z = b / (a*1.0); // результат равен 2.5
// или
double z = (double) 10 / 4; // результат равен 2.5
№25 слайд
![Арифметические операции](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img24.jpg)
Содержание слайда: Арифметические операции
Бинарные операции
Операция остатка от деления (%):
- если оба операнда целочисленные, результат операции вычисляется по формуле x - (x / y) * y. Если делитель равен нулю, генерируется исключение System.DivideByZeroException.
- если хотя бы один из операндов вещественный, результат операции вычисляется по формуле x – n * y, где n — наибольшее целое, меньшее или равное результату деления х на y.
№26 слайд
![Арифметические операции](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img25.jpg)
Содержание слайда: Арифметические операции
Бинарные операции
Операция остатка от деления (%):
Для финансовых величин (тип decimal ) при получении остатка от деления на 0 и при переполнении генерируются соответствующие исключения, при исчезновении порядка результат равен 0. Знак результата равен знаку первого операнда.
Операция получение остатка от целочисленного деления двух чисел (%):
double x = 10.0;
double z = x % 4.0; // результат равен 2
№28 слайд
![Пример int a int b int c int](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img27.jpg)
Содержание слайда: Пример 2
int a = 3;
int b = 5;
int c = 40;
int d = c-- - b*a; // a=3 b=5 c=39 d=25
Console.WriteLine($"a={a} b={b} c={c} d={d}");
int d = c-- - b*a; ↔ int d = (c--)-(b*a);
int a = 3;
int b = 5;
int c = 40;
int d = (c-(--b))*a; // a=3 b=4 c=40 d=108
Console.WriteLine($"a={a} b={b} c={c} d={d}");
№29 слайд
![Арифметические операции](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img28.jpg)
Содержание слайда: Арифметические операции
Арифметические операции не определены для более коротких, чем int, типов. Это означает, что если в выражении участвуют только величины типов sbyte, byte, short и ushort, перед выполнением операции они будут преобразованы в int. Таким образом, результат любой арифметической операции имеет тип не менее int.
byte a = 4;
byte b = a + 70; // ошибка, byte ≠ int
И чтобы выйти из этой ситуации, необходимо применить операцию преобразования типов:
byte a = 4;
byte b = (byte)(a + 70); // операция преобразования типов
№30 слайд
![Исключения При вычислении](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img29.jpg)
Содержание слайда: Исключения
При вычислении выражений могут возникнуть ошибки, например, переполнение, исчезновение порядка или деление на ноль. Об ошибках система сигнализирует с помощью специального действия, называемого выбрасыванием (генерированием) исключения. Каждому типу ошибки соответствует свое исключение. В C# исключения являются классами, которые имеют общего предка — класс Exception, определенный в пространстве имен System.
Например, при делении на ноль будет сгенерировано исключение DivideByZeroException, при недостатке памяти — исключение OutOfMemoryException, при переполнении памяти — исключение OverflowException.
№31 слайд
![Исключения В C ключевое слово](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img30.jpg)
Содержание слайда: Исключения
В C# ключевое слово checked используется, если требуется указать, что выражение будет проверяться на переполнение, ключевое слово unchecked следует использовать, а требуется проигнорировать переполнение.
checked (выражение)
checked {
// проверяемые операторы
}
unchecked (выражение)
unchecked {
// операторы, для которых переполнение игнорируется
}
№32 слайд
![Исключения В C есть механизм](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img31.jpg)
Содержание слайда: Исключения
В C# есть механизм обработки исключительных ситуаций (исключений) - конструкция try...catch.
Блок try содержит операторы, реализующие действия, в которых может потенциально возникнуть ошибка, а в блоке catch обрабатывается ошибка, если она возникла.
Внутри блока catch можно, например, вывести предупреждающее сообщение или скорректировать значения величин и продолжить выполнение программы. Если этот блок не задан, система выполнит действия по умолчанию, которые обычно заключаются в выводе диагностического сообщения и нормальном завершении программы.
№34 слайд
![Пример for int j j lt i j](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img33.jpg)
Содержание слайда: Пример 3
for (int j = 1; j <= i; j++) { // цикл
try {
Console.Write("Введите a: ");
a = unchecked((byte)int.Parse(Console.ReadLine()));
Console.Write("Введите b: ");
b = unchecked((byte)int.Parse(Console.ReadLine()));
checked {
result = (byte)(a + b);
Console.WriteLine("a + b = " + result);
result = (byte)(a * b);
Console.WriteLine("a*b = " + result + "\n");
} // конец блока checked
} // конец блока try
№36 слайд
![Операции доступа В языке С](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img35.jpg)
Содержание слайда: Операции доступа
В языке С# символы "." и "->" обозначают операции доступа к элементам класса. Операция доступа к члену класса (точка) используется для непосредственного обращения к элементу класса (свойствам, методам). Операция ссылки на член класса используется для обращения к члену класса через указатель.
№37 слайд
![Пример class Program static](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img36.jpg)
Содержание слайда: Пример 4
class Program {
static void Main(string[] args) {
unsafe {
Person person;
person.age = 29;
person.height = 176;
Person* p = &person;
p->age = 30;
Console.WriteLine(p->age);
(*p).height = 180; // разыменовывание указателя
Console.WriteLine((*p).height);
} } }
public struct Person {
public int age;
public int height;
}
№38 слайд
![Операторы quot quot и quot](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img37.jpg)
Содержание слайда: Операторы "[ ]" и " ( )"
Круглые скобки — это оператор, повышающий приоритет операций, заключенных внутри. Квадратные скобки используются для индексации массива. Если в программе определен массив, то значение выражения, заключенного в квадратные скобки, равно индексу элемента массива.
int[] numbers = new int[] { 1, 2, 3, 4, 5 };
for (int i = 0; i < numbers.Length; i++)
{
numbers[i] = 1 + (numbers[i] * 2);
Console.WriteLine(numbers[i]);
}
№40 слайд
![Операции сравнения отношения](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img39.jpg)
Содержание слайда: Операции сравнения (отношения)
int a = 10;
int b = 4;
bool c = a == b; // false
bool c = a != b; // true
bool d = a!=10; // false
bool c = a < b; // false
bool c = a > b; // true
bool d = a > 25; // false
bool c = a <= b; // false
bool d = a <= 25; // true
bool c = a >= b; // true
bool d = a >= 25; // false
№41 слайд
![Логические операции В C](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img40.jpg)
Содержание слайда: Логические операции
В C# определены логические операции, которые также возвращают значение типа bool. В качестве операндов они принимают значения типа bool.
Оператор Действие
&& И
| | ИЛИ
! НЕ
Таблица истинности для логических операторов.
p q p&&q p | | q !p
0 0 0 0 1
0 1 0 1 1
1 1 1 1 0
1 0 0 1 0
№42 слайд
![Логические операции](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img41.jpg)
Содержание слайда: Логические операции
Логическое отрицание (!) определено для типа bool. Результат операции — значение false, если операнд равен true, и значение true, если операнд равен false.
bool t, z = true;
t = !z; // false
Операция логического сложения (||). Возвращает true, если хотя бы один из операндов возвращает true.
bool x1 = (5 > 6) || (4 < 6);
//
bool x2 = (5 > 6) | (4 > 6);
//
№43 слайд
![Логические операции Операция](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img42.jpg)
Содержание слайда: Логические операции
Операция логического умножения (&&). Возвращает true, если оба операнда одновременно равны true.
bool x1 = (5 > 6) && (4 < 6);
//
bool x2 = (5 < 6) && (4 < 6);
//
Ниже приведены приоритеты операций сравнения и логических операций.
высший !
> >= < <=
= = ! =
&&
низший ||
№44 слайд
![Логические операции Как и для](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img43.jpg)
Содержание слайда: Логические операции
Как и для арифметических операций, естественный порядок вычислений можно изменять с помощью скобок.
Операнды логических выражений вычисляются слева направо.
Если значения первого операнда достаточно, чтобы определить результат операции, то второй операнд не вычисляется.
Операции сравнения и логические операции имеют более низкий приоритет, чем арифметические операции. 10 > 1 + 12 ↔ 10 > (1 + 12)
В одном и том же выражении можно использовать несколько операций.
bool x1 = 10 > 5 && ! (10 < 9) || 3 < = 4;
№45 слайд
![Поразрядные побитовые](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img44.jpg)
Содержание слайда: Поразрядные (побитовые) операции
Поразрядные операции выполняются над отдельными разрядами числа. В этом плане числа рассматриваются в двоичном представлении, например, 2 в двоичном представлении 10 и имеет два разряда, число 7 - 111 и имеет три разряда.
Оператор Действие
& и
| или
^ Исключающее ИЛИ
~ Дополнение до единицы (НЕ)
>> Сдвиг вправо
<< Сдвиг влево
№46 слайд
![Поразрядные побитовые](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img45.jpg)
Содержание слайда: Поразрядные (побитовые) операции
Поразрядные логические операции (&, |, ^) применяются к целочисленным операндам и работают с их двоичными представлениями. При выполнении операций операнды сопоставляются побитно (первый бит первого операнда с первым битом второго, второй бит первого операнда со вторым битом второго, и т д.). Стандартные операции определены для типов int, uint, long и ulong.
№47 слайд
![Поразрядные побитовые](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img46.jpg)
Содержание слайда: Поразрядные (побитовые) операции
Операция логического умножения или логическое И (&). Возвращает true, если оба операнда одновременно равны true.
bool x1 = (5 > 6) & (4 < 6); //
bool x2 = (5 < 6) & (4 < 6); //
int x1 = 2; // 010
int y1 = 5; //101
Console.WriteLine(x1 & y1); //
int x2 = 4; //100
int y2 = 5; //101
Console.WriteLine(x2 & y2); //
№48 слайд
![Поразрядные побитовые](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img47.jpg)
Содержание слайда: Поразрядные (побитовые) операции
Операция логического сложения или логическое ИЛИ (|). Возвращает true, если хотя бы один из операндов возвращает true.
bool x1 = (5 > 6) | (4 < 6); //
bool x2 = (5 > 6) | (4 > 6); //
int x1 = 2; // 010
int y1 = 5; // 101
Console.WriteLine(x1|y1); //
int x2 = 4; // 100
int y2 = 5; // 101
Console.WriteLine(x2 | y2); //
№49 слайд
![Поразрядные побитовые](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img48.jpg)
Содержание слайда: Поразрядные (побитовые) операции
Операция исключающего ИЛИ (^) (XOR). Возвращает true, если либо первый, либо второй операнд (но не одновременно) равны true, иначе возвращает false
p q p ^ q
0 0 0
1 0 1
1 1 0
0 1 1
bool x5 = (5 > 6) ^ (4 < 6);
//
bool x6 = (50 > 6) ^ (4 / 2 < 3);
//
№50 слайд
![Поразрядные побитовые](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img49.jpg)
Содержание слайда: Поразрядные (побитовые) операции
Эту операцию нередко применяют для простого шифрования:
int x = 45; // Значение, которое надо
// зашифровать - в двоичной форме 101101
int key = 102; // Пусть это будет ключ - в двоичной
// форме 1100110
int encrypt = x ^ key; // Результатом будет число
// 1001011 или 75
Console.WriteLine("Зашифрованное число: " +encrypt);
int decrypt = encrypt ^ key; // Результатом будет
// исходное число 45
Console.WriteLine("Расшифрованное число: " + decrypt);
№51 слайд
![Поразрядные побитовые](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img50.jpg)
Содержание слайда: Поразрядные (побитовые) операции
Поразрядное отрицание (~), часто называемое побитовым, инвертирует каждый разряд в двоичном представлении операнда типа int, uint, long или ulong.
char b = '9'; // '9' = шестнадцатеричному значению 39
unsigned char f;
f = ~b; // 'ц' = шестнадцатеричному значению С6
Оператор дополнения до единицы "~" инвертирует каждый бит операнда. Это значит, что каждая единица станет нулем, и наоборот.
Исходный байт 00101100
После первого отрицания 11010011
После второго отрицания 00101100
№52 слайд
![Поразрядные побитовые](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img51.jpg)
Содержание слайда: Поразрядные (побитовые) операции
Две пары операций | и || (а также & и &&) выполняют похожие действия, однако же они не равнозначны.
В выражении z = x | y; будут вычисляться оба значения - x и y.
В выражении же z = x || y; сначала будет вычисляться значение x, и если оно равно true, то вычисление значения y уже смысла не имеет, так как в любом случае уже z будет равно true. Значение y будет вычисляться только в том случае, если x равно false.
То же самое касается пары операций &/&&.
z = x & y; // будут вычисляться оба значения - x и y
z = x && y; // сначала x, и если оно равно true, то y
№53 слайд
![Поразрядные побитовые](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img52.jpg)
Содержание слайда: Поразрядные (побитовые) операции
Операции сдвига ( << и >> ) применяются к целочисленным операндам и определены для типов int, uint, long и ulong.
При сдвиге влево ( << ) освободившиеся разряды обнуляются.
410 = 000001002
4<<1 → 810 = 000010002
При сдвиге вправо ( >> ) освободившиеся биты заполняются нулями, если первый операнд беззнакового типа, и знаковым разрядом в противном случае.
1610 = 000100002
16>>1 → 810 = 000010002
№54 слайд
![Поразрядные побитовые](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img53.jpg)
Содержание слайда: Поразрядные (побитовые) операции
Операции сдвига можно использовать вместо непосредственного умножения или деления на два.
С помощью сдвига вправо можно эффективно поделить число на 2, а с помощью сдвига влево — умножить на 2.
byte x Двоичное представление Значение
x = 7; 0 0 0 0 0 1 1 1 7
x = x << 1; 0 0 0 0 1 1 1 0 14
x = x << 3; 0 1 1 1 0 0 0 0 112
x = x << 2; 1 1 0 0 0 0 0 0 192
x = x >> 1; 0 1 1 0 0 0 0 0 96
x = x >> 2; 0 0 0 1 1 0 0 0 24
№55 слайд
![Контрольные вопросы . Где](/documents_6/bc028951c0bab13e3bf1bdf3fa3f1623/img54.jpg)
Содержание слайда: Контрольные вопросы
1. Где можно описывать переменные? Что входит в описание переменной?
2. Что происходит при использовании в выражении операндов различных типов? Приведите примеры.
3. Перечислите операции языка C#, сгруппировав их по приоритетам.
4. К операндам какого типа применимы операции сдвига?
5. Что такое исключительные ситуации?
6. Опишите принципы обработки исключительных ситуаций.
Скачать все slide презентации Операции арифметические, сравнения, логические и поразрядные. Лекция 10 одним архивом:
Похожие презентации
-
Основы программирования. Поразрядные и логические операции
-
Операци сравнения. Логические операторы
-
Арифметические операции в Паскале
-
Операции и выражения. (Лекция 4)
-
Операционная система Windows. Программирование с использованием средств Win32 API. (Лекция 2)
-
Массивы. Ввод и вывод одномерных и двухмерных массивов. Операции над массивами. Лекция 16
-
Операции присваивания, условная операция. Приоритеты операций и порядок вычислений. Лекция 11
-
Логические операции и условия
-
Int main. Объявление переменной. Типы данных. Логические операции
-
Стандартные типы. Работа с консолью. Развилки. (Основные) логические операции