Отметьте те выражения, результат которых вычислен правильно
№1)Отметьте те выражения, результат которых вычислен правильно:
b) not (30> 10) = false
c) (3>2) and (5>6) = true
d) (60>70) or (100<90) = true
e) (60>70) and (100<90) = true.
№2.) Предположим А:=5; B:=10; C:=15.
Вычислите значение выражения (true, false):
Выражение Результат Выражение Результат
(А=В) or (A<=B) Not (A>=5)
(А=В) and (A<=B) (С=А+В) or (B>C)
not(A=B) and (A<B) (С<=А-В) or (B<C)
(В<=12)оr(С=15) (С<=А+В) or (B>C)
(B<=12)and(C=15) (С=А+В) and(B<C)
Отметьте те выражения, результат которых вычислен правильно:
№1)Отметьте те выражения, результат которых вычислен правильно: a) 60>20 = true b) not (30> 10).
правильно ли вычислен интеграл?
Необходимо вычислить неопределённый интеграл: 1.78\int(1-0,01x)^8dx У меня получилось.
Отметьте правильно записанные операторы
В программе имеются следующие описания переменных: Type matr=Array of real; Var a : ^matr; b .
Объяснить результат и вывести на экран результат логического выражения
Объяснить результат и вывести на экран результат логического выражения T = S для заданных значений.
неправильно вычислен факториал, подредактируйте
Вычислить на ЭВМ значение суммы членов ряда с заданной точностью 8.На печать вывести значение суммы.
ЧПУ. Замена строк, регулярные выражения. Как правильно использовать переменную в регулярные выражения ?
Здравствуйте! Решил реализовать ЧПУ на своем сайте. Первый этап это замена всех реальных ссылок на.
результат выражения
написать программу, которая по заданному натуральному значению n вычисляет результат выражения .
Результат выражения
Написать программу, которая по заданному натуральному значению вычисляет результат выражения
Отметьте выражения значения которых равны true
Отметьте те выражения, результат которых вычислен правильно
№1)Отметьте те выражения, результат которых вычислен правильно:
b) not (30> 10) = false
c) (3>2) and (5>6) = true
d) (60>70) or (100<90) = true
e) (60>70) and (100<90) = true.
№2.) Предположим А:=5; B:=10; C:=15.
Вычислите значение выражения (true, false):
Выражение Результат Выражение Результат
(А=В) or (A<=B) Not (A>=5)
(А=В) and (A<=B) (С=А+В) or (B>C)
not(A=B) and (A<B) (С<=А-В) or (B<C)
(В<=12)оr(С=15) (С<=А+В) or (B>C)
(B<=12)and(C=15) (С=А+В) and(B<C)
Отметьте те выражения, результат которых вычислен правильно:
№1)Отметьте те выражения, результат которых вычислен правильно: a) 60>20 = true b) not (30> 10).
правильно ли вычислен интеграл?
Необходимо вычислить неопределённый интеграл: 1.78\int(1-0,01x)^8dx У меня получилось.
Отметьте правильно записанные операторы
В программе имеются следующие описания переменных: Type matr=Array of real; Var a : ^matr; b .
Объяснить результат и вывести на экран результат логического выражения
Объяснить результат и вывести на экран результат логического выражения T = S для заданных значений.
неправильно вычислен факториал, подредактируйте
Вычислить на ЭВМ значение суммы членов ряда с заданной точностью 8.На печать вывести значение суммы.
ЧПУ. Замена строк, регулярные выражения. Как правильно использовать переменную в регулярные выражения ?
Здравствуйте! Решил реализовать ЧПУ на своем сайте. Первый этап это замена всех реальных ссылок на.
результат выражения
написать программу, которая по заданному натуральному значению n вычисляет результат выражения .
Результат выражения
Написать программу, которая по заданному натуральному значению вычисляет результат выражения
Name already in use
Python-course-stepik.org- / 1.-Operators.-Variables.-Data-types.-Conditions / 1.11
- Go to file T
- Go to line L
- Copy path
- Copy permalink
Copy raw contents
Copy raw contents
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Логические выражения и таблица истинности
Таблица истинности — таблица, показывающая, какие значения принимает составное высказывание при всех сочетаниях (наборах) значений входящих в него простых высказываний.
Логическое выражение — составные высказывания в виде формулы.
Равносильные логические выражения – логические выражения, у которых последние столбцы таблиц истинности совпадают. Для обозначения равносильности используется знак «=».
Алгоритм построения таблицы истинности:
1. подсчитать количество переменных n в логическом выражении;
2. определить число строк в таблице по формуле m=2 n , где n — количество переменных;
3. подсчитать количество логических операций в формуле;
4. установить последовательность выполнения логических операций с учетом скобок и приоритетов;
5. определить количество столбцов: число переменных + число операций;
6. выписать наборы входных переменных;
7. провести заполнение таблицы истинности по столбцам, выполняя логические операции в соответствии с установленной в пункте 4 последовательностью.
Заполнение таблицы:
1. разделить колонку значений первой переменной пополам и заполнить верхнюю часть «0», а нижнюю «1»;
2. разделить колонку значений второй переменной на четыре части и заполнить каждую четверть чередующимися группами «0» и «1», начиная с группы «0»;
3. продолжать деление колонок значений последующих переменных на 8, 16 и т.д. частей и заполнение их группами «0» или «1» до тех пор, пока группы «0» и «1» не будут состоять из одного символа.
Пример 1. Для формулы A/\ (B \/ ¬B /\¬C) постройте таблицу истинности.
Количество логических переменных 3, следовательно, количество строк — 2 3 = 8.
Количество логических операций в формуле 5, количество логических переменных 3, следовательно количество столбцов — 3 + 5 = 8.

