Pascal-Паскаль
Программирование. Логические типы данных Pascal-Паскаль
- Скачено бесплатно: 26876
- Куплено: 414
- Pascal-Паскаль->Программирование. Логические типы данных Pascal-Паскаль
Программирование. Логические типы данных Pascal-Паскаль
Логические типы данных Pascal-Паскаль
В Турбо Паскале логический тип данных носит название BOOLEAN. Значением логического типа может быть одна из двух констант FALSE (ложь) или TRUE (истина). Для них справедливы правила:
Ord(false)=0
Ord(true)=1
False Succ(false)=true
Pred(true)=false
Все реализации языка Pascal, в том числе и Turbo Pascal, вплоть до версии 6.0 содержали только один логический тип данных Boolean, элементы которого могут принимать лишь два логических значения: True (истина) и False (ложь). В Turbo Pascal версии 7.0 добавлены еще три логических типа данныхByteBool, WordBool и LongBool.
| Название логического типа данных | Значению False соответствует | Значению True соответствует | Размер памяти для логического типа данных |
|---|---|---|---|
| Boolean | Число 0 | 1 | 1 байт |
| ByteBool | Число 0 | Любое число, отличное от 0 | 1 байт |
| WordBool | Число 0 в обоих байтах | 2 байта | |
| LongBool | Число 0 во всех байтах | 4 байта |
Отметим, что новые логические типы данных были введены для обеспечения совместимости разрабатываемых программ с Windows, в которой значению False соответствует 0, а значению True – любое, отличное от 0, число.
Логические переменные должны быть описаны предложением:
Var <имя_переменной>: boolean;имя_переменной>
Величины логического типа данных можно присваивать, выводить, но нельзя вводить процедурой read.
Пример переменных с булевым значением
Логические выражения
Логические выражения (условия) – это выражения, которые могут принимать лишь одно из двух значений: true (истина) или false (ложь). Для построения логических выражений используются операции отношения, которые обозначаются знаками: = (отношение на равенство), <> (отношение на неравенство), < (отношение меньше), >(отношение больше), = (отношение больше или равно).
Сложные условия составляются из простых с помощью логических операций: and (логическое «И»), or (логическое «ИЛИ») и not (логическое «НЕ»). При составлении сложных условий операнды логического выражения берутся в скобки (это важно!).
Пример логических выражений:
При вычислении логических выражений операции выполняются в следующем порядке: not, and, or, операции отношения, арифметические операции. Если порядок выполнения операций нужно изменить, то применяют скобки.
Программирование
Исходники Pascal (127)
Справочник
Справочник по паскалю: директивы, функции, процедуры, операторы и модули по алфавиту
Счетчики
2008—2023 © pascal.helpov.net | All Rights Reserved
Условный оператор
Логический тип данных. Логические операции 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 (ИЛИ) есть истина, если какой-либо из ее операндов истинен, и ложен только тогда, когда оба операнда ложны.
Задание. Попробуйте определить результат выполнения булевых операций для высказываний:
-
Школьник на зимних каникулах остается дома или уезжает куда-либо отдыхать.
Логические операции, операции отношения и арифметические операции часто встречаются в одном выражении. При этом отношения, стоящие слева и справа от знака логической операции, должны быть заключены в скобки, поскольку логические операции имеют более высокий приоритет. Вообще принят следующий приоритет операций:
- 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:
Внимание! В языке Паскаль нет возможности ввода логических данных с помощью оператора read. Однако предусмотрен вывод значений переменных логического типа с помощью оператора write.
Например, после выполнения оператора write (5>2) на экран будет выведено True.
Логические выражения и операции. Булевый тип данных
Для того, чтобы программа была не линейной (т.е. в зависимости от ситуации выполнялись разные инструкции) в языках программирования используются логические выражения, результат которых может быть либо правдой ( true ), либо ложью ( false ). Результат логических выражений обычно используют для определения пути выполнения программы.
Простые логические выражения являются результатом операций отношения между двумя операндами (значениями). В примерах ниже операндами являются значения переменных x и y . Операндами могут быть числа, символы и другие типы данных. Все что можно сравнивать между собой. Однако не рекомендуют сравнивать вещественные числа из-за особенностей их хранения в памяти компьютера.
В Паскале предусмотрены следующие операторы отношений:
- меньше: x < y
- больше: x > y
- равно: x = y
- не равно: x <> y
- меньше или равно: x
- больше или равно: x >= y
Булевы типы
Результатом логического выражения всегда является булево (логическое) значение. Булев тип данных ( boolean ) может принимать только два значения: true (истина) или false (ложь). Эти величины упорядочены следующим образом: false < true .
var x, y: boolean; begin x := true; y := false; writeln('x = ', x); writeln('y = ', y); writeln('x < y = ', x < y); end.
x = TRUE y = FALSE x < y = FALSE
Операции and , or , not (применяемые к булевским операндам) дают булевские значения.
Это значит, что данные булевого типа являются не только результатом операций отношения, но и могут выступать в роли операндов операции отношения. Также к ним можно применять функции ord , succ , pred , процедуры inc и dec .
Значение типа boolean занимает в памяти 1 байт.
В примере шести булевым переменным присваиваются значения простых логических выражений. Значения, хранимые в таких переменных, затем выводятся на экран.
Кроме типа boolean в Pascal введены еще три булевых типа — bytebool (занимает 1 байт), wordbool (занимает 2 байта) и longbool (занимает 4 байта).
Для всех булевых типов значению false соответствует 0, а значению true — любое ненулевое значение. Логические переменные, принадлежащие разным булевым типам, ведут себя по-разному при выполнении над ними операций. Ниже приводится пример, реализованный на языке FreePascal (в комментариях отображается результат).
var b:boolean; wb:wordbool; begin b:= false; b:= pred(b); writeln(b,' ',ord(b)); // TRUE 255 writeln(b=true); // TRUE wb:= false; wb:= pred(wb); writeln(wb,' ',ord(wb)); // TRUE -1 b:= true; b:= succ(b); writeln(b,' ',ord(b)); // TRUE 2 wb:= true; wb:= succ(wb); writeln(wb,' ',ord(wb)); // FALSE 0 end.
Логические операции
С помощью логических операторов можно формировать сложные логические выражения. Логические операторы часто применяются по отношению к простым логическим выражениям.
В языке программирования Pascal предусмотрены следующие логические операции:
-
Конъюнкция (логическое умножение, пересечение) - and . Выражение a and b дает значение true только в том случае, если a и b имеют значение true . Во всех остальных случаях значения выражения a and b дает false .
true and true = true true and false = false false and true = false false and false = false
true or true = true true or false = true false or true = true false or false = false
not true = false not false = true
true xor true = false true xor false = true false xor true = true false xor false = false
Последовательность выполнения логических операторов: not, and, or.
В языке Паскаль сначала выполняются логические операторы ( and , or , xor , not ), а уже потом операторы отношений ( > , >= , < , , = ), поэтому не нужно забывать расставлять скобки в сложных логических выражениях.

Сложные булевы выражения могут не обрабатываться до конца, если продолжение вычислений не изменит результат. Если булево выражение в обязательном порядке нужно обрабатывать до конца, то это обеспечивается включением директивы компиляции .
Стандартные функции, возвращающие булевые значения
- odd(x) = true, если x нечетный ( x целый);
- eoln(x) = true, если встретился конец строки текстового файла x ;
- eof(x) = true, если встретился конец файла x .
В остальных случаях эти функции принимают значение false .
3. Типы данных, используемые в языке Паскаль
1. Целочисленный . Обозначается как integer . В данный тип данных входят числовые значение в диапазоне [ − 32768 . 32767 ] . В памяти компьютера для хранения таких данных отводится \(2\) байта со знаком.
2. Вещественный . Обозначается как real . Диапазон данных: 2 . 9 ∗ 10 − 39 . 1 . 7 ∗ 10 + 38 . Занимает \(6\) байтов в памяти компьютера.
3. Символьный . Обозначается как char . Значением переменной этого типа может быть любой символ алфавита. В памяти компьютера такая переменная займёт \(1\) байт.
4. Логический . Обозначается как boolean . Данный тип данных может принимать только два значения: истина или ложь .
