Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Инф для менеджера.doc
Скачиваний:
9
Добавлен:
09.11.2019
Размер:
2.94 Mб
Скачать

1.3.3.Математическая логика

Математическая логика, как и алгебра, занимается вычислением значения выражений. Пример: требуется определить значение алгебраического выражения x2 + y2 + 5 при x=2, y=3. Решение: 22 + 32 + 5 = 4 + 9 + 5 = 18.

Логические выражения или условия могут иметь только два значения: True (Истина) или False (Ложь). Пример: требуется определить значение логического выражения x2 + y2 > 5 при x=0, y=2 и при x=3, y=4. Решение: При x=0, y=2 имеем 02 + 22 > 5, т. е. 4 > 5 - это ложь. При x=3, y=4 имеем 32 + 42 > 5, 9 + 16 > 5, т. е. 25 > 5 - это истина. Логические выражения иногда называют высказываниями, а вычисление их значений - исчислением высказываний. Например, высказывание "Коровы умеют мяукать" имеет значение False (Ложь).

Сравнение текстовых величин и операции над ними. Тексты равны, если они содержат одинаковое количество символов и соответственно равны все эти символы. Например, равны тексты A и B, где A = "Роман" и B = "Роман". Тексты же "Роман", "РОМАН", "Романы" не равные тексты.

Текст "cat" меньше, чем "dog", поскольку символ "c" меньше символа "d". Дело в том, что и в кодировке ASCII, и в кодировке UNICODE символ "c" имеет код 99, а символ "d" - 100. Текст "cat" меньше, чем "cut". При равенстве первых символов проверяются вторые и т. д. В данном случае код "a" - 97, код "u" - 117. Текст "Роман" меньше, чем "Романы", так как отсутствие соответствующего символа для проверки считается как бы нулевым кодом.

И в кодировке ASCII, и в кодировке UNICODE наименьшие коды имеют невидимые спецсимволы (конец строки, конец страницы, пробел и т. п.), затем идут цифры и вспомогательные символы (точка, запятая, плюс, минус и т. п.), затем - большие английские буквы по алфавиту (A-Z), затем - малые английские буквы по алфавиту (a-z). Затем русские буквы, причем тут все зависит от кодировки и кодовой страницы. В кодировках UNICODE и ASCII (Windows-1256, MS-DOS-866) сначала - большие буквы по алфавиту (А-Я), затем - малые буквы по алфавиту (а-я). В кодировке ASCII (КОИ-8) русские буквы, совпадающие по написанию с английскими, имеют те же коды, переменными символами являются лишь русские буквы, не совпадающие по написанию с английскими, причем последовательность их кодов никак не соответствует русскому алфавиту.

Над текстами определена лишь операция конкатенации - склеивания двух текстов в один. Для нее можно использовать знаки как "+", так и "&". Вот примеры.

"Замяукал" & " кот-" & "Васька!" = "Замяукал кот-Васька!"

"5" + "3" = "53"

Последний пример демонстрирует разницу между числовыми и символьными величинами. В языке Basic существуют специальные функции перевода числовых величин в текстовые и наоборот. Val переводит текст в число. Например, Val("53.87")=53.87, Val("75")=75, Val("dog")=0. В тексте "dog" нет числа. Str переводит число в текст. Например, Str(-75.3)="-75.3"

Простые условия - это условия, получаемые на основе специального шаблона. Формула 1 .2 дает нам этот шаблон.

Формула 1.2. Шаблон простого условия

A s B Здесь: A и B - произвольные алгебраические выражения; s - произвольная операция сравнения больше(>), меньше(<), равно (=), больше или равно(>=), меньше или равно(<=), не равно(<>)

Таким образом, все приведенные выше условия являются простыми.

Составные условия - это условия, которые получаются из простых путем использования логических операций (Not - Отрицание, And - И, Or - Или) и круглых скобок для группировки.

Примеры: (Not 5>3) = False - отрицание того, что 5>3 есть Ложь. (5>3 And 3<1) = False - Истина И Ложь есть Ложь. (5>3 Or 3<1) = True - Истина Или Ложь есть Истина.

Правила вычисления выражений, содержащих операции Not, And, Or определяются приведенными ниже таблицами истинности.

Таблица 1.4. Таблица истинности для Not

A

Not A

True

False

False

True

Таблица 1.5. Таблица истинности для And

A

B

A And B

True

True

True

True

False

False

False

True

False

False

False

False

Таблица 1.6. Таблица истинности для Or

A

B

A Or B

True

True

True

True

False

True

False

True

True

False

False

False

Операции имеют следующие приоритеты:

- самый высший - возведение в степень, знаки функций Sin, Cos и т. п.;

- ниже - операции умножения и деления;

- еще ниже - операции сложения, конкатенации и вычитания;

- еще ниже - операции сравнения;

- еще ниже - операция Отрицания (Not);

- еще ниже - операция И (And);

- еще ниже - операция Или (Or).

Пример. Как понять следующее выражение?

3 * Sin (X) > 2 And Not X=Y

Его следует понимать как указано ниже.

((3 * (Sin (X))) > 2) And (Not (X=Y))