Пример 2. Определите истинность логического выражения F(А, В) = (А\/ В)/\(¬А\/¬В) .
1. В выражении две переменные А и В (n=2).
2. mстрок=2 n , m=2 2 =4 строки.
3. В формуле 5 логических операций.
4. Расставляем порядок действий
1) А\/ В; 2) ¬А; 3) ¬В; 4) ¬А\/¬В; 5) (А\/ В)/\(¬А\/¬В).
5. Кстолбцов=n+5=2+5=7 столбцов.
А
В
А\/ В
¬А
¬В
¬А\/¬В
F
0
1
1
0
Вывод: логическое выражение принимает значение истина при наборах F(0,1)=1 и F(1,0)=1.
Пример 3. Построёте таблицу истинности для логического выражения
F = (A\/ B) /\ ¬С
- В данной функции три логические переменные – А, В, С
- количество строк таблицы = 2 3=8
- В формуле 3 логические операции.
- Расставляем порядок действий
1) А\/ В; 2) ¬С; 3) (AVB) /\ ¬С .
- количество столбцов таблицы = 3 + 3 = 6
А
В
С
A\/B
(A\/B) /\ ¬С
0
0
1
0
1
0
1
0
Пример 4. Определите истинность формулы: F = ((С \/В) => В) /\ (А /\ В) => В.
Построим таблицу истинности этой формулы.

