116.07K
Категория: ПрограммированиеПрограммирование

Логический тип переменных

1.

ЛОГИЧЕСКИЙ ТИП
ПЕРЕМЕННЫХ
Учитель: Н.В. Фоменко

2.

КАК КОМПЬЮТЕР ПРИНИМАЕТ РЕШЕНИЕ?
Конечно, ему не приходится принимать
решение, как человеку. Однако логики и
определенности в поведении компьютера куда
больше. Собственно, никаких колебаний у него
и не бывает. Каждый раз, когда компьютер
принимает решение, оно четко и окончательно:
или да, или нет! Согласитесь, подобной
решимости людям зачастую не хватает.

3.

ПОПРОБУЕМ РАЗОБРАТЬСЯ С ЛОГИКОЙ
КОМПЬЮТЕРА
Логика оперирует утверждениями. Любое
утверждение может быть истинным или ложным.
При решении задач требуется проверить некоторое
условие, сформулированное в виде утверждения, и
в зависимости от результата проверки (истинности
или ложности) произвести те или иные действия.
Если условие выполняется, результат будет
«истина», если нет – то «ложь». Например,
утверждение 4>3 – истина, а 2>3 – ложь.
Такие выражения называются логическими. Для
хранения результата проверки условий введен
логический тип переменных – boolean.
Переменные такого типа называются
логическими

4.

ЛОГИЧЕСКИЕ ПЕРЕМЕННЫЕ
Переменные логического типа принимают всего
два значения: false (ложь) и true (истина); причем
они определены так, что false < true.
Логические значения получаются в результате
выполнения операций сравнения числовых,
символьных, строковых и логических выражений.
В Паскале логической переменной (переменной
типа boolean) можно присваивать результат
операции сравнения x:=a>b, а также можно этот
результат напечатать. На экран будет выведено
соответственно false или true.

5.

ОПЕРАЦИИ СРАВНЕНИЯ:
< – меньше
<= – меньше или равно
> – больше
>= – больше или равно
= – равно
<>
– неравно

6.

ЗАДАЧА. ПРОВЕРИТЬ, ЯВЛЯЕТСЯ ЛИ
ВВЕДЕННОЕ ЧИСЛО N ЧЕТНЫМ.
Пусть otvet - логическая переменная,
n - целая
переменная.
В результате выполнения оператора присваивания
otvet:=n mod 2=0 переменной otvet будет присвоено
значение true при любом чётном n и false в противном
случае.
program chetnye;
var n: integer; otvet: boolean;
begin
writeln ('Введите исходное число');
readln (n);
otvet:=n mod 2=0;
writeln ('Число ', n,' является четным - ', otvet)
end.

7.

СЛОЖНЫЕ УСЛОВИЯ
Часто принимаемое решение зависит от результата
не одного, а нескольких утверждений. Например,
«Вася сегодня получит 5, если придет на урок и
правильно выполнит задания», то есть нужно
научиться формировать сложные условия. На
Паскале сложные условия формируются из простых
с помощью логических операций.

8.

ЛОГИЧЕСКИЕ ОПЕРАЦИИ В ПАСКАЛЕ
Логическая операция
and
or
Название операции
Операция И
(логическое умножение)
Операция ИЛИ
(логическое сложение)
not
Операция НЕ
xor
Операция ЛИБО
(Исключающее ИЛИ)
Логическое отрицание
(инверсия)

9.

ЛОГИЧЕСКАЯ ОПЕРАЦИЯ AND
Сложное выражение, составленное с помощью
операции and, истинно тогда и только тогда,
когда истинны все простые выражения,
входящие в его состав
X>3
X<7
X>3 and X<7
0
0
0
0
1
0
1
0
0
1
1
1
При записи сложных условий на Паскале простые
условия заключаются в круглые скобки!
(x>3) and (x<7) – правильная запись

10.

ЛОГИЧЕСКАЯ ОПЕРАЦИЯ OR
Сложное выражение, составленное с помощью
операции or, истинно тогда, когда истинно
хотя бы одно простое выражение, входящее в
его состав.
X>3
X<7
(X>3) or (X<7)
0
0
0
0
1
1
1
0
1
1
1
1

11.

ЛОГИЧЕСКАЯ ОПЕРАЦИЯ XOR
Сложное выражение, составленное с помощью
операции xor, истинно тогда, когда истинно
только одно из двух простых выражений,
входящих в его состав.
X>3
X<7
(X>3) xor (X<7)
0
0
0
0
1
1
1
0
1
1
1
0

12.

ЛОГИЧЕСКАЯ ОПЕРАЦИЯ NOT
Сложное выражение, составленное с помощью
операции not, истинно тогда, когда ложно
простое выражение, входящее в его состав.
X>3
not (X> 3)
0
1
1
0

13.

ПРИОРИТЕТЫ
1)
2)
3)
not
and
or, xor
Это значит, что сначала выполнится операция
not, за ней and и только потом – or или xor,
которые имеют одинаковый приоритет
На паскале недопустимо записывать сложное
условие в виде двойного неравенства:
2<= x <=5 неверно!
Надо (x>=2) and (x<=5)

14.

ПРИМЕР 1
Даны 3 числа a, b, c. Проверить истинность
высказывания a<b<c
Решение.
program proverka;
var a, b,c: integer; f: boolean;
begin
writeln ('Введите исходные числа');
readln (a,b,c);
f:=(a<b) and (b<c);
writeln (f)
end.

15.

ПРИМЕР 2
Проверить, что два введенных числа имеют
одинаковую четность
Можно переменной f присвоить такое
выражение:
f:=(a mod 2=0) and (b mod 2=0) or (a mod 2<>0)
and (b mod 2 <>0)
А можно так: f:= (a+b) mod 2=0

16.

ПРИМЕР 3
Проверить, что введенное число трехзначное
Решение:
f:= (a >99) and (a < 1000)
ПРИМЕР 4
Проверить, что введенное число оканчивается
нулем
Решение:
f:= a mod 10=0
English     Русский Правила