Информация и информационные процессы. Термин информация происходит от латинского informatio, означающего
Скачать 287.69 Kb.
|
|
Алгоритмический язык | Бейсик | Паскаль |
Полная форма: если <условие> <оператор1> иначе <оператор2> Сокращенная форма: если <условие> то <оператор1> | Полная форма: IF <условие> THEN <метка1> ELSE <метка2> Сокращенная форма: IF <условие> THEN <метка> | Полная форма: if <условие> then <оператор1>; else <оператор2>; Сокращенная форма: if <условие> then <оператор1>; |
<Оператор> в алгоритмическом языке и Паскале может быть как простым, так и составным. Составной оператор — это набор простых операторов, ограниченный командами «нс» и «кс» в алгоритмическом языке и begin … end — в Паскале.
Разновидностью условного оператора является оператор выбора. Оператор выбора выполняет один из операторов в зависимости от различных значений анализируемой величины:
Алгоритмический язык | Паскаль |
при <условие1>: <оператор1> при <условие2>: <оператор2> ... иначе <операторN> | case <выражение> of <значение1> : <оператор1>; <значение2> : <оператор2>; ... else <операторN>; end; |
Циклом называется последовательность операторов, которая выполняется несколько раз, пока выполняется (или ие выполняется) определенное условие или заранее заданное количество раз. Выполняемая в цикле последовательность операторов называется телом цикла. Каждое прохождение цикла называется итерацией.
Цикл с предусловием
В цикле с предусловием перед началом выполнения каждой итерации проверяется условие. Если оно истинно, то тело цикла выполняется, если ложно — выполнение цикла прерывается и начинают выполняться операторы, расположенные за телом цикла.
Алгоритмический язык | Паскаль |
пока <условие> <оператор> кц | while <условие> do <оператор> |
В Бейсике циклы реализуются с помощью условного оператора и оператора безусловного перехода.
Цикл с послеусловием
В цикле с послеусловием после каждой итерации проверяется условие, и в случае истинности выполнение цикла прерывается, иначе выполнение тела цикла повторяется. Вид оператора цикла с послеусловием:
Алгоритмический язык | Паскаль |
повторить <оператор> пока <условие> | repeat <оператор> until <условие> |
Цикл со счетчиком
Цикл со счетчиком используется тогда, когда заранее известно, сколько раз должно быть выполнено тело цикла. В цикле со счетчиком используется переменная — счетчик — которая изменяется в заданном диапазоне.
Алгоритмический язык | Бейсик | Паскаль |
для <переменная> от <начальное_значение> до <конечное_значение> шаг <шаг> <оператор> | FOR <переменная> = <начальное_значение> TO <конечное_значение> STEP <шаг> <операторi> NEXT | for <переменная> : = <начальное_значение> to <конечное_значение> do <оператор> |
22. Математическая логика: основные логические операции, таблицы истинности.
Слово логика означает совокупность правил, которым подчиняется процесс мышления. Сам термин "логика" происходит от древнегреческого logos, означающего "слово, мысль, понятие, рассуждение, закон". Формальная логика - наука о формах и законах мышления. Законы логики отражают в сознании человека свойства, связи и отношения объектов окружающего мира. Логика как наука позволяет строить формальные модели окружающего мира, отвлекаясь от содержательной стороны. Основными формами мышления являются понятия, суждения и умозаключения.
Понятие - это форма мышления, которая выделяет существенные признаки предмета или класса предметов, отличающие его от других. Например, компьютер, человек, ученики.
Суждения - это форма мышления, в которой утверждается или отрицается связь между предметом и его признаком, отношения между предметами или факт существования предмета и которая может быть либо истинной, либо ложной. Языковой формой выражения суждения является повествовательное предложение. Вопросительные и побудительные предложения суждениями не являются.
Суждения рассматриваются не с точки зрения их смысла и содержания, а только с точки зрения их истинности или ложности. Истинным будет суждение, в котором связь понятий правильно отражает свойства и отношения реальных объектов. "Дважды два равно четырем" - истинное суждение, а вот "Процессор предназначен для печати" - ложное. Суждения могут быть простыми и сложными. "Весна наступила, и грачи прилетели" - сложное суждение, состоящее из двух простых. Простые суждения (высказывания) выражают связь двух понятий. Сложные - состоят из нескольких простых суждений.
Умозаключение - прием мышления, позволяющий на основе одного или нескольких суждений-посылок получить новое суждение (знание или вывод).
Примерами умозаключений являются доказательства теорем в геометрии. Посылками умозаключения по правилам формальной логики могут быть только истинные суждения. Тогда и умозаключение будет истинным. Иначе можно прийти к ложному умозаключению.
Математическая логика изучает вопросы применения математических методов для решения логических задач и построения логических схем, которые лежат в основе работы любого компьютера. Суждения в математической логике называют высказываниями или логическими выражениями. Подобно тому, как для описания действий над переменными был разработан раздел математики алгебра, так и для обработки логических выражений в математической логике была создана алгебра высказываний, или алгебра логики.
7.2. Логические выражения и логические операции
Логическое выражение - это символическая запись, состоящая из логических величин (констант или переменных), объединенных логическими операциями (связками).
В булевой алгебре простым высказываниям ставятся в соответствие логические переменные, значение которых равно 1, если высказывание истинно, и 0, если высказывание ложно. Обозначаются логические переменные буквами латинского алфавита.
Существуют разные варианты обозначения истинности и ложности переменных:
Истина | И | True | T | 1 |
Ложь | Л | False | F | 0 |
Связки "НЕ", "И", "ИЛИ" заменяются логическими операциями инверсия, конъюнкция, дизъюнкция. Это основные логические операции, при помощи которых можно записать любое логическое выражение.
Логическое отрицание (инверсия).
В обыденной речи мы часто пользуемся словом "НЕ", или словами "НЕВЕРНО, ЧТО", когда хотим что-то отрицать. Пусть, например, кто-то сказал: "Тоска зеленая." (Обозначим это высказывание А). Если Вы не согласны, Вы скажете:" Тоска НЕ зеленая." Или:" Неверно, что тоска зеленая." (Ваше высказывание обозначим В). Нетрудно заметить, что значения истинности высказываний А и В находятся в определенной связи: если А истинно, то В ложно, и наоборот. Операция, с помощью которой из высказывания А получается высказывание В, называется логическим отрицанием и само высказывание В называется отрицанием высказывания А и обозначается ¬ А.
Таким образом, отрицанием ¬ А некоторого высказывания А называется такое высказывание, которое истинно, когда А ложно, и ложно, когда А истинно. Отрицание высказывания А обозначим ¬А. Определение отрицания может быть записано с помощью так называемой таблицы истинности:
А | ¬ А |
И | Л |
Л | И |
В ней указано, какие значения истинности (Истина, Ложь) принимает отрицание ¬ А в зависимости от значений истинности исходного высказывания А.
Логическое умножение (конъюнкция) от латинского conjunctio - союз, связь.
Если два высказывания соединены союзом "И", то полученное сложное высказывание обычно считается истинным тогда и только тогда, когда истинны оба составляющие его высказывания. Если хотя бы одно из составляющих высказываний ложно, то и полученное из них с помощью союза "И" сложное высказывание также считается ложным. Например, возьмем два высказывания: "У кота есть хвост" (А), "У зайца есть хвост" (В). Сложное высказывание "У кота есть хвост и у зайца есть хвост" истинно, т.к. истинны оба высказывания А и В. Но если взять другие высказывания: "У кота длинный хвост" (С), "У зайца длинный хвост" (D), то сложное высказывание "У кота длинный хвост и у зайца длинный хвост" будет ложным, т.к. ложно высказывание (D). Таким образом, исходя из обычного смысла союза "И", приходим к определению соответствующей логической операции - конъюнкции.
Таким образом, конъюнкцией двух высказываний А и В называется такое высказывание, которое истинно тогда и только тогда, когда истинны оба высказывания А и В.
Конъюнкцию высказываний А и В мы обозначим: A & B. Знак & - амперсент - читается как английское "and" (помните Procter & Gamble или Wash & Go?). Часто встречается обозначение А Λ В. Иногда, для краткости, пишут простоАВ.
Определение конъюнкции может быть записано в виде таблицы истинности, в которой для каждого из четырех возможных наборов значений исходных высказываний А и В задается соответствующее значение конъюнкции А & В:
А | В | А&B |
и | и | и |
и | л | л |
л | и | л |
л | л | л |
Определение конъюнкции двух высказываний естественным образом распространяется на любое конечное число составляющих: конъюнкция А1 & A2 & A3 &...& AN истинна тогда и только тогда, когда истинны все высказывания А1, A2, A3, ...AN (а, следовательно, ложна, когда ложно хотя бы одно из этих высказываний).
Логическое сложение (дизъюнкция) от латинского disjunctio - разобщение, различие.
Если два высказывания соединены союзом "ИЛИ", то полученное сложное высказывание обычно считается истинным, когда истинно хотя бы одно из составляющих высказываний. Например, возьмем два высказывания: "Мел черный." (А), "Доска черная." (В). Высказывание "Мел черный или доска черная" будет истинным, т.к. одно из исходных высказываний (В) истинно.
Таким образом, дизъюнкцией двух высказываний называется такое новое высказывание, которое истинно тогда и только тогда, когда истинно хотя бы одно из этих высказываний.
Дизъюнкцию высказываний А и В мы обозначим символом А V В и будем читать: А или В. Определение дизъюнкции может быть записано в виде таблицы истинности:
А | В | АVB |
И И Л Л | И Л И Л | И И И Л |
Определение дизъюнкции двух высказываний естественным образом распространяется на любое конечное число составляющих: дизъюнкция А1 V А2 V А3 V...V АN истинна тогда и только тогда, когда истинно хотя бы одно из высказываний А1, А2, А3, ..., АN (а следовательно, ложна, когда ложны все эти высказывания).
Логическое следование (импликация) от латинского implico - тесно связываю.
В наших рассуждениях, особенно в математических доказательствах, мы часто пользуемся сложными высказываниями, образованными с помощью слов "если..., то...". Здесь высказывание, расположенное после слова "если", называется основанием или посылкой, а высказывание, расположенное после слова "то", называется следствием или заключением.
Рассмотрим пример: из арифметики. Вам должно быть известно, что утверждение "если каждое слагаемое делится на 3, то и сумма делится на 3" истинно, т.е. из высказывания "каждое слагаемое делится на 3" следует высказывание "сумма делится на 3". Посмотрим, какие наборы значений истинности посылки и заключения возможны, когда истинно все утверждение. Возьмем, например, в качестве слагаемых числа 6 и 9. В этом случае истинны и посылка, и заключение, и все утверждение. Если же взять числа 4 и 5, то посылка будет ложной, а заключение истинным. Для чисел 4 и 7 и посылка и заключение ложны. (Если Вы сомневаетесь в истинности высказывания для последнего случая попробуйте произнести его в сослагательном наклонении: если бы числа 4 и 7 делились бы на 3, то и их сумма делилась бы на 3). Очевидно, что только один случай невозможен: мы не найдем таких двух слагаемых, чтобы каждое из них делилось на 3, а их сумма не делилась на 3, т.е. чтобы посылка была истинной, а заключение ложным. Из истины не может следовать ложь, иначе логика теряет смысл. Высказывание "Если А, то В" с логической точки зрения имеет тот же смысл, что и высказывание "неверно, что А истинно и В ложно". Это означает, что функцию импликации можно заменить комбинацией двух функций (отрицания и конъюнкции). Обычно, когда мы хотим установить ложность высказывания "Если А, то В", мы стараемся показать, что возможен случай, когда А истинно, а В ложно (доказательство "от противного"). Обозначим импликацию символом => и запись "А => В" будем читать: "Из А следует В".
Таким образом, импликацией А => В называется высказывание, которое ложно тогда и только тогда, когда А истинно и В ложно.
Запишем это определение в виде таблицы истинности:
А | В | А=>В |
И И Л Л | И Л И Л | И Л И И |
Логическое тождество (эквиваленция).
Интуитивно можно догадаться, что высказывания эквивалентны (равносильными), когда их значения истинности одинаковы. Например, эквивалентны высказывания: "железо тяжелое" и "пух легкий", так же как и высказывания: "железо легкое" и "пух тяжелый". Обозначим эквиваленцию символом <=> и запись "А <=> В" будем читать "А эквивалентно В", или "А равносильно В", или "А, если и только если В".
Таким образом, эквиваленцией двух высказываний А и В называется такое высказывание, которое истинно тогда и только тогда, когда оба эти высказывания А и В истинны или оба ложны.
Отметим, что высказывание типа "А, если и только если В" можно заменить высказыванием "Если А, то В и, если В, то А" (обдумайте это на досуге и обратите внимание на символ <=>). Следовательно, функцию эквиваленции можно заменить комбинацией функций импликации и конъюнкции. Запишем таблицу истинности для эквиваленции:
А | В | А<=>В |
И И Л Л | И Л И Л | И Л Л И |
Приведем примеры записи сложных высказываний с помощью обозначения логических связок:
"Быть иль не быть - вот в чем вопрос." (В. Шекспир) А V ¬ A <=> В
"Если хочешь быть красивым, поступи в гусары." (К. Прутков) А => В
7.3. Построение таблиц истинности для логических функций
Логическая функция - это функция, в которой переменные принимают только два значения: логическая единица или логический ноль. Истинность или ложность сложных суждений представляет собой функцию истинности или ложности простых. Эту функцию называют булевой функцией суждений f (a, b).
Любая логическая функция может быть задана с помощью таблицы истинности, в левой части которой записывается набор аргументов, а в правой части - соответствующие значения логической функции.
При построении таблицы истинности необходимо учитывать порядок выполнения логических операций. Операции в логическом выражении выполняются слева направо с учетом скобок в следующем порядке:
1. инверсия;
2. конъюнкция;
3. дизъюнкция;
4. импликация и эквивалентность.
Для изменения указанного порядка выполнения логических операций используются круглые скобки.
Предлагается следующий алгоритм построения таблицы истинности.
1. Определить количество наборов входных переменных - всевозможных сочетаний значений переменных, входящих в выражения, по формуле: Q=2n , где n - количество входных переменных. Оно определяет количество строк таблицы.
2. Внести в таблицу все наборы входных переменных.
3. Определить количество логических операций и последовательность их выполнения.
4. Заполнить столбцы результатами выполнения логических операций в обозначенной последовательности.
Чтобы не повторить или не пропустить ни одного возможного сочетания значений входных переменных, следует пользоваться одним из предлагаемых ниже способов заполнения таблицы.
Способ 1. Каждый набор значений исходных переменных есть код числа в двоичной системе счисления, причем количество разрядов числа равно количеству входных переменных. Первый набор - число 0. Прибавляя к текущему числу каждый раз по 1, получаем очередной набор. Последний набор - максимальное значение двоичного числа для данной длины кода.
Например, для функции от трех переменных последовательность наборов состоит из чисел:
000 |
001 |
010 |
011 |
100 |
101 |
110 |
111 |
Способ 2. Для функции от трех переменных последовательность данных можно получить следующим путем:
а) разделить колонку значений первой переменной пополам и заполнить верхнюю половину нулями, нижнюю половину единицами;
б) в следующей колонке для второй переменной половинку снова разделить пополам и заполнить группами нулей и единиц; аналогично заполнить вторую половинку;
в) так делать до тех пор, пока группы нулей и единиц не будут состоять из одного символа.
Способ 3. Воспользоваться известной таблицей истинности для двух аргументов. Добавляя третий аргумент, сначала записать первые 4 строки таблицы, сочетая их со значением третьего аргумента, равным 0, а затем еще раз записать эти же 4 строки, но теперь уже со значением третьего аргумента, равным 1. В результате в таблице для трех аргументов окажется 8 строк:
000 |
010 |
100 |
110 |
001 |
011 |
101 |
111 |
Например, построим таблицу истинности для логической функции:
Количество входных переменных в заданном выражении равно трем (A,B,C). Значит, количество входных наборов Q=23=8.
Столбцы таблицы истинности соответствуют значениям исходных выражений A,B,C, промежуточных результатов и (B V C), а также искомого окончательного значения сложного арифметического выражения :
A | B | C | | B V C | |
0 | 0 | 0 | 1 | 0 | 0 |
0 | 0 | 1 | 1 | 1 | 1 |
0 | 1 | 0 | 1 | 1 | 1 |
0 | 1 | 1 | 1 | 1 | 1 |
1 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 | 1 | 0 |
1 | 1 | 1 | 0 | 1 | 0 |