Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



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

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

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

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

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

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


Примеры простых логических выражений Значение
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 (или) есть истина, если какой-либо из ее операндов истинен, и ложен только тогда, когда оба операнда ложны (логическое сложение).

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

Not

2. and, *, /, div, mod

3. or, +, -

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

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

4 3 2 1

AorBandnot(AorB)


Сначала выполняется заключенная в скобки операция 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. Записать на Паскале выражение, истинное при выполнении указанного условия и ложное в противном случае:

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

Б. 0<x<1;

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

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

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

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

Ж. обе логические переменные а и 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)?

§ 8. Решение задач по теме «Линейные программы. Логические величины.»

Упр. 7. Вычислите значения выражения:

а) sqr(x)+sqr(y)<=4 при x=0.3, y=-1.6;

б) k mod 7 = k div5-1 при k=15;

в) odd(trunc(10*p)) при p=0.182;

г) not odd(n) при n=0;

д) t and (p mod 3=0) при t=true, p=101010;

е) (x*y<>0) and (y>x) при x=2, y=1;

ж) (x*y<>0) or (y>x) при x=2, y=1;

з) a or (not b) при a=False, b=True;

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

а) х принадлежит отрезку [0, 1];

б) х лежит вне отрезка [0, 1];

в)* х принадлежит отрезку [2, 5] или [-1, 1];

г)* х лежит вне отрезков [2, 5] и [-1, 1];

д) каждое из чисел х, у, z положительно;

ж) ни одно из чисел х, у, z не является положительным;

з) только одно из чисел х, у, z положительно;

и) логическая переменная а имеет значение True, логическая переменная b имеет значение False;


к)* год с порядковым номером у является високосным (год високосный, если его номер кратен 4, однако из кратных 100 високосными являются лишь кратные 400, например, 1700, 1800 и 1900 – невисокосные годы, 2000 – високосный).

Упр. 9. Нарисовать на плоскости (х,у) область, в которой и только в которой истинно указанное выражение:

а)* (y>=x) and (y+x>=0) and (y<=1);

б) (sqr(x)+sqr(y)<1) or (y>0) and (abs(x)<=1);

в) (trunc(y)=0 and (round(x)=0);

г)* (abs(x)<=1)>(abs(y)>=1);

д) (sqr(x)+sqr(y)<=4)=(y<=x).

Упр. 10..Книга стоит X рублей. У покупателя имеются купюры достоинством 50, 10, 5, 1 рублей. Сколько и каких купюр надо взять, чтобы расплатиться за книгу минимальным количеством купюр?





Дата публикования: 2014-10-30; Прочитано: 2673 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...