Логические выражения и операции. Булевый тип данных. Логические операции в паскале.

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

Математические операции Паскаль:

Вот типичные математические операции в Паскале:

+ — сложение (3+58=61) — — вычитание (4-42=-38) * — умножение (8*12=96) / — деление (46/23=2).

Однако, кроме этих стандартных операций, в Паскале есть еще 2 математические операции:

div — делить сразу (10/3=3) mod — делить с остатком (10/3=1).

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

В Паскале также существуют логические операции над аргументами логического типа. Пример: У нас есть две логические переменные A и B. В таблице истинности мы записываем результат некоторых логических операций:

Выражения Паскаль

Not подразумевает логическое отрицание («NOT»), and подразумевает логическое умножение («AND»), or подразумевает логическое сложение («OR»), xor показывает логическое «исключающее OR».

Приоритет операций Паскаль:

В математике, как и в программировании, существует порядок операций. В Turbo Pascal порядок, в котором оценивается выражение, определяется старшинством операций, которые оно содержит:

Выражения Паскаль

В математике, однако, можно отменить порядок операций, используя круглые скобки. Turbo Pascal не является исключением:

2*4-3 = 5, 2*(7-10) = -6

Булевы типы

Результатом булева выражения всегда является булево значение. Тип данных Boolean может иметь только два значения: true или false. Эти значения упорядочены следующим образом: false

var x, y: boolean; begin x := true; y := false; writeln('x = ', x); writeln('y = ', y); writeln('x
x = TRUE y = FALSE x

Операции and, or, or, or, or not (применяемые к булевым операторам) производят булевы значения.

Это означает, что булевы данные являются не только результатом операции отношения, но и могут быть операторами операции отношения. К ним также можно применять функции ord, succ, pred, inc и dec.

Булево значение занимает 1 байт памяти.

В этом примере шесть булевых переменных отображены на простые логические выражения. Значения, хранящиеся в этих переменных, выводятся на экран.

Булевый тип данных в Паскаль

В дополнение к типу boolean, в Pascal введены три других типа boolean - 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)); // TRU E-1 b:= true; b:= succ(b); writeln(b,',ord(b)); // TRUE 2 wb:= true; wb:= succ(wb); writeln(wb,',ord(wb)); // FALSE 0 end.

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

Вы можете использовать логические операторы для формирования сложных логических выражений. Булевы операторы часто применяются к простым логическим выражениям.

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

    Сопряжение (логическое умножение, пересечение) - и. Выражение a и b возвращает true только в том случае, если a и b имеют значение true. Во всех остальных случаях значения a и b ложны.

true и true = true и true = true и true = true и true = true и false = false и false = false и true = false и true = false и false = false
true или true = true true или false = true или true = true false или false = true false или false = false
не истина = ложь не ложь = истина
true xor true = false true xor false = true false false xor true = true false xor true = true false xor true = true false xor false = false

Последовательность булевых операторов: not, and, or.

В языке Паскаль сначала выполняются логические операторы ( and, or, xor, not ), а уже потом операторы отношений (>,>= ,<,, = ), поэтому не нужно забывать расставлять скобки в сложных логических выражениях.

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

Булевы сложные выражения не должны вычисляться до конца, если продолжение вычисления не изменит результат. Если булево выражение должно быть обработано до конца, это обеспечивается включением оператора компиляции.

Стандартные функции, возвращающие булевые значения

  • odd(x) = true, если x нечетный ( x целый);
  • eoln(x) = true, если встретился конец строки текстового файла x ;
  • eof(x) = true, если встретился конец файла x .

В других случаях эти функции принимают значение false.

Урок 7. Логика в Паскаль. Тип Boolean

Здравствуйте, уважаемые читатели нашего сайта! Сегодня мы поговорим о булевых переменных в Паскале и логических операциях и решим пять задач.

Зачем нужна логика в Паскале? Надеюсь, вы научились писать простые линейные программы, и теперь вам, вероятно, интересно, как написать нелинейную программу. Чтобы сделать программу нелинейной в Паскале, как и в других языках программирования, используются логические выражения, которые принимают значения true или false. То есть, каждое отношение в Паскале заменяется на true или false. Например,

