Step 5 (S-12064)

From Stepik Wiki
Revision as of 01:01, 16 July 2017 by Valeriy Shagur (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/2413/step/5

Давайте рассмотрим пример логического выражения, которое содержит несколько операций. Заведем три логические переменные: x1, x2, x3, и присвоим им значения: False, True, False. Это можно сделать одной операцией. Перечислим через запятую имена переменных в левой части операции присвоения. Аналогичным образом в правой части перечислим значения этих переменных, в том порядке, в каком шли имена в левой части.

S-12064-2.png

Давайте рассмотрим выражение: not x1 or x2 and x3 и посмотрим на результат вычисления этого выражения. Мы получили результат - True.

S-12064-1.png


Как вычислялось это выражение? Наибольший приоритет имеет операция not, поэтому вначале вычисляется выражение not x1. Результат этого вычисления - True. После этого вычисления наше выражение будет иметь вид: True or x2 and x3. Как происходят вычисления далее? Операция and имеет более высокий приоритет, чем операция or, поэтому вычисляется x2 and x3 с результатом False. Таким образом получаем: True or False, результатом которого будет True.

S-12064-3.png

Какой был бы результат вычисления выражения, если оно вычислялось без использования приоритетов операций, а вычисления проводились по очереди, слева на право? Расставив скобки, укажем очередность выполнения вычислений. Получим выражение: ((not x1) or x2) and x3

S-12064-4.png

результатом которого будет False.