Проект закрыт, ничего заказать и купить нельзя! Существует лишь для ностальгии создателя!

Логический (булев) тип данных Паскаль. Логические операции not, and, or.

Pascal 2016-02-27 в 11:23 2620

После того, как мы освоили оператор if, нужно научиться составлять логические выражения c применением таких логических операций, как not, and, or.

Переменные булева типа (Boolean) принимают значение true (ИСТИНА) или false (Ложь). Эти величины упорядочены таким образом, что false < true.

Описываются они в разделе описания переменных.


var
 flag : boolean;

Логическим (булевым) выражением называется выражение, имеющее значение типа Boolean

Операции логического выражение связаны между собой знаками логических операций или операциями отношения.

Операции отношения:

  • < - меньше
  • <= - меньше или равно
  • = - равно
  • > - больше
  • >= - больше или равно
  • <> - не равно

Логические операции:

  • and - логическое умножение (И)
  • or - логическое сложение (ИЛИ)
  • not - логическое отрицание (НЕ)
  • xor - исключающее или

Примеры

  • 5 > 2 - true
  • 7 <= 0 - false
  • (5 > 2) and (7 <= 0) - false
  • (5 > 2) or (7 <=0 ) - true

Операции отношения применимы к операндам любого простого типа.

Логические операции допустимы только по отношению к операндам (константам, переменным, функциям) логического типа. Их действие иллюстрируется следующей таблицей

x y not x x and y x or y x xor y
false false true false false false
false true true false true true
true false false false true true
true true false true true false

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

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

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

Если логические операции и отношения встречаются в одном логическом выражении, то отношения имеют меньший приоритет, поэтому их необходимо заключать в скобки, например условие x∈[a,b], x∈[c,d] можно представить как


(x >= a) and (x <= b) or (x >= c) and (x <=d)

Приоритет операций при вычислении значения логического выражения следующий:

  1. выражения в скобках
  2. логическое отрицание not
  3. логическое умножение and
  4. логическое сложение or, исключающее или xor
  5. операции отношения

Пример


(-3 >= 5) or not (7 < 9) and (0 <= 3)

Порядок в этом примере следующий:

  1. (-3 >= 5)
  2. (7 < 9)
  3. (0 <= 3)
  4. not (7 < 9)
  5. not (7 < 9) and (0 <= 3)
  6. (-3>=5) or not (7<9) and (0<=3)

Пример программы

Даны три числа a, b и c. Вычислить и вывести на экран дисплея значение z, равное квадрату большего из них.

Проектирование схемы алгоритма и построение решения задачи по технолигии структурного программирования показано на рисунке.

технология структурного программирования

Программа реализации алгоритма


program square_maximal;
var
 a, b, c, s: real;
Function max (a,b,c: real): real;
 var
 z:real;
 begin
 if a > b then
 z := b
 else
 z := b;
 if c > z then 
 z := c;
 max:=z
end;
begin
 read(a, b, c);
 s := max(a, b, c) * max(a, b, c);
 write(s:5:1);
end.

В этом примере использовалась подпрограмма. Подпрограммы мы рассмотрим в следующих статьях.

Не можете справиться с заданием?
Специалисты нашего проекта помогут вам справиться с любыми заданиями по программированию!
Чтобы оставлять комментарии, необходимо войти или зарегистрироваться