[БЕЗ_ЗВУКА] В этом видео мы изучим особенности работы с логическими операциями. Ну, начнем с простого — это сравнение целых чисел. Мы с вами на него уже смотрели, давайте быстренько приведем еще раз примерчик, что если у нас есть две переменные, a и b, то мы можем их сравнить, написав: если a < b, то давайте выведем что a меньше b. Скомпилируем, запустим, и да, все нормально, действительно все работает. Это достаточно простой и очевидный пример. Давайте возьмем пример какой-нибудь поинтересней. Давайте, например, скажем, что переменная a — это теперь string, и переменная b — это тоже string. И например, в a у нас записано слово «огонь», а в переменной b, например, записано слово «вода». Скомпилируем нашу программу, и она компилируется. Заметьте, мы не трогали вот... мы не трогали код, который находится в условном операторе, при этом у нас все компилируется. То есть мы сравниваем между собой строки таким же естественным образом с помощью оператора <, хотя строки — это уже какие-то сложные объекты, но при этом они сравниваются таким же естественным образом. При этом сравнение строк в C++ у нас выполняется лексикографически, то есть строка — давайте выполним программу — строка a меньше строки b, потому что буква f в словаре идет раньше, чем буква w. Если, например, у нас здесь будет какое-нибудь другое слово, например, «туман», fog, то строка a окажется также меньше строки b, потому что первые буквы у них совпадают, ну а буква i идет в алфавите раньше, чем буква o. Еще мы можем точно так же естественным образом сравнить строки на равенство. Давайте поменяем наш код, чтобы он работал адекватно для сравнения на равенство, и убедимся, что у нас все компилируется и работает. Ну хорошо. Мы рассмотрели пример с целыми числами, со строками. Это какие-то простые объекты. Давайте возьмем объекты посложнее. Вектор строк. Берем вектор строк, говорим что a — это вектор строк, и теперь он содержит какие-то слова, например, вот опять же у нас есть уже «огонь», у нас есть «земля» у нас есть «туман». Пусть будет здесь «вода», и b также станет вектором строк, и здесь будет «туман» и «воздух». Опять же я не трогаю вот эти строчки. Компилируем. Компилируется. Запускаем, программа работает, говорит, что вектор a не равен вектору b. Даже такие более сложные объекты, как вектора строк, сравниваются между собой естественным образом с помощью оператора =. И даже если мы заведем, например, словарь, давайте скажем, что a — это словарь из строки в число. [ЗВУК] Пусть мы напишем, что a... у нас уже был пример, когда мы отображали названия чисел в их значения, и скажем, что b — это тоже словарь из строки в число, ну и пускай оставим его пустым. Скомпилируем программу. Она снова компилируется. Запустим, увидим, что сообщение a не равно b — ну потому что в a у нас есть какая-то запись, а b — это пустой словарь. Таким образом вы видите, что объекты встроенных типов в C++, все встроенные типы в C++ можно сравнивать между собой естественным образом с помощью операторов сравнения. Ну и наконец, закрывая, завершая тему логических операций, давайте посмотрим на то, как их комбинировать. Ну, давайте мы объявим какую-то строку s, запишем в нее, например, "abc" и напишем условие: если s не пуста и s < чем "zzz", то вывести s. Компилируем, запускаем, и s действительно вывелось. Что вы здесь видите? Ну, вы видите здесь конъюнкцию. Собственно, здесь вы можете запомнить, что конъюнкция, то есть логическое и в C++ оформляется, как два знака амперсанда. Также вы здесь видите операцию логического отрицания, которая в C++ оформляется, как восклицательный знак, который идет перед логическим выражением. Ну и единственная вещь, которую мы не рассмотрели — это дизъюнкция. Она оформляется, как две вертикальные черты. Вот давайте скомпилируем, у нас все компилируется. Строка «abc» так же выводится, так что теперь вы знаете, как оформлять в C++ логическое и, или и отрицание. Давайте подведем итог. В этом видео вы узнали, что сравнение любых встроенных в C++ типов осуществляется с помощью операторов сравнения и не требует каких-то дополнительных, специальных функций. Ну и также мы посмотрели, как выполнять конъюнкцию, дизъюнкцию и отрицание.