Задания для самостоятельного выполнения
Логические переменные.
Кроме численных переменных во всех языках программирования существует возможность использовать переменные для хранения других типов данных. Самой простой, с одной стороны, и самой "экзотической", с другой стороны, является переменная для хранения данных логического типа.
Логический тип
Логический тип Boolean может принимать лишь два значения: False (ложь) и True (истина). Иногда говорят, что логическая переменная имеет значение "да" или "+" (истина), "нет" или "-" (ложь).
Объявляются переменные логического типа в разделе объявления переменных следующим образом:
Var
a: boolean;
d34, Done: boolean;
Присваивание (определение значения) для переменных логического типа выполняется следующим образом:
a:=true;
Done:=false;
С правой части от знака присваивания могут также находится выражения, результат которых логическая величина.
Определить значение логической переменной с помощью оператора ввода информации нельзя.
Так-же как для численных переменных выполняется ряд арифметических операций, для логических переменных выполняется ряд логических операций.
Логические операции
Логические операции применяются к величинам логического типа, результат операции - тоже логического типа. Имеется одна унарная логическая операция not (ОТРИЦАНИЕ) и три бинарные операции and (И), or (ИЛИ), xor (ИСКЛЮЧАЮЩЕЕ ИЛИ).
Логическая операция NOT
Ставится перед логической переменной (выражением). Инвертирует (меняет на противоположное) значение логической переменной или логического выражения.
Логическая операция AND
Объединяет две логические переменные (логические выражения). Результат получившегося выражения будет истинным, если истинны обе переменные (оба выражения) составляющие данное выражение. В противном случае выражение ложно.
Логическая операция OR
Объединяет две логические переменные (логические выражения). Результат получившегося выражения будет истинным, если истинной является хотя-бы одна из переменных (выражений) составляющих данное выражение. В противном случае выражение ложно.
Логическая операция XOR
Объединяет две логические переменные (логические выражения). Результат получившегося выражения будет истинным, если значения этих переменных (выражений) различны. В противном случае выражение ложно.
Для описания всех логических операций используют так называемые таблицы истинности. В этих таблицах X и Y - это логические переменные (выражения), составляющие результирующее выражение.
Таблица истинности операции NOT Таблица истинности операций AND, OR, XOR
X | Not X | |
False | True | |
True | False |
X | Y | X and Y | X or Y | X xor Y |
False | False | False | False | False |
False | True | False | True | True |
True | False | False | True | True |
True | True | True | True | False |
Примеры использования логических операций:
a:=false; d34:=true;
Done:=not a; {done = true}
done:=a and d34; {done = false}
done:=a or d34; {done = true}
done:=a xor d34; {done = true}
Существует ряд операций и функций, результатом которых являются величины логического типа.
Операции отношения.
Операции отношения предназначены для сравнения двух величин. Результат сравнения имеет логический (Boolean) тип.
= равно; <= меньше или равно;
<> не равно; >= больше или равно;
< меньше; > больше.
Примеры использования операций отношения:
done:=(5<0); {done = false}
done:=(c<=2); {done = true при с<=2}
done:=(c<=10) and (c>=0); {done = true при 0>=c>=10}
Логическая функция ODD(x)
Определяет чётность целого числа x. Возвращает значение true, если x нечётно и false в противоположном случае.
Упорядоченность логических переменных.
К логическим переменным могут применяться операции отношения.
Упорядочены логические (булевские) переменные следующим образом:
FALSE < TRUE
При составлении сложных арифметических или логических выражений необходимо помнить о порядке (очерёдности выполнения) операций того или иного типа. Порядок выполнения операций (вычисления выражений) часто называют приоритетом действий.
Порядок вычисления выражений - приоритеты действий:
1. Вычисления в круглых скобках
2. Вычисления значения функций {sin(x), cos(x), sqrt(x) и т.д.}
3. Унарные операции { not }
4. Операции типа умножения { *, /, div, mod, and }
5. Операции типа сложения { +, -, or, xor }
6. Операции отношения { =, <>, <, >, <=, >=}
Задания для самостоятельного выполнения.
1. Определите значение логического выражения, утверждающего, что точка с координатами x,y принадлежит окружности радиусом r. Цент окружности находится в точке a,b.
3. Определите значение величины q после выполнения каждой из следующих команд присваивания:
а) q:=a<b<c and c<5
b) q:=(a<=b) or (b>=c)
c) q:=odd(a+b) xor odd(b+c)
d) q:=sin(a) < sin(b) < sin(c)
a, b, c - целочисленные переменные, значение которых вводится с клавиатуры.
4. Напишите программу, которая вычисляет значение логического выражения, утверждающего, что модуль суммы двух введённых с клавиатуры чисел больше модуля разности этих же чисел. Результат вычисления вывести на экран монитора.
5. Напишите программу, которая вычисляет значение логического выражения, утверждающего, что синус суммы трёх введённых с клавиатуры действительных чисел - число положительное. Результат вычисления выводится на экран монитора.
6. Напишите программу, которая определяет значение логического выражения, утверждающего, что два вещественных числа, введённых с клавиатуры, - числа разного знака.
7. Напишите программу, которая определяет значение логического выражения, утверждающего, что хотябы одно из введённых с клавиатуры действительных чисел отрицательно. Результат вычисления выводится на экран монитора.
8. Напишите программу, которая определяет значение логического выражения, утверждающего, что синус и косинус введённого с клавиатуры действительного числа имеют положительное значение.
9. Определите значение логического выражения, утверждающего, что три целых числа, введённых с клавиатуры, четные числа.
10.Определите значение логического выражения, утверждающего, что из двух целых чисел a и b, одно чётное, другое нечётное.