Сайт Koder.kz сайт для Delphi программистов.

koder.kz

Web or desctop App Developer

Написать

Добавил admin | Категория Pascal за 12 уроков, перевод | 21 Января 2014


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

  • Что такое логические операторы?
  • Логические операторы
    • И
    • ИЛИ
    • НЕ
  • Пример каждого логического оператора:
    • И
    • ИЛИ
    • НЕ
  • Логические выражения

Логические операторы, могут возвращать всего два значения – истину или лож. Логические операторы используются в условиях, циклах. Такие операторы состоят из простых логических операторов, таких как «AND», «OR», «NOT». Логические операторы обычно используются между двумя условными выражениями, к примеру:

If (x = 0) AND (a = 2) then...

Логические операторы

Есть три типа логических операторов, каждый из которых связаны с условными выражениями:

  • И (AND)
  • ИЛИ (OR)
  • НЕ (NOT)

Все эти логические операторы можно использовать в выражениях, их так же можно компоновать. Давайте разберем пример, как с этим работать, как это можно применить:

AND

If *1(Str1 = 'a') AND *2(Str2 = 'b') then writeln('Yes, you got it right.');

Если выражение *1(Str1 = 'a') и выражение *2(Str2 = 'b') являются истинными то на экране мы увидим Yes, you got it right. Ниже приведенного примера представлена таблица с возможными комбинациями и их решениями.

Expression 1 Expression 2 AND (result)
true true true
false true false
true false false
false false false

Из приведенной выше таблицы мы понимаем что Expression 1 = true + Expression 2 = true = true

OR

If *1(Str1 = 'a')OR*2(Str2 = 'b') then writeln('Yes, you got it right.');

Expression 1 Expression 2 OR (result)
true true true
false true true
true false true
false false false

Если выражение 1 является истинной или выражение 2 является истинной тогда - Yes, you got it right. Обратите внимание на таблицу, здесь во всех случаях кроме как последнего результатом будет истинна, и правильно логическое выражение ведь – или.

NOT

«Не» почти не отличается от двух предыдущих логических операторов. Он принимает только один вход и хорошо известен как оператор "инвертора". Если, например, в результате двух условных выражений одно верно, то "не"оператор будет инвертировать результат! Таким образом, логического оператора, "не", применяется для обратного преобразования результата, простая таблица оператора «не» наглядно продемонстрирует нам это

Input Output
true false
false true

Пример AND оператора


Program Lesson6_Program1;
	Uses Crt;
	Var n1, n2 : string;
Begin

Writeln('Enter two numbers: (''0'' & ''0'' to exit)'); Repeat Write('No.1: '); Readln(n1); Write('No.2: '); Readln(n2); If (n1 = '0') AND (n2 = '0') then Halt(0); Until (n1 = '0') AND (n2 = '0'); End.

Пример OR оператора


Program Lesson6_Program2;
Uses Crt;
Var n1, n2 : String;
Begin
	Writeln('Enter two numbers: (''1'' & ''2'' to exit)');
	Repeat
		Write('No.1: ');
		Readln(n1);
		Write('No.2: ');
		Readln(n2);
		If (n1 = '1') OR (n2 = '2') then 
			Halt;
	Until (n1 = '1') OR (n2 = '2');
End.

Пример NOT оператора


Program Lesson6_Program3;
Uses Crt;
Var n1 : String;
Begin
Writeln('Enter two numbers: (any number except 0 to exit)');
Repeat
Write('No.1: ');
Readln(n1);
If not(n1 = '0') then Halt;
Until not(n1 = '0');
End.

Логические выражения Булевые значение – истина и лож. В цифровом эквиваленте это 1 и 0. Единица это истинна и ноль это лож. Смотрим пример:


Program Lesson6_Program4;
Var quit : Boolean;
	a    : String;
Begin
	Repeat
		Write('Type ''exit'' to quit:');
		Readln(a);
		If a = 'exit' then quit := True else quit := False;
		If quit = True then Halt;
	Until quit = True;
End.