На этом уроке мы остановимся на логическом или булевском типе данных.
Этот тип данных представлен двумя значениями: true — истина и false — ложь. Для описания величин логического типа используется зарезервированное слово boolean. Для размещения в памяти переменной логического типа требуется 1 байт.
Логические выражения широко используются в условных операторах и операторах цикла для определения пути продолжения алгоритма.
Описание данных логического типа
Идентификатор типа
Допустимые значения
Размер выделяемой памяти
Пример описания величин логического типа:
flag, result: boolean;
Свои значения переменные логического типа получают обычно в результате выполнения операции сравнения (отношения): »» (больше), »=» (больше или равно), »<>» (не равно), »=» (равно).
Результат отношения равен TRUE, если отношение удовлетворяется для значений входящих в него операндов, а FALSE в противном случае. Простые условия, содержащие операции сравнения, можно соединить логическими связками (логическими операциями) и получить сложное условие или логическое выражение.
Логический тип | Информатика Паскаль #12 | Инфоурок
Логические операции
В языке программирования Паскаль для работы с логическими операндами введены следующие логические операции:
- not — отрицание (инверсия);
- and — конъюнкция (логическое умножение);
- or — дизъюнкция (логическое сложение, объединение);
- xor — исключающее или.
Результат работы операций задается следующей таблицей истинности (таблицей значений):
Значение операнда | Значение операции | ||||
a | b | not a | a and b | a or b | a xor b |
false | false | true | false | false | false |
false | true | true | false | true | true |
true | false | false | false | true | true |
true | true | false | true | false | false |
Урок 8 Логический тип Bool. Операции сравнения Python
Запомнить эту таблицу очень просто. Операция отрицание меняет значение операнда на противоположное.
Для того, чтобы результат операции логического умножения был истинен, все операнды должны быть истинны.
Для того чтобы логическое сложение дало истину, нужно, чтобы хотя бы один операнд был истинен.
Исключающее или дает истину, только если операнды имеют разные значения. Иногда эту операцию называют выбором альтернативы.
Логические операции, операции отношения и арифметические операции часто встречаются в одном выражении. Причем отношения, стоящие слева и справа от знака логической операции, должны быть заключены в скобки, поскольку логические операции имеют более высокий приоритет.
Вообще, в логическом выражении принят следующий приоритет операций:
- NOT
- AND,*, DIV, MOD
- OR, XOR, +, —
- операции сравнения
Порядок выполнения операций можно изменить скобками. Например, в логическом выражении A OR B AND NOT(A OR B) сначала выполняется заключенная в скобки операция OR, а затем операции NOT, AND, OR.
Стандартные логические функции
- odd(x) = true , если x нечетный ( x целый тип);
- eoln(x) = true , если встретился конец строки текстового файла x ;
- eof(x) = true , если встретился конец файла x .
В остальных случаях эти функции принимают значение false.
В языке Паскаль нет возможности ввода логических данных с помощью оператора read. Однако предусмотрен вывод значений переменных логического типа с помощью оператора write. В этом случае для идентификаторов FALSE и TRUE автоматически отводятся по 6 позиций: две — перед словом TRUE и одна — перед FALSE.
задачи для самостоятельного решения
- Определить значение логического выражения:(-3>=5) Or Not(7 <9) And(0<3)
- Чему равны значения переменных a и b после выполнения последовательности действий:
a := 15 Div (16 Mod 7); b := 34 Mod a *5 — 29 Mod 5*2;
a := 4 * 5 Div 3 Mod 2; b :=4 * 5 Div ( 3 Mod 2);
a := a*b; b:= b*b.
На этом уроке мы рассмотрели логический или булевский тип данных, который используется в условных операторах (if и case ), а также в операторах цикла.
На следующем уроке вы познакомитесь с условным оператором языка Паскаль.
Источник: gospodaretsva.com
3.2. Логический тип данных и базовые логические операции
При программировании алгоритмов с ветвлениями часто используется логический тип данных bool. Для величин этого типа существуют только два возможных значения:true(истина) иfalse(ложь). Логические значения обычно являются результатом операций сравнения (табл. 3.1).
Операции сравнения
Меньше или равно
Больше или равно
В языке С ++ допускается преобразовывать в логические значения числа: ноль соответствует значениюfalse, а любое отличное от нуля число преобразуется в значениеtrue.
Для типа boolопределены три стандартные логические операции и соответствующие им знаки операций: логическое умножение -И (), логическое сложение -ИЛИ (||)и логическое отрицание -НЕ (!) (табл. 3.2).
Логические операции
При решении задач с множеством логических условий программа существенно упрощается, если эти условия удается объединить с помощью операций и, или, не в более крупные выражения.
Например, при определении принадлежности точки (x,y) области [0xxmax, 0yymax] можно ввести одну интегрированную логическую переменную в следующем виде:
В результате для программной реализации алгоритма достаточно одного условного оператора:
Пример. Составить программу, которая для заданной точки(x,y)позволяет вычислять функциюzпо выражению
где области D1иD2представлены графически ианалитически:
D1:
Словесно-формульный алгоритм
- Ввод координат точки (x,y).
- Формирование интегрального условия принадлежности точки (x,y) областиD1 с помощью логической операции И:
d1 = (x 2 +y 2 1) И (y-x+1) И (yx– 1). 3. Вычисление значения функции zв областиD1с использованием промежуточных переменных: если d1=true, тоz1=|x 3 +1|;