var A: integer; begin A := 5; write(A>0); end.

Список операторов отношений:

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

Чтобы записать результат логического выражения, нам нужна специальная переменная. Эта переменная имеет тип Boolean и может принимать два значения - true или false. Вы уже знаете, как создавать простые условия, но как создать сложные условия? Для этого мы используем специальные логические операции: and, or, not и xor. Давайте проанализируем каждую операцию отдельно и создадим таблицы истинности. Предположим, что 1 - истинно, а 0 - ложно.

Xor

Not

Давайте углубим наши знания, решив несколько задач.

Boolean1°: Дано целое число A. Проверьте истинность утверждения: "Число A положительное".

program Boolean1; var a: integer; begin write('Введите число A: '); read(a); writeln('Число A является положительным - ', a>0); end.

Булево значение2: Дано целое число A. Проверьте истинность утверждения: "Число A нечетное".

Если вы хотите узнать, является ли число нечетным, в Паскале есть специальная функция odd, которая возвращает true, если число нечетное, и false, если оно четное.

program Boolean2; var a: integer; b : boolean; begin write('Запишите число A: '); read(a); b := Odd(a); writeln('Число A нечетное - ', b),<Можно обойтись и без b>Конец.

Boolean3 Учитывая целое число A, проверьте, истинно ли утверждение "Число A четное".

Чтобы узнать, является ли число нечетным, мы используем уже известную нам функцию и инвертируем результат.

program Boolean3; var a: integer; b : boolean; begin write('Введите число A: '),<6>read(a); b := Odd(a),write('A четное - ', не b),Конец.

Boolean7° У вас есть три целых числа: A, B, C. Проверьте, верно ли следующее утверждение: "Число B лежит между A и C".

program Boolean7; var a, b, c: integer; b1, b2: boolean; begin write('Введите число A, B, C: '); read(a, b, c); b1 := (B>A) и (B).В) и (Б) и (В)Writeeln('B лежит между A и C - ', b1 или b2); end.

Boolean10°. Даны два целых числа: A, B. Проверьте, верно ли утверждение "Ровно одно из чисел A и B нечетное".

program Boolean10; var a, b: integer; c :boolean; begin write('Введите число A, B: '); read(a, b); c := (Odd(a)) xor (Odd(b)),<Сколько скобок :)>writeln('Ровно одно из чисел A и B нечетное - ', c); end.

Boolean23. задано четырехзначное число. Проверьте истинность утверждения: "Это число читается одинаково слева направо и справа налево".

Используйте знания, полученные на этом уроке.

Таким образом, эта задача проверяет, является ли четырехзначное число палиндромным. Вероятно, самым известным палиндромом является предложение Мальвины: "И роза упала к ногам Азора". (Попробуйте прочитать это предложение справа налево).

program Boolean23; var a, b, c, d, e, f: integer; b1, b2: boolean; begin write('Введите четырехзначное число: '); read(e); a := e div 1000; b := e mod 1000 div 100; c := e mod 100 div 10- d := e mod 100 mod 10- f := d * 1000 + c * 100 + b * 10 + a- writeln('Это число является палиндромом - ', f = e); end.

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

Вопросы и задания

1. как программировать полные и частичные ветви в Pascal?

2. что такое сложный оператор? Когда сложный оператор используется в инструкции ветвления?

3. запустите на своем компьютере все программы, упомянутые в этом разделе.

4. создать не менее трех версий программы для нахождения наименьшего из трех заданных чисел.

5. создайте программу для сортировки значений трех переменных в порядке возрастания: A, B, C.

6. создать программу для вычисления корней квадратного уравнения по заданным значениям коэффициентов.

Следующая страница Уроки 34 - 35. Компьютерная практика. Программирование ветвей на языке Паскаль (задание 1 - 6).

Оцените статью
Uhistory.ru
Добавить комментарий