Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник программирование 7-9 на печать.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
6.6 Mб
Скачать

§ 7. Логические выражения

Переменные логического типа описываются посредством идентификатора Boolean. Они могут принимать только два значения – False (ложь) и True (истина). Описываются они также в разделе описания переменных. Var <имя> : Boolean;

В логические выражения могут входить:

  • логические величины,

  • операции отношения (<- меньше, >- больше, <=- меньше или равно, >=- больше или равно, <>- не равно, =- равно).

  • логические операции And, Or, Not

  • разл. действия и функции

Примеры простых логических выражений

Значение

0 < 5

True

x mod 2 = 0

True при четном x

7 mod 2 <> 1

False

Sqr (2) >= 4

True

Trunc(3.6) > 3

False

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

Значения операндов

Результат операции

X

Y

not X

X and Y

X or Y

False

False

True

False

False

False

True

True

False

True

True

False

False

False

True

True

True

False

True

True

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

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

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

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

      1. not

      2. and, *, /, div, mod

      3. or, +, -

4. операции отношения (<- меньше, >- больше, <=- меньше или равно, >=- больше или равно, <>- не равно, =- равно).

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

4 3 2 1

A or B and not (A or B)

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

Примеры составных логических выражений

Значение

Not (X=0)

Истина при x<>0, ложь при x=0

(a>b) and (a>c)

Истина, если a=max{a,b,c}

(a=0) or (b=0)

Истина, если хотя бы одно из a,b =0

( A mod 2 =0) and (A mod 4 >0)

Истина, если А кратно двум, но не кратно 4

Упражнение 5:. Запишите в тетрадь и вычислите значения выражений

при a=10, b=20, c=true, d=false: а) (a>5) and (b>5) and (a<20) and (b<30);

b)not (a<15) or not (b<30);

c)c or d and (b=20).

Внимание! В языке Паскаль нет возможности ввода логических данных с помощью оператора read. Однако предусмотрен вывод значений переменных логического типа с помощью оператора write. Например, после выполнения оператора write (5>2) на экран будет выведено True.

Упржнение 6. Существует ли треугольник со сторонами a,b,c (все > 0)? Вывести true или false.

Var a,b,c : real;

R:boolean;

Begin

write(‘введите положительные a, b, c’ );

read(a, b, c);

R:= (a+b>c) and (b+c>a) and (c+a>b);

writeln(R);

End.

Домашние вопросы и задачи:

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

    2. Что может входит в логические выражения. Приведите примеры простых логических выражений.

    3. Расскажите о логических операциях в языке Паскаль. Приведите примеры составных логических выражений.

    4. Каков приоритет различных операций в Паскале. Приведите пример.

Задачи:

19. Записать на Паскале выражение, истинное при выполнении указанного условия и ложное в противном случае:

  1. целое k делится на 7;

  2. 0<x<1;

  3. Хотя бы одно из целых x, y четное;

  4. x=max(x,y,z), то есть x наибольшее из трех чисел x,y,z;

  5. (операцию not не использовать)

  6. хотя бы одна из логических переменных а и b имеет значение True;

  7. обе логические переменные а и b имеют значение True.

20. Указать порядок выполнения операций при вычислении выражений:

а) a and b or not c and d; б) (x>=0) or not c and d.

21. Вычислить следующие выражения при a=True, b=False:

а) a or b and not a; б) (a or b) and not a; в) not a and b; г) not (a and b)

22. Составить программу: На вступительных экзаменах абитуриент сдавал физику, информатику, сочинение. Абитуриет поступит, если получит 5 по информатике и наберет сумму баллов за три экзамена не менее 13. Правда ли, что он поступил(вывести True/False)?