Ответ: формула является тождественно истинной.
Пример 5. Символом F обозначено одно из указанных ниже логических выражений от трех аргументов: X, Y, Z.
Дан фрагмент таблицы истинности выражения F:
Какое выражение соответствует F?
Решение (вариант 1, через таблицы истинности):
Чтобы решить данную задачу можно построить часть таблицы истинности для каждой из четырех функций, заданных в ответе для заданных наборов входных переменных, и сравнить полученные таблицы с исходной:
X
Y
Z
F
¬X/\¬Y/\Z
¬X\/¬Y\/Z
X\/Y\/¬Z
X\/Y\/Z
1
1
0
0
1
1
Очевидно, что значения заданной функции F совпадают со значениями выражения X\/Y\/¬Z. Следовательно, правильный ответ – 3.
Ответ: 3
Решение (Вариант 2):
Чтобы не строить таблицу истинности для каждого выражения, можно просто перепроверить предложенные ответы по заданной таблице истинности. Т.е. в каждую из четырех предложенных функций последовательно подставлять значения переменных X, Y и Z, из заданной таблицы истинности и вычислять значения логического выражения. Если значения вычисляемого выражения совпадут со значением F во всех трех строчках заданной таблицы, то это и есть искомое выражение.
Рассмотрим данный конкретный пример:
1) первое заданное выражение ¬X/\¬Y/\Z = 0 при X=0, Y=0, Z=0, что не соответствует первой строке таблицы;
2) второе заданное выражение ¬X\/¬Y\/Z = 1 при X=0, Y=0, Z=1, что не соответствует второй строке таблицы;
3) третье выражение X\/Y\/¬Z соответствует F при всех предложенных комбинациях X,Y и Z;
4) четвертое выражение X\/Y\/Z = 1 при X=0, Y=0, Z=1, что не соответствует второй строке таблицы.
Функция ЕСЛИ в EXCEL
Функция ЕСЛИ() относится к наиболее часто используемым функциям. Поэтому рассмотрим ее подробно.
Синтаксис функции
ЕСЛИ(лог_выражение;значение_если_истина;[значение_если_ложь])
Функция имеет 3 аргумента.
Лог_выражение — любое значение или выражение, принимающее значения ИСТИНА или ЛОЖЬ. Например, выражение A1>100. Если в ячейке А1 содержится значение 102, то выражение A1>100 вернет ИСТИНА, т.к. 102>100. Если в ячейке А1 содержится значение 88, то выражение вернет ЛОЖЬ, т.к. неравенство 88>100 неверно. Полностью формула может выглядеть так =ЕСЛИ(A1>100;»Бюджет проекта превышен»;»ОК!») Если в ячейке A1 содержится значение большее 100, то формула вернет текстовое значение Бюджет проекта превышен, а если меньше 100 или равное 100, то будет выведено ОК!
Других значений кроме ИСТИНА или ЛОЖЬ логическое выражение вернуть не может. Любое число кроме 0 в первом аргументе будет преобразовано в ИСТИНА, ноль — в ЛОЖЬ. Если ошибочно будет указано текстовое значение, то функция вернет ошибку #ЗНАЧ!.
Примечание : Ошибка #ЗНАЧ! может быть также из-за ошибок в выражениях указанных во втором и третье аргументе.
Второй аргумент — Значение_если_истина и третий аргумент значение_если_ложь
Как было показано выше, если логическое выражение (первый аргумент функции) принимает значение ИСТИНА, то функция возвращает значение из второго аргумента значение_если_истина. Соответственно, если логическое выражение принимает значение ЛОЖЬ, то функция возвращает значение из третьего аргумента значение_если_ложь .
Второй и третий аргумент могут быть любым значением (число или текст) или являться выражением (формулой с функциями). Например формула =ЕСЛИ(A1>100;0;А1*1%) позволяет вычислять премию для проектов, в которых не было превышения бюджета (>100). Если бюджет превышен (в А1 введено значение 200 или любое другое более 100), то формула вернет 0, если в А1 введено значение менее 100, то будет вычислено значение премии А1*1% (т.е. если в А1 число 90, то формула вернет 0,9).
Если в качестве второго и третьего аргументов введено выражение, то оно может содержать и функции, например: =ЕСЛИ(A1>100;СУММ(B1:B10);СУММ(C1:C10)) Т.е. если в ячейке A1 содержится значение >100, то суммирование ведется по столбцу B , а если меньше или равно 100, то по столбцу С . Не забывайте, что при значении А1 = 100 в данном случае будет срабатывать выражение из аргумента значение_если_ложь.
Аргумент значение_если_ложь можно опустить (не вводить), тогда при значении логического выражения =ЛОЖЬ будет выведено ЛОЖЬ. Например, если в А1 содержится 600, то формула =ЕСЛИ(A1>=1000;»Больше или равно 1000″) вернет просто ЛОЖЬ. Понятно, что при значении логического выражения =ИСТИНА будет выведено «Больше или равно 1000», т.е. второй аргумент функции ЕСЛИ() — Значение_если_истина.
Вложенные ЕСЛИ (несколько условий)
Для построения более сложных проверок в одной формуле можно использовать несколько функций ЕСЛИ(). Для этого в качестве значений аргументов значение_если_истина и значение_если_ложь введите еще одно условие с функцией ЕСЛИ(). Например, для проверки в какой диапазон попадает значение из ячейки А8 запишите формулу
- Если значение из ячейки А8 менее 5, то будет выведено 1
- Если значение из ячейки А8 более 10, то будет выведено 3
- Если значение из ячейки А8 между 5 и 10 (включая 5 и 8), то будет выведено 2
Примечание : В версии EXCEL 2007 можно использовать до 64 вложенных друг в друга функций ЕСЛИ(). Но, пожалуйста, не делайте так. Такой подход чреват ошибками.
Примечание : Формулу =ЕСЛИ(A8 10;3;2)) можно переписать как =ЕСЛИ(A8>=5;ЕСЛИ(A8>10;3;2);1) или ЕСЛИ(A8>=5;ЕСЛИ(A8>10;3;2);1)
или более сложный вариант =ЕСЛИ(A8
Формула =ЕСЛИ(A8 10;3;2)) работает следующим образом: сначала вычисляется логическое выражение A8 =5, то EXCEL переходит к вычислению выражения ЕСЛИ(A8>10;3;2). Опять сначала вычисляется логическое выражение A8>10. Если оно истинно, то выводится 3, вычисления завершены. Если оно ложно, то выводится 2, вычисления завершены.
Чтобы грамотно написать формулу с вложенными ЕСЛИ() следуйте следующим простым правилам:
1) Определитесь с диапазонами:
1.1) они не должны пересекаться. В примере выше — 3 диапазона и значение из А8 гарантированно попадет только в один из них. Было бы ошибкой написать формулу типа =ЕСЛИ(A8 10;3;ЕСЛИ(A8 10;3;2)) на интересует вся числовая ось от минус бесконечности до +бесконечности. И все 3 диапазона полностью покрывают эту область.
1.3.) Не забудьте ставить знак равно, чтобы при значениях А8 совпадающих с границами интервалов не было неправильных вычислений. Например, если в формуле =ЕСЛИ(A8>=5;ЕСЛИ(A8>10;3;2);1) забыть указать знак = в логическом выражении A8>=5, то при А8=5 формула =ЕСЛИ(A8>5;ЕСЛИ(A8>10;3;2);1) вернет 1, тогда как исходная формула вернет 2.
Примечание: В перечисленных выше случаях логические выражения вычисляются на основании одной переменной А8. Иногда нужно придумывать формулы с ЕСЛИ(), зависящие от 2-х и более ячеек: =ЕСЛИ(B8>=5;ЕСЛИ(A8>10;3;2);1). Это гораздо сложнее, но, конечно, возможно. Следуйте правилам 1.1)-1.3) и следите за диапазонами. Еще сложнее, если обе переменных являются зависимыми, т.е. например B8 вычисляется на основании А8. Написание таких формул требует предельной аккуратности и напрямую связано с корректностью формулирования самой задачи (возможно вы не продумали до конца как использовать такую сложную зависимость). Советую по возможности разбить вычисления на 2 или более формулы, чтобы проще контролировать результат вычисления.
2) Правильно записывайте логические выражения. Например, условие 5 10;3;2)) в строке формул можно записать как
Для этого поставьте курсор перед вторым ЕСЛИ(), нажмите и удерживайте клавишу ALT, нажмите ENTER.
4) для отладки вложенных ЕСЛИ вместо реальных вычислений (V8*10%-37500) используйте простые значения — последовательности 1; 2; 3 . Это покажет какой блок вложенных ЕСЛИ() срабатывает.
5) В ряде случаев от вложенных ЕСЛИ можно отказаться. Рассмотрим пример определения размера проекта от его бюджета
=ЕСЛИ(A1>=100;»Очень крупный проект»;
ЕСЛИ(A1>=90;»Крупный проект»;
ЕСЛИ(A1>=50;»Средний проект»;»Малый проект «)))
Вышеуказанную формулу можно усложнять и дальше, но есть другие подходы. Ниже приведено 2 эквивалентные формулы:
Для функции ВПР() необходимо создать в диапазоне A3:B6 таблицу значений:

Формула =ПРОСМОТР(A1; ; ) выглядит необычно, но по сути второй аргумент , как и третий аргумент это запись содержимого 4-х ячеек. Вместо можно записать ссылку на диапазон ячеек, содержащих 4 значения 0;50;90;100. Круглые скобки нужны, чтобы сообщить, что в функцию передается не одно значение, а целый массив.
Еще пример. Пусть требуется вывести разный текст (например » 0″) в случае наличия в ячейке А1 отрицательного значения, положительного значения или 0. Это можно сделать без вложенных ЕСЛИ():
Примечание : -1E+307 — это самое маленькое отрицательное число в EXCEL, 1E-307 — это самое маленькое положительное число. Таким образом задается 3 диапазона: от минус бесконечности до 0 (0 не включая); 0 (диапазон состоит только из одного значения 0); от 0 до +бесконечности (0 не включая).
Второй массив можно заменить ссылкой на диапазон, например для того чтобы вывести результат вычисления формул:
Диапазон A27:A29 должен, понятно, содержать формулы (см. файл примера).
Опущен третий аргумент [значение_если_ложь]
Третий аргумент функции не обязателен. Если логическое условие не выполнено, т.е. ЛОЖЬ, а третий аргумент функции не указан, то функция вернет также значение ЛОЖЬ. Например:
Если в ячейке A1 содержится значение 1, то вышеуказанная формула вернет значение ЛОЖЬ.
Сложные логические выражения
В аргументе Лог_выражение можно использовать как простые сравнения типа F1>10, так и более сложные конструкции на основе функций И(), ИЛИ(), НЕ() и их комбинаций.
Основное правило — логические функции и их комбинации возвращают только одно из 2х логических значений: ЛОЖЬ или ИСТИНА.
Приведем несколько полезных примеров.
Формула =ЕСЛИ(ИЛИ(A1;A2);0;2) проверяет одновременность равенства значений А1 и А2 нулю. Если оба значения равны 0, то формула вернет 2. Во всех других случаях будет возвращен 0. А1 и А2 не должны быть пустыми ячейками.
Формула =ЕСЛИ(ИЛИ(A1=0;A2=0);0;2) проверяет равенство 0 хотя бы одного значения из А1 и А2.
Формула =ЕСЛИ(НЕ(A1>0);1;2) эквивалентна формуле =ЕСЛИ(A1 10″) . Аналогичный результат (23) можно получить с помощью формулы массива =СУММ(ЕСЛИ(A6:A11>10;A6:A11)) (для ввода формулы в ячейку вместо ENTER нужно нажать CTRL+SHIFT+ENTER )
Теперь подсчитаем количество вхождений чисел больше 10 в диапазоне ячеек A6:A11 =СЧЁТЕСЛИ(A6:A11;»>10″) . Аналогичный результат (2) можно получить с помощью формулы массива =СЧЁТ(ЕСЛИ(A6:A11>10;A6:A11))
Теперь, когда принцип понятен, с помощью функции ЕСЛИ() можно конструировать и другие формулы с условиями. Например, нахождение минимального значения среди чисел больше 10: =МИН(ЕСЛИ(A6:A11>10;A6:A11))
Отметьте выражения значения которых равны true
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Укажи все выражения, значения которых равны 6. Варианты ответов: 24 : 4 18 : 2 30 : 5 42 : 7 48 : 6 36 : 6 21 : 3 54
Мы отправили письмо со ссылкой на смену пароля на username@mail.ru.
Если письма нет, проверь папку «Спам».
Чтобы вопрос опубликовался, войди или зарегистрируйся
Нужна регистрация на Учи.ру
«Ваш урок» теперь называется Учи.Ответы. Чтобы зайти на сайт, используй логин и пароль от Учи.ру. Если у тебя их нет, зарегистрируйся на платформе.
Операторы сравнения
Осваивайте профессию, начните зарабатывать, а платите через год!