Источник: studfile.net
#6 Boolean Логический тип данных. Логические выражения. Операции AND и OR. Таблицы истинности. Приоритет операция. Паскаль
Логический тип данных (boolean) служит для хранения значений, которые обладают одним из двух возможных состояний:
Логический тип данных нужен, чтобы программировать различные альтернативные действия, развивать сценарий программы различными путями, тем самым имитируя настоящую жизнь.
Переменные типа boolean
Объявление переменных логического типа
В коде программы переменные логического объявляются, по той же схеме, что и integer, но для указания типа используется ключевое слово boolean, например:
myVar: boolean; // объявляем одну переменную логического типа
var a, b, myVar: boolean; // объявляем три переменные логического типа списком.
Литералы логического типа (логические литеры) и присваивание значений переменным
Литеры логического типа — это два специальных слова, зарезервированных в рамках синтаксиса языка Паскаль.
Для обозначения истины используется литерал:
true
а для обозначение лжи литерал:
false
Оба этих значения могу быть присвоены переменным логического типа, например:
var a,b: boolean; begin a := true; b := false;
— как всегда, после операции присваивания, ставятся точка с запятой.
Значение переменных логического типа после объявления
Сразу после объявления переменные логического типа имеют значение false.
Логические операции. Таблицы истинности
Подобно арифметическим значениям для логических тоже можно строить выражения, но вместо арифметических операций для логических значений используются логические операции.
В этом уроке мы рассмотри три логические операции:
- OR — т.н. логическое ИЛИ (или «логическая сумма» или «дизъюнкция»).
- AND — т.н. логическое И (или «логическое умножение» или «конъюнкция»).
- Not — отрицание («инверсия»)
Операция OR (логическое ИЛИ) — логическая сумма
Операция OR принимает два операнда логического (boolean) типа (один слева другой справа) и возвращает результат, опять же, логического типа.
Правила работы операции, описываются т.н. таблицей истинности — то есть таблицей, которая показывает при каких значениях операндов какой именно результат мы получим.
Итак, построим таблицу истинности для операции OR, она будет выглядеть так:
a b a OR b false false false true false true false true true true true true
Если условно считать, что $true$ это $1$, а $false$ это $0$, то таблицу истинности логическое операции OR можно переписать так:
a b a OR b 0 0 0 1 0 1 0 1 1 1 1 1
— обычно её записывают в математике именно с нулями и единицами.
Или в виде картинки:
Посмотрим на любую из двух таблиц — можно видеть, что:
Операция $OR$ возвращает $true$, если хотя бы один аргумент истинен, а в остальных случаях $false$.
Проиллюстрируем это ещё одной картинкой:
Операция AND (логическое И) — логическое умножение
Операция AND, как и OR, принимает два операнда логического (boolean) типа (один слева другой справа) и возвращает результат, опять же, логического типа.
Её таблица истинности:
a b a AND b 0 0 0 1 0 0 0 1 0 1 1 1
Или в виде картинки:
Операция $AND$ возвращает $true$, только если оба аргумента истинны, а в остальных случаях $false$.
Если использовать более длинную форму записи, то получим:
a b a AND b false false false true false false false true false true true true
Ещё одна иллюстрация работы AND (логическое И):
Операция Not — отрицание (логическое отрицание)
В отличие от предыдущих двух операций, которые использовали два аргумента (их называют «бинарными») операция отрицания использует только один (правый) аргумент (т.н. «унарные», то есть использующие один аргумент).
Не правда — это ложь, а не ложь — это истина
— на этом высказывании и основа таблица истинности для операции not:
a Not a false true true false
Или:
Или ещё более красочная иллюстрация, объясняющая работу данной операции:
Логические выражения и порядок выполнения операций в них
Логические выражения — это выражения, результат которых имеет тип boolean.
Если в логическом выражении более одной операции, то они выполняются в некотором порядке, как именно мы посмотрим ниже.
Если есть скобки
Если есть в выражении есть скобки, то подвыражения вычисляются также как в математике — то есть сначала вычисляются те подвыражения, которые окружает наибольшее число скобок, например:
((true AND (false OR true)) AND false) = ((true AND true ) AND false) = ( true AND false) = false
Если в выражении только AND или только OR и нет скобок
Если используется одна и та же операция и нет скобок, то вычисление происходит слева направо, например (запишем, упрощая выражение):
true OR false OR true = (true OR false) OR true // то же самое со скобками = true OR true // после вычисления левого подвыражения = true // значение выражения (true OR false OR true)
— в последнем выражении мы указали по шагам как вычисляется выражение (скобками отметили первый шаг), сначала вычисляется самое левое подвыражение, и его результат используется как операнд для правого выражения.
Посчитаем значения для тех же самых операндов, но заменив OR на AND:
true AND false AND true = (true AND false) AND true // то же самое со скобками = false AND true // после вычисления левого подвыражения = false // значение выражения (true AND false AND true)
Если есть и OR и AND и без скобок. Приоритет операций
У операции AND более высокий приоритет, чем у OR, это значит, что в случае когда нет скобок, все подвыражения с AND вычисляются раньше, чем подвыражения с OR.
Поясним порядок вычисления выражения, скажем:
true AND false OR true AND true
— это выражение эквивалентно выражению со скобками (в силу приоритета AND над OR — точно так же как арифметическое умножение выполняется раньше сложения в ситуации, когда нет скобок):
(true AND false) OR (true AND true)
(true AND false) OR (true AND true) false OR true true
Логические выражения с литералами и переменными
Как и для целых чисел, для логического типа в выражениях могут участвовать и переменные и литералы.
Возьмём какое-нибудь выражение из уже рассмотренные выше, например:
(true AND false) AND true // = false