Результат работы программы
Программа
Логический тип данных в языке Си
Логическая переменная — переменная, которая принимает только два значения:
1) истина — (1 или TRUE);
2) ложь — (0 или FALSE).
На первый взгляд логического типа данных в языке Си нет. К этому выводу можно прийти, если рассматривать типы данных:
1) char — символьный;
2) int — целый;
3) short — короткий целый;
4) long — длинный целый;
5) float — число с плавающей точкой;
6) double — число с плавающей точкой двойной точности. Логического типа данных мы здесь не видим. Посмотрим, как обстоит дело
с этим типом данных в других языках программирования.
Visual Basic— язык разработки приложений под Windows:
1) integer — целое;
2) long integer — длинное целое;
3) single — число с плавающей точкой;
4) double — число с плавающей точкой двойной точности;
5) currency — денежный тип;
6) byte — целое положительное число (0... 255);
7) boolean — логический тип данных(значение TRUE или FALSE). Типы данных языка Фортран (Fortran):
\) INTEGER — целое;
2) REAL — число сплавающей точкой;
3) REAL* 8 — число с плавающей точкой двойной точности;
4) COMPLEX— комплексное число;
5) COMPLEX* 16 — комплексное число двойной точности;
6) LOGICAL — логический тип данных.
На мысль о том, что логический тип данных в Си все же есть, может натолкнуть наличие логические операции в языке. Логические операции не могут существовать без логических переменных.
Логические операции:
1) логическая функция «И» — «&&»;
2) логическая функция «ИЛИ» — «||»;
3) логическая функция «НЕ» — «!». Операнды логических операций могут иметь:
1) целый тип;
2) вещественный тип;
3) тип указатель.
Результат логических операций: 1) ложь (0) — типа int;
2) истина (1) — типа int;
Таким образом, логический тип данных в языке Си существует и имеет тип int.
Логическая операция «И» вырабатывает значение 1, если оба оперенда имеют ненулевое значение (табл. 1.3).
Таблица 1.3
Логическое «И» (&&) Y=Xl&&X2:
XI = <ненулевое значение> | Х2 = 0 | 7=0 |
XI =0 | Х2=<ненулевое значение> | 7=0 |
XI =0 | Х2 = 0 | 7=0 |
XI = <ненулевое значение> | XI = <ненулевое значение> | 7=1 |
Логическая операция «ИЛИ» вырабатывает значение 1 в том случае, если какой-либо из операндов имеет ненулевое значение (табл. 1.4).
Таблица 1.4
Логическое «ИЛИ»
Y=Xl\\X2;
Х\ = <ненулевое значениие> | Х2 = 0 | 7=1 |
XI =0 | XI = <ненулевое значениие> | 7=1 |
Х\ = <ненулевое значениие> | XI = <ненулевое значениие> | 7=1 |
XI =0 | Х2 = 0 | 7=0 |
Логическая операция «НЕ» осуществляет логическое отрицание значения операнда (табл. 1.32.3).
Таблица 1.6
Логическое «НЕ»
Y=\X:
Х= <ненулевое значение> Х=0
7=0 7=1
#include <stdio.h> | |
main() | |
{ | |
printf("!2=%u", | !2); |
} |
!2 = 0
Логические операции «И», «ИЛИ» и «НЕ» позволяют создавать функции алгебры логики
Y=f(X\,X2,...,Xn), в которой XI, XI, ...., Хп — логические переменные, принимающие только два значения — «истина» и «ложь».
Пример.Представим, что нам необходимо сконструировать устройство для запуска двигателя лифта. Для этого необходимо написать логическую функцию
¥=ЯХ\,Х2,ХЪ,ХА), которая бы определяла работу двигателя.
Переменные логической функции в нашем случае будут следующие:
1) Х\ — вызов лифта извне;
2) XI — вызов из кабины лифта;
3) ХЪ — датчик закрытия дверей;
4) Х4 — датчик перегрузки (если кабина лифта перегружена, то он стоит на месте).
Двигатель включиться в том случае (Т=1), если произошел вызов извне или из кабины лифта, дверь закрыта и нет перегрузки. Тогда логическая функция устройства управления запуском лифта будет следующая:
Y=(X\&&X3&&(\X4))\\(X2&&X3&&(\X4)); .