Курсы Python Акция! Бесплатно!

Станьте хакером на Python за 3 дня

Веб-вёрстка. CSS, HTML и JavaScript


Курс Bootstrap 4

Станьте веб-разработчиком с нуля

В этом уроке описаны операторы сравнения. Эти операторы (такие как «меньше» < , «больше» > , «меньше или равно» <= и т.д.) проверяют равенство или неравенство операндов и возвращают в качестве результата значение true или false в зависимости от того, как соотносятся операнды.
JavaScript: Операторы сравнения
Операторы сравнения позволяют сравнивать два значения между собой и, если условие выполнено, возвращают true , а если нет — false .
Выражения сравнения всегда возвращают логические значения, которые широко применяются в инструкциях if , while или for для управления ходом исполнения программы.
Полный список операторов сравнения в JavaScript приведен в следующей таблице:
| Оператор | Описание | Пример | Результат |
|---|---|---|---|
| == | Равно | 10 == 20 | false |
| === | Строго равно (идентичность) | «20» === 20 | false |
| != | Не равно | 10 != 20 | true |
| !== | Строго не равно | 20! == 20 | false |
| > | Больше чем | 20 > 10 | true |
| >= | Больше или равно | 20 >= 10 | true |
| < | Меньше чем | 20 < 10 | false |
| <= | Меньше или равно | 20 <= 10 | false |
Равенство (==) и неравенство (!=)
Оба оператора принимают операнды любого типа и, если операнды равны, оператор равенства == возвращает true , а оператор неравенства != возвращает – false .
Получив операнды разных типов, эти операторы пытаются привести их к одному типу и сравнивают уже преобразованные значения.
Логические выражения и таблица истинности
Таблица истинности — таблица, показывающая, какие значения принимает составное высказывание при всех сочетаниях (наборах) значений входящих в него простых высказываний.
Логическое выражение — составные высказывания в виде формулы.
Равносильные логические выражения – логические выражения, у которых последние столбцы таблиц истинности совпадают. Для обозначения равносильности используется знак «=».
Алгоритм построения таблицы истинности:
1. подсчитать количество переменных n в логическом выражении;
2. определить число строк в таблице по формуле m=2 n , где n — количество переменных;
3. подсчитать количество логических операций в формуле;
4. установить последовательность выполнения логических операций с учетом скобок и приоритетов;
5. определить количество столбцов: число переменных + число операций;
6. выписать наборы входных переменных;
7. провести заполнение таблицы истинности по столбцам, выполняя логические операции в соответствии с установленной в пункте 4 последовательностью.
Заполнение таблицы:
1. разделить колонку значений первой переменной пополам и заполнить верхнюю часть «0», а нижнюю «1»;
2. разделить колонку значений второй переменной на четыре части и заполнить каждую четверть чередующимися группами «0» и «1», начиная с группы «0»;
3. продолжать деление колонок значений последующих переменных на 8, 16 и т.д. частей и заполнение их группами «0» или «1» до тех пор, пока группы «0» и «1» не будут состоять из одного символа.
Пример 1. Для формулы A/\ (B \/ ¬B /\¬C) постройте таблицу истинности.
Количество логических переменных 3, следовательно, количество строк — 2 3 = 8.
Количество логических операций в формуле 5, количество логических переменных 3, следовательно количество столбцов — 3 + 5 = 8.

