Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_3.doc
Скачиваний:
4
Добавлен:
16.11.2018
Размер:
984.58 Кб
Скачать

2.6. Логические операции

До этого момента мы использовали логические выражения, состоящие лишь из простых условий с одной операцией сравнения. Во многих случаях требуется объединить несколько простых условий (логических подвыражений) в одно логическое выражение. Именно для этого и предназначены логические операции.

Язык С# содержит три логических операции, семантически эквивалентных словам "и", "или" и "не" обычного языка.

Следует отме­тить, что любая фраза может быть частью обычного языка и ее значение интуитивно ясно. Эквивалентами слов "и", "или" и "не" разговорного языка являются логические опе­рации И, ИЛИ и НЕ. Логическое И в С# обозначается как && (два последовательных символа амперсанда), логическое ИЛИ - || (две вертикальных черты), логическое НЕ - ! (восклицательный знак).

Логические операции (&&, ||, !) применимы только к выражениям типа bool и возвра­щают значение этого же типа. Логическую операцию часто называют булевой.

Краткий обзор этих трех операций приведен в таблице. Следует также отметить, что операции И, ИЛИ и НЕ в научной литературе называют конъюнкцией, дизъюнкцией и отрицанием.

Таблица 2.1.

Логические операции

Логическая операция

Термин-синоним

Обозначение

Число операндов

И

Конъюнкция

&&

2 (бинарные)

ИЛИ

Дизъюнкция

| |

2 (бинарные)

НЕ

Отрицание

!

1 (унарный)

Далее рассмотрим отдельно каждую операцию.

Операция «И» && представляет собой логическое выражение, которое объединяет в себе два логических подвыражения.

Например, если число больше нуля и меньше 10, то оно находится в пределах от 0 до 10.

Синтаксический блок операции «И»имеет вид.

Большое_логическое_выражение ::=

<Логическое_подвыражение1>&&<Логическое_подвыражение2>

Объединив два возможных значения (true и false) выражения <Логическое_подвыражение1> с двумя возможными значениями <Логическое_подвыражение2>, можно со­здать таблицу истинности содержащую четыре возможных комбинации (2x2).

Таблица истинности содержит все возможные значения логических выражений и со­ответствующие им результаты.

Таблица 2.2.

Таблица истинности логической операции «И»

Значение логического подвыражения 1

Значение Логического подвыражения 2

Значение большого логического выражения

false

false

false

false

true

false

true

false

false

true

true

true

Следует обратить внимание, что только если оба исходных выражения в рав­ны true, результирующее выражение равно true. В иных случаях оно имеет значение false.

Пример 2.6. Написать программу, которая выводит сообщение «Число в пределах интервала», если введенное с клавиатуры число принадлежит интервалу от 0 до 10. В противном случае вывести сообщение «Число за пределами интервала».

Для решения задачи используем два логических подвыражения, объединенных в большое логическое выражения при помощи логического «И». Первое подвыражение x>0, второе логическое подвыражение x<10. Объединив их при помощи &&, получим большое логическое выражение: x>0 && x<10.

using System;

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Введите число");

int x = Int32.Parse(Console.ReadLine());

if (x > 0 && x < 10)

Console.WriteLine("Число в интервале!");

else

Console.WriteLine("Число за пределами интервала!");

Console.ReadLine();

}

}

Результат работы программы представлен на рис. 2.11-2.12.

Рис.2.11. Результат работы программы из примера 2.6., если число находится в интервале от 1 до 10

Рис.2.12. Результат работы программы из примера 2.6., если число находится вне интервала от 1 до 10

Следующей рассмотрим операцию логического «ИЛИ». Операция логического ИЛИ, обозначаемая двумя вертикальными чертами ||, пред­ставляет собой бинарную операцию, синтаксический блок которой имеет вид.

Большое_логическое_выражение :: =

<Логическое_подвыражение 1> ||

<Логическое_подвыражение 2>

Таблица истинности операции логического ИЛИ показывает, что только если оба подвыражения равны false (первая строка), общее выражение равно false, ина­че оно равно true. Это совпадает с повседневным значением слова "или". Например, в следующем предложении: «Если сегодня суббота или воскресенье, то сегодня выходной».

Таблица истинности для логической операции «ИЛИ» представлена в таблице 2.3.

Таблица 2.3.

Таблица истинности логическая операция «ИЛИ»

Значение логического подвыражения 1

Значение логического подвыражения 2

Значение большого логического выражения

false

false

false

false

true

true

true

false

true

true

true

true

Пример 2.7. С клавиатуры вводится число от 1 до 7 символизирующее дни недели. Если число 6 или 7, то вывести сообщение «Выходной!», в противном случае «Рабочий день!»

using System;

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Введите номер дня недели");

int a = Int16.Parse(Console.ReadLine());

if (a == 6 || a == 7)

Console.WriteLine("Выходной!");

else

Console.WriteLine("Рабочий день!");

Console.ReadLine();

}

}

Результат работы программы представлен на рис. 2.12 – 2.13.

Рис. 2.12. Результат работы программы из примера 2.7. в случае ели введен номер рабочего дня

Рис. 2.13. Результат работы программы из примера 2.7. в случае ели введен номер выходного дня

Последней логической операцией является операция «НЕ». Операция логического НЕ (!) в противоположность бинарным «И» и «ИЛИ» является унар­ной. Так же, как унарный минус обращает знак числового выражения, операция логического «НЕ» инвертирует истинность логи­ческого.

Синтаксический блок операции «НЕ» имеет вид.

Логическое_выражение ::= !<Логическое_подвыражение>

Таблица истинности логической операции «НЕ» представлена в таблице 2.4.

Таблица 2.4.

Таблица истинности логической операции «НЕ»

Значение логическое подвыражение

Значение !логическое подвыражение

false

true

true

false

Логические выглядят более понятными, если в них не используются от­рицания. К счастью, в большинстве случаев без операции отрицания можно обойтись, внеся изменения в операнды и выбрав операции сравнения в логическом выражении. В таблице 2.4. представлены логические выражения аналогичные «НЕ», но без отрицания.

Таблица 2.4.

Эквивалентное выражение без логического «НЕ»

Логическое выражение с операцией !

Эквивалентное выражение без !

!(х == 10)

(х != 10)

!(х > 10)

(х <= 10)

!(х <= 10)

(х > 10)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]