Теоретический материал (Паскаль)

Логический тип данных. Логические операции not, and, or. Нахождение значений логических выражений

Переменные логического типа описываются посредством служебного слова Boolean. Они могут принимать только два значения - False (ложь) и True (истина). Описываются они в разделе описания переменных.

Var
  Flag : Boolean;

В языке Турбо Паскаль имеются логические операции, применяемые к переменным логического типа. Это операции not, and, or и хor. В этой теме Вы рассмотрите три логические операции. Обозначения и результаты этих операций приведены в таблице. Рассмотрите ее.

Операция not (НЕ) имеет один операнд и образует его логическое отрицание. Результат операции not есть False, если операнд истинен, и True, если операнд имеет значение ложь. Так,

not True False (неправда есть ложь)

not False True (не ложь есть правда)

Результат операции and (И) есть истина, только если оба ее операнда истинны, и ложь во всех других случаях.

Результат операции or (ИЛИ) есть истина, если какой-либо из ее операндов истинен, и ложен только тогда, когда оба операнда ложны.

Задание. Попробуйте определить результат выполнения булевых операций для высказываний:

  1. Школьник на зимних каникулах остается дома или уезжает куда-либо отдыхать.

  2. Филипп Киркоров является певцом и комбайнером.

  3. Школьниками являются мальчики и девочки.

Логические операции, операции отношения и арифметические операции часто встречаются в одном выражении. При этом отношения, стоящие слева и справа от знака логической операции, должны быть заключены в скобки, поскольку логические операции имеют более высокий приоритет. Вообще принят следующий приоритет операций:

  • not
  • and, *, /, div, mod
  • or, +, -
  • операции отношения.

Примечание. Логическую операцию and еще называют логическим умножением, а логическую операцию or - логическим сложением.

Кроме того, порядок выполнения операций может изменяться скобками. Например, расставим порядок действий в логическом выражении:

    4      3    2       1
A or B and not (A or B)

Сначала выполняется заключенная в скобки операция or, а затем операции not, and, or. Если подставить вместо переменных А и В значения True и False, то, используя уже рассмотренный порядок действий, получим значение всего выражения, равное True.

Задание. Вычислите значения выражений при a=10, b=20, c=true, d=false:

  • (a>5) and (b>5) and (a<20) and (b<30);
  • not (a<15) or not (b<30);
  • c or d and (b=20);

Внимание! В языке Паскаль нет возможности ввода логических данных с помощью оператора read. Однако предусмотрен вывод значений переменных логического типа с помощью оператора write.

Например, после выполнения оператора write (5>2) на экран будет выведено True.