Пример 2. Определите истинность логического выражения F(А, В) = (А\/ В)/\(¬А\/¬В) .
1. В выражении две переменные А и В (n=2).
2. mстрок=2 n , m=2 2 =4 строки.
3. В формуле 5 логических операций.
4. Расставляем порядок действий
1) А\/ В; 2) ¬А; 3) ¬В; 4) ¬А\/¬В; 5) (А\/ В)/\(¬А\/¬В).
5. Кстолбцов=n+5=2+5=7 столбцов.
А
В
А\/ В
¬А
¬В
¬А\/¬В
F
0
1
1
0
Вывод: логическое выражение принимает значение истина при наборах F(0,1)=1 и F(1,0)=1.
Пример 3. Построёте таблицу истинности для логического выражения
F = (A\/ B) /\ ¬С
- В данной функции три логические переменные – А, В, С
- количество строк таблицы = 2 3=8
- В формуле 3 логические операции.
- Расставляем порядок действий
1) А\/ В; 2) ¬С; 3) (AVB) /\ ¬С .
- количество столбцов таблицы = 3 + 3 = 6
А
В
С
A\/B
(A\/B) /\ ¬С
0
0
1
0
1
0
1
0
Пример 4. Определите истинность формулы: F = ((С \/В) => В) /\ (А /\ В) => В.
Построим таблицу истинности этой формулы.

Ответ: формула является тождественно истинной.
Пример 5. Символом F обозначено одно из указанных ниже логических выражений от трех аргументов: X, Y, Z.
Дан фрагмент таблицы истинности выражения F:
Какое выражение соответствует F?
Решение (вариант 1, через таблицы истинности):
Чтобы решить данную задачу можно построить часть таблицы истинности для каждой из четырех функций, заданных в ответе для заданных наборов входных переменных, и сравнить полученные таблицы с исходной:
X
Y
Z
F
¬X/\¬Y/\Z
¬X\/¬Y\/Z
X\/Y\/¬Z
X\/Y\/Z
1
1
0
0
1
1
Очевидно, что значения заданной функции F совпадают со значениями выражения X\/Y\/¬Z. Следовательно, правильный ответ – 3.
Ответ: 3
Решение (Вариант 2):
Чтобы не строить таблицу истинности для каждого выражения, можно просто перепроверить предложенные ответы по заданной таблице истинности. Т.е. в каждую из четырех предложенных функций последовательно подставлять значения переменных X, Y и Z, из заданной таблицы истинности и вычислять значения логического выражения. Если значения вычисляемого выражения совпадут со значением F во всех трех строчках заданной таблицы, то это и есть искомое выражение.
Рассмотрим данный конкретный пример:
1) первое заданное выражение ¬X/\¬Y/\Z = 0 при X=0, Y=0, Z=0, что не соответствует первой строке таблицы;
2) второе заданное выражение ¬X\/¬Y\/Z = 1 при X=0, Y=0, Z=1, что не соответствует второй строке таблицы;
3) третье выражение X\/Y\/¬Z соответствует F при всех предложенных комбинациях X,Y и Z;
4) четвертое выражение X\/Y\/Z = 1 при X=0, Y=0, Z=1, что не соответствует второй строке таблицы.
Отметьте выражения значения которых равны true
Может ли в JavaScript конструкция (a==1 && a==2 && a==3) оказаться равной true?
Недавно по Твиттеру и Реддиту гулял интересный кусок кода на JavaScript. Вопрос, связанный с ним, заключался в следующем: «Может ли выражение (a==1 && a==2 && a==3) вернуть true ?». Ответ на вопрос, как ни странно, был положительным.

