Все статьи » ЗФТШ Информатика

Статьи , страница 88

  • § 5. Логический тип данных в языке программирования Паскаль

    Подобно предыдущему заданию, теперь мы вновь перейдём к изучению программирования и применим полученные знания по алгебре логики на практике.

    В прошлом задании мы работали с числовыми типами переменных и учили арифметику, теперь познакомимся с логическим типом переменных, который называется Boolean. Переменные этого типа имеют всего два значения – true и false (соответственно, «истина» и «ложь»). Подобно числовым переменным им можно присваивать значения при помощи оператора присваивания. При этом необходимо строго соблюдать правило совместимости типов. То есть логическим переменным нельзя присваивать числовые значения, а числовым – логические.

    В языке Паскаль помимо арифметических операций ещё существует `6` операций сравнения: больше» `(>)`, «больше или равно» `(> =)`, «меньше» `(<)`, «меньше или равно» `(< =)`, «равно» `(=)`, и «не равно» `(<>)`. Операция «не равно» записывается, как последовательность знаков «меньше» и «больше».  Результатом каждой из этих операций является логическое значение true или false. Например, операция `5 > 2` выдаст значение true, а операция `x<>3` выдаст значение true, если переменная `X` имеет любое значение, кроме `3`. Сравнивать можно не только числа (причём как целые, так и вещественные), но и логические значения. При этом считается, что значение true больше, чем значение false. При сравнении обязательно соблюдать правило совместимости типов, то есть можно сравнивать числа между собой (причём в отличие от оператора присваивания, здесь никаких ограничений нет). Можно сравнивать между собой логические значения. Но нельзя сравнивать логическое значение с числом любого типа.

    Помимо операций сравнения, в паскале существуют четыре логические операции, абсолютно аналогичные операциям алгебры логики.

    1) Операция AND (в алгебре логики – «конъюнкция»)

    2) Операция OR (в алгебре логики – «дизъюнкция»)

    3) Операция XOR (в алгебре логики – «строгая дизъюнкция»)

    4) Операция NOT (в алгебре логики – «отрицание»)

    Все операнды этих операций должны быть логического типа, а никак не числового. Причём, операции AND, OR и XOR имеют по `2` операнда, а операция NOT – один операнд, который записывается справа от названия операции (аналогично обозначению операции NOT при помощи `¬` в алгебре логики)

    Теперь у нас есть достаточно много операций и нужно расставить их по приоритету выполнения. В Паскале есть четыре приоритета операций:

    1) Операция not;

    2) Операции группы умножения: *, /, div, mod, and;

    3) Операции группы сложения: +, – , or, xor;

    4) Операции группы сравнения: >, <, <=, >=, =, <>.

    Операции одного приоритета выполняются слева направо. Операции в круглых скобках имеют более высокий приоритет, чем вне скобок.

    Теперь рассмотрим несколько примеров задач на использование логического типа.

    Общая Задача

    Записать на Паскале логическое выражение истинное при выполнении указанного условия и ложное в противном случае. Результат вычисления данного выражения присвоить переменной F.

    Условие 1

    Числовая  переменная  X  имеет  значение  на  отрезке [–1,1].

    Решение

     F:=abs(X)<=1;

    Условие 2

    Числовая переменная X имеет значение на отрезке [2,7].

    Решение

    F:=(X>=2)and(X<=7).

    Обратите внимание на скобки. Они обязательны, поскольку операции сравнения имеют более низкий приоритет, чем операция and.

    Условие 3

    Числовая переменная X имеет значение на одном из 2 отрезков: [–10, 3] или [10, 20].

    Решение

    F:=(X>=-10)and(X<=3)or(X>=10)and(X<=20).

    Условие 4

    Логические переменные A и B имеют различные значения.

    Решение

    F:=A<>B.

    Условие 5

    По крайней мере 2 из логических переменных A, B и C имеют значение true.

    Решение

    F:=A and B or A and C or B and C.



    :

       

  • § 1. Алгоритмы и исполнители
    Просмотр текста ограничен правами статьи
  • § 2. Алгоритмические конструкции: начало/конец, ввод/вывод, линейные участки
    Просмотр текста ограничен правами статьи
  • § 3. Алгоритмические конструкции: ветвление
    Просмотр текста ограничен правами статьи
  • § 4. Алгоритмические конструкции: циклы
    Просмотр текста ограничен правами статьи
  • § 5. Сложность алгоритма
    Просмотр текста ограничен правами статьи
  • § 1. Формулы и функции в электронных таблицах
    Просмотр текста ограничен правами статьи
  • § 2. Графики и диаграммы
    Просмотр текста ограничен правами статьи
  • § 3. Реляционные базы данных. Операции с таблицами.
    Просмотр текста ограничен правами статьи
  • § 4. Типы полей базы данных Microsoft Access
    Просмотр текста ограничен правами статьи
  • §5. Операции с таблицами. Сортировка. Запросы. Формы. Отчёты.
    Просмотр текста ограничен правами статьи
  • § 6. Работа с таблицами. Схема данных
    Просмотр текста ограничен правами статьи
  • § 1. Введение в алгебру логики

    Алгебра логики является частью активно развивающейся сегодня науки – дискретной математики. Дискретная математика  –  это тот раз-дел математики, где не используется понятие непрерывности.

    Термин «дискретный» в русском языке имеет следующие значения:

    1) Состоящий из отдельных частей.

    2) Изменяющийся между несколькими стабильными состояниями.

    3) Существующий лишь в отдельных точках.

    Для того, чтобы лучше понять этот термин, рассмотрим следующий пример. Мы знаем, что график некоторой функции (например, `y=x^2`)  является непрерывной линией (параболой), если аргумент функции принимает все значения из множества действительных чисел. А теперь представим, что `x` может принимать только значения из множества целых чисел. В этом случае график будет представлять собой бесконечное количество отдельных точек, располагающихся на координатной плоскости в определённом порядке. В расположении точек будет угадываться парабола, но непрерывной линии мы не увидим. Вместо неё мы увидим дискретную структуру.

    В прошлом задании мы говорили о представлении чисел в компьютере, и знаем, что каждое число представляется в виде определённой последовательности значений битов. В каждом бите может храниться ноль или единица. То есть, по сути, представление чисел (в будущем мы увидим, что не только чисел, а вообще любых данных) в компьютере является дискретной структурой. Поэтому, изучение дискретных структур – важная часть информатики. В этом задании мы будем изучать наиболее простую дискретную структуру, которая называется высказыванием.

    Определение 1

    Высказывание – это повествовательное предложение, в отношении которого можно судить о его истинности либо ложности.

    Например, предложение: «Я – твой друг» является высказыванием, а предложение: «Положи это сюда!» высказыванием не является, поскольку не является повествовательным предложением.

    Истинность или ложность каждого высказывания зависит от трактовки его содержания. Например, высказывание: «Город Москва – столица России» является истинным, а высказывание: «Город Санкт-Петербург стоит на реке Лене» является ложным.

    Определение 2

    Высказывание называется простым, если никакая его часть сама по себе не является высказыванием.

    Высказывание: «Эта шляпа – красная» является простым, в то время как высказывание: «Если прямая пересекает одну из двух параллельных прямых, то она пересекает и вторую» является примером сложного высказывания, которое, по сути, состоит из трёх простых: «две прямые параллельны», «прямая пересекает одну из двух прямых», «прямая пересекает другую прямую». В сложном высказывании простые высказывания соединяются при помощи логических связок. В рассмотренном выше примере логической связкой является союз «если то».

    Алгебра логики изучает структуру сложных логических высказываний и способы установления их истинности при помощи алгебраических методов. Причём, конкретное содержание высказываний предметом изучения алгебры логики не является, и, соответственно, интересовать нас в дальнейшем не будет.

    В прошлом задании при изучении основ программирования мы столкнулись с понятиями констант и переменных. Константа – это некоторое конкретное значение, а переменная – это объект, который может менять свои значения и которому можно присваивать различные значения. Этими же понятиями пользуется и алгебра логики, чтобы абстрагироваться от конкретных содержаний высказываний. Будем считать, что любое простое высказывание – это есть константа. И введём понятие переменной в алгебре логики.

    Определение 3

    Переменной в алгебре логики называется объект, имеющий уникальное имя, и значением которого может являться любое простое высказывание.

    В отличие от языков программирования в алгебре логики нет ограничений при именовании переменных. Переменные могут иметь абсолютно любые имена, но чаще всего их обозначают заглавными или строчными латинскими буквами (`A, B, C, x, y, z, s`), либо последовательностью, состоящей из заглавной или строчной латинской буквы и целого числа (`A1, A2, A4, A10000000`). Ещё одно отличие от языков программирования заключается в том, что после присвоения переменной высказывания можно говорить об её истинности либо ложности. То есть существует два понятия «значение логической переменной». С одной стороны – это конкретное высказывание, а с другой стороны – это истина, либо ложь.

    Определение 4

    Логическим выражением называется объект, состоящий из логических переменных и логических операций и имеющий значение истина, либо ложь. Процесс построения логического выражения по сложному высказыванию называется формализацией высказывания.

    В процессе формализации нужно сделать следующие действия: выделить из сложного высказывания простые и превратить их в логические переменные. Затем каждая логическая связка превращается в логическую операцию. В описанных действиях остаётся два непонятных момента. Первый – что такое логическая операция, и второй – каким образом логические связки превращаются в логические операции. Будем последовательно отвечать на эти вопросы.

    Для того чтобы определить операцию, необходимо указать количество операндов (объектов, над которыми выполняется операция) их тип и результат выполнения операции. Логические операции чаще всего имеют два операнда, как и математические. Однако мы также будем изучать операции, которые имеют всего один операнд. Независимо от количества операнды должны быть логического типа, то есть иметь значение истина, либо ложь. Результатом логической операции также является логическое значение – истина или ложь. Для того чтобы немного сократить запись, условимся в дальнейшем логическое значение «истина» обозначать единичкой `(1)`, а логическое значение – «ложь» – нулём `(0)`.

    Очевидно, что если у операции два операнда, и значением каждого является `0` или `1`, то существует всего четыре набора значений операндов `(00, 01, 10, 11)`. Для каждого из наборов необходимо определить значение логической операции. Удобно это представлять в виде таблицы. Таблицы соответствия значений логических операций набору значений операндов называются таблицами истинности.

  • §1. Растровая и векторная графика
    Просмотр текста ограничен правами статьи
  • §2. Основные принципы цветопередачи
    Просмотр текста ограничен правами статьи
  • §3. Цветовые модели RGB и CMYK
    Просмотр текста ограничен правами статьи
  • §4. Цветовая модель HSB. Зависимость между моделями RGB и CMYK
    Просмотр текста ограничен правами статьи
  • §5. Компьютерная сеть и адресация в сети интернет
    Просмотр текста ограничен правами статьи
  • §6. Сетевые протоколы
    Просмотр текста ограничен правами статьи
  • §7. Поисковые системы
    Просмотр текста ограничен правами статьи