Сегодня мы разберём этот код и постараемся его понять.
Если вы используете Google Chrome, откройте консоль инструментов разработчика с помощью комбинации клавиш Ctrl + Shift + J в Windows, или Cmd + Opt + J в macOS. Скопируйте этот код, вставьте в консоль и убедитесь в том, что на выходе и правда получается true .
В чём тут подвох?
На самом деле, ничего удивительного тут нет. Просто этот код использует две базовые концепции JavaScript:
- Оператор нестрогого равенства.
- Метод объекта valueOf() .
Оператор нестрогого равенства
Обратите внимание на то, что в исследуемом выражении, (a==1 && a==2 && a==3) , применяется оператор нестрогого равенства. Это означает, что в ходе вычисления значения этого выражения будет использоваться приведение типов, то есть, с помощью == сравнивать можно значения разных типов. Я уже много об этом писал, поэтому не буду тут вдаваться в подробности. Если вам нужно вспомнить особенности работы операторов сравнения в JS — обратитесь к этому материалу.
Метод valueOf()
В JavaScript имеется встроенный метод для преобразования объекта в примитивное значение: Object.prototype.valueOf() . По умолчанию этот метод возвращает объект, для которого он был вызван.
Как сказано выше, когда мы вызываем valueOf() для объекта a , он просто возвращает сам объект:
Кроме того, мы можем использовать typeOf() для проверки того, действительно ли valueOf() возвращает объект:
Пишем свой valueOf()
Самое интересное при работе с valueOf() заключается в том, что мы можем этот метод переопределить для того, чтобы конвертировать с его помощью объект в примитивное значение. Другими словами, можно использовать valueOf() для возврата вместо объектов строк, чисел, логических значений, и так далее. Взгляните на следующий код:
Здесь мы заменили стандартный метод valueOf() для объекта a . Теперь при вызове valueOf() возвращается значение a.num .
Всё это ведёт к следующему:
Как видно, теперь valueOf() возвращает 0! Самое главное здесь то, что 0 — это то значение, которое назначено свойству объекта a.num . Мы можем в этом удостовериться, выполнив несколько тестов:
Теперь поговорим о том, почему это важно.
Операция нестрогого равенства и приведение типов
При вычислении результата операции нестрогого равенства для операндов различных типов JavaScript попытается произвести приведение типов — то есть он сделает попытку привести (конвертировать) операнды к похожим типам или к одному и тому же типу.
В нашем выражении, (a==1 && a==2 && a==3) , JavaScript попытается привести объект a к числовому типу перед сравнением его с числом. При выполнении операции приведения типа для объекта JavaScript, в первую очередь, попытается вызвать метод valueOf() .
Так как мы изменили стандартный метод valueOf() так, что теперь он возвращает значение a.num , которое является числом, теперь мы можем сделать следующее:
Неужто задача решена? Пока нет, но осталось — всего ничего.
Оператор присваивания со сложением
Теперь нам нужен способ систематически увеличивать значение a.num каждый раз, когда вызывается valueOf() . К счастью, в JavaScript есть оператор присваивания со сложением, или оператор добавочного присваивания ( += ).
Этот оператор просто добавляет значение правого операнда к переменной, которая находится слева, и присваивает этой переменной полученное значение. Вот простой пример:
Как видите, каждый раз, когда мы используем оператор присваивания со сложением, значение переменной увеличивается! Используем эту идею в нашем методе valueOf() :
Вместо того чтобы просто возвращать this.num , мы теперь, при каждом вызове valueOf() , будем возвращать значение this.num , увеличенное на 1 и записывать новое значение в this.num .
После того, как в код внесено это изменение, мы наконец можем всё опробовать:
Пошаговый разбор
Помните о том, что при использовании оператора нестрогого равенства JS пытается выполнить приведение типов. Наш объект вызывает метод valueOf() , который возвращает a.num += 1 , другими словами, возвращает значение a.num , увеличенное на единицу при каждом его вызове. Теперь остаётся лишь сравнить два числа. В нашем случае все сравнения выдадут true .
Возможно, полезно будет рассмотреть происходящее пошагово:
Итоги
Полагаем, примеры, подобные разобранному выше, помогают, во-первых, лучше изучить базовые возможности JavaScript, а во-вторых — не дают забыть о том, что в JS не всё является тем, чем кажется.
Уважаемые читатели! Если вы знаете о каких-нибудь курьёзах из области JavaScript — просим ими поделиться.
Тип Boolean, логические операторы и операторы сравнения
Логический тип Boolean в JavaScript представляет одно из двух значений: true (истина) или false (ложь).
Значения Boolean
В программировании очень часто бывают ситуации, когда требуется тип данных, который может принимать одно значение из двух, вроде
- ДА / НЕТ
- ВКЛ / ВЫКЛ
- ИСТИНА / ЛОЖЬ
Именно для этих случаев в JavaScript существует логический тип данных Boolean, который может принимать только значение true (истина) или false (ложь).
Функция Boolean()
Чтобы определить, является ли выражение (или переменная) истиной (возвращает значение true), можно воспользоваться функцией Boolean():
Или можно сделать еще проще:
Все имеет «значение» True или False
Любое значение отличное от 0 имеет логическое значение true.
Логическое значение 0 (ноль) — false.
Логическое значение -0 (минус ноль) — false.
Логическое значение «» (пустая строка) — false.
Логическое значение undefined — false.
Логическое значение null — false.
Логическое значение false — false.
Логическое значение NaN — false.
Значения типа Boolean могут быть объектами
Обычно, логические значения типа Boolean определяются примитивными литералами:
Однако, в JavaScript при помощи ключевого слова new логические значения также можно определить и как объекты:
Тем не менее, не определяйте значения типа Boolean как объекты. Это замедляет скорость выполнения скрипта. Кроме этого, ключевое слово new в данном случае усложняет код и может привести к неожиданным результатам:
При использовании оператора сравнения ==, одинаковые значения типа Boolean равны:
Однако, при использовании оператора сравнения ===, одинаковые значения типа Boolean не будут равными, потому что оператор === ожидает совпадения как по значению, так и по типу.
Или еще хуже. Объекты не сравниваются:
Обратите внимание на разницу между (x==y) и (x===y).
Сравнение двух объектов JavaScript всегда возвращает ложь (false).
Логические операторы и операторы сравнения
Логические операторы и операторы сравнения используются для проверки выражений и переменных на соответствие какому-либо условию.
Значения типа Boolean лежат в основе всех сравнений и условий в JavaScript.
Операторы сравнения
Операторы сравнения используются в логических выражениях для определения совпадения или различия между переменными или значениями.
Предположим, что у нас есть x = 5. Следующая таблица объясняет операторы сравнения:
| Оператор | Описание | Выражение | Возвращает |
|---|---|---|---|
| == | равно | x == 8 x == 5 x == «5» |
false true true |
| === | равно по значению и типу | x === 5 x === «5» |
true false |
| != | не равно | x != 8 | true |
| !== | не равно ни по значению, ни по типу | x !== 8 x !== 5 x !== «5» |
true false true |
| > | больше чем | x > 8 | false |
| < | меньше чем | x < 8 | true |
| >= | больше или равно | x >= 8 | false |
| <= | меньше или равно | x <= 8 | true |
Как это можно использовать
Операторы сравнения используются в выражениях условий для сравнения значений и принятия решения в зависимости от полученного результата:
Подробнее об условных выражениях будет рассказано в следующей главе этого учебника.
Логические операторы
Логические операторы используются для определения логической связи между переменными или значениями.
Предположим, у нас есть x = 6 и y = 3. Следующая таблица объясняет логические операторы:
| Оператор | Описание | Пример |
|---|---|---|
| && | И | (x < 10 && y > 1) — true |
| || | ИЛИ | (x == 5 || y == 5) — false |
| ! | НЕ | !(x == y) — true |
Оператор ! также используется для быстрого преобразования выражения к логическому значению:
Условный (тернарный) оператор
В JavaScript есть особый условный оператор, который присваивает переменной значение в зависимости от заданного условия.
имя_переменной = (условие) ? значение1 : значение2
В данном примере если в переменной age значение меньше 18, то переменной voteable будет присвоена строка «Слишком молод», в обратном случае переменной voteable будет присвоена строка «Возраст подходит».
Сравнение разных типов
Сравнение данных разного типа может привести к неожиданным результатам.
При сравнении строки и числа JavaScript будет преобразовывать строку в числовое значение. Пустая строка преобразуется в 0. Не числовая строка преобразуется в значение NaN, которое всегда равно false.
| Выражение | Значение |
|---|---|
| 2 < 12 | true |
| 2 < «12» | true |
| 2 < «John» | false |
| 2 > «John» | false |
| 2 == «John» | false |
| «2» < «12» | false |
| «2» > «12» | true |
| «2» == «12» | false |
При сравнении двух строк значение строки «2» будет больше значения строки «12», потому что в алфавитной последовательности 1 меньше 2.
Чтобы обезопасить результаты сравнения, переменные следует привести к надлежащему типу:
Запишите в ответе номера тех выражений, значение которых равно -5 1)-4*1,25+10 2)-4*(-1,25)-10 3) 4*(-1,25)-10 4) 4*1,25-10
В данном задании вам необходимо определить выражения, значения которых равны — 5.
- — 4 * 1,25 + 10.
- — 4 * (- 1,25) — 10.
- 4 * (- 1,25) — 10.
- 4 * 1,25 — 10.
Записываете решение первого выражения
- Сначала выполняем действие умножение: — 4 * 1,25 + 10 = — 5 + 10.
- Далее выполняете действие вычитание: — 5 + 10 = 5.
- Значение данного выражения равно 5.
Записываете решение второго выражения
- Сначала выполняете действие умножение: — 4 * (- 1,25) — 10 = 5 — 10.
- Далее выполняете действие вычитание: 5 — 10 = — 5.
- Значение данного выражения равно — 5.
Записываете решение третьего выражения
- Сначала выполняем действие умножение: 4 * (- 1,25) — 10 = — 5 — 10.
- Затем складываете отцательные числа: — 5 — 10 = — 15.
- Значение данного выражения равно — 15.
Записываете решение четвёртого выражения
- Выполняете действие умножение: 4 * 1,25 — 10 = 5 — 10.
- Затем выполняете действие вычитание 5 — 10 = — 5.
- Значение данного выражения равно — 5.
Следовательно, правильный вариант ответа номер 2 и 4.
Ответ: номер 2 и номер 4.
Определим значение следующих выражений. Записываем полученное решение.
1) — 4 * 1,25 + 10 = — 5 + 10 = 5.
Выполняем действие умножение и вычитание. В результате получается ответ равный 5.
Выполняем действие умножение и вычитание. В результате получается ответ равный — 5.
Выполняем действие умножение и складываем отрицательные числа. В результате получается ответ равный — 15.
4) 4 * 1,25 — 10 = 5 — 10 = — 5.
Выполняем действие умножение и вычитание. В результате получается ответ равный — 5.