Сделай Сам Свою Работу на 5

Приложения математической логики в базовом курсе





Математическая логика в базах данных.При изучении базового курса информатики ученики впервые встречаются с элементами математической логики в теме «Базы данных» (БД). В реляционных БД логическими величинами являются поля логического типа. Логический тип используется наряду с другими типами полей, и ученики должны научиться выделять его.

Первое понятие о логической величине можно дать как ответ на альтернативный вопрос. Например: «Имеется ли данная книга в библиотеке?» или «Поступил ли абитуриент в университет», или «На улице идет дождь?» и т.п. Ответами на такие вопросы могут быть только «да» или «нет». Синонимами являются «истина», «ложь»; «true», «false». Если поле таблицы будет принимать только такие значения, то ему назначается логический тип.

Например, реляционная база данных ФАКУЛЬТАТИВЫ содержит сведения о посещении учениками трех факультативов по геологии, цветоводству и танцам. На реляционном языке ее структура описывается так:

ФАКУЛЬТАТИВЫ(УЧЕНИК. ГЕОЛОГИЯ,

ЦВЕТОВОДСТВО, ТАНЦЫ)

Поля ГЕОЛОГИЯ, ЦВЕТОВОДСТВО и ТАНЦЫ будут иметь логический тип. Значение ИСТИНА для каждого поля обозначает, что ученик посещает данный факультатив, а ЛОЖЬ — не посещает.



Логические выражения используются в запросах к базе данных в качестве условий поиска. Применительно к базам данных, определение логического выражения можно перефразировать так: логическое выражение — это некоторое высказывание по поводу значений полей базы данных; это высказывание по отношению к разным записям может быть истинным или ложным.

Логические выражения разделяются на простые и сложные. В простых выражениях всегда используется лишь одно поле таблицы, и не применяются логические операции. В сложных логических выражениях используются логические операции. Простое логическое выражение представляет собой либо имя поля логического типа, либо отношение (в математике говорят «неравенство»). Отношения для числовых величин сохраняют смысл математических неравенств; при вычислении отношений для символьных величин учитывается лексикографический порядок; даты сравниваются в порядке их календарной последовательности.



Основная проблема — научить учеников формальному представлению условий поиска в виде логических выражений. Например, от фразы «найти все книги, лежащие выше пятой полки» нужно перейти к логическому выражению: ПОЛКА > 5; или условие «выбрать всех неуспевающих по физике» представить в виде: ФИЗИКА < 3; или «выбрать все дни, когда шел дождь»: ОСАДКИ = «дождь».

Особое внимание надо обратить на использование полей логического типа в условиях поиска. Обычно к ним не применяются отношения. Логическое поле само несет логическое значение: «истина» или «ложь». Например, условие «выбрать всех учеников, посещающих танцы» представится одним именем логического поля: ТАНЦЫ.

Сложные логические выражения содержат в себе логические операции. Рассматриваются три основные операции математической логики: конъюнкция (И), дизъюнкция (ИЛИ), отрицание (НЕ).

Обычно при объяснении этого вопроса учитель отталкивается от семантического смысла высказываний на русском языке, содержащих союзы И, ИЛИ, частицу НЕ. Например, высказывание: «Сегодня будет контрольная по алгебре И по физике» справедливо, если состоятся обе контрольные и ложно, если хотя бы одна не состоится. Другое высказывание: «Сегодня будет контрольная по алгебре ИЛИ по физике» будет истинным, если состоится хотя бы одна контрольная работа. И, наконец, высказывание: «Сегодня НЕ будет контрольной» истинно, если контрольная не состоится, т. е. если высказывание о том, что сегодня будет контрольная, оказывается ложным. Из подобных примеров учитель делает выводы о правилах выполнения логических операций: если А и В — логические величины, то выражение



А и В истинно только в том случае, если истинны оба операнда;

А или В ложно только в том случае, если ложны оба операнда;

• не А меняет значение логической величины на противоположное: неистина — ложь; неложь — истина.

Эти правила отражены в таблице истинности.

При переходе к составлению условий поиска в базах данных ученики нередко попадают в «ловушки естественного смысла». Например, рассматривается база данных БИБЛИОТЕКА со сведениями о книгах в личной библиотеке, которая имеет следующую структуру:

БИБЛИОТЕКА(НОМЕР. АВТОР, НАЗВАНИЕ, ГОД, ПОЛКА)

Требуется получить сведения обо всех книгах Толстого и Тургенева. Абсолютное большинство учеников записывают это условие следующим образом:

АВТОР = «Толстой» и АВТОР = «Тургенев»

Прозвучавший в задании союз «и» машинально переносится в логическое выражение. После этого учителю приходится объяснять, что автором книги не может быть одновременно Толстой и Тургенев. Поэтому в библиотеке нет ни одной книги, удовлетворяющей такому условию. Здесь следует применить логическую операцию ИЛИ:

АВТОР = «Толстой» илиАВТОР = «Тургенев»

Тогда будет получена искомая выборка книг обоих авторов.

Операция ИЛИ объединяет в одну выборку записи, удовлетворяющие каждому из условий. Операция И работает иначе: сначала выбираются все записи, удовлетворяющие первому условию, затем из отобранных записей выбираются те, которые удовлетворяют второму условию.

Полезно выполнить с учениками несколько формальных заданий на обработку сложных условий поиска. Например, нарисуйте на доске следующую таблицу (табл. 8.3):

Таблица 8.3

 

Записи Поля
А В С
R1 1
R2
R3
R4
R5

 

Предложите серию заданий такого содержания: задано условие поиска в форме логического выражения; определить, какие записи ему удовлетворяют.

Условие: Ответ

1) А = 1 и В = 2 :R1

2) А = 1 или А = 3 :R1, R2, R4, R5

3) А = 1 или В = 2 :R1, R2, R3, R5

4) Л = 1 или В = 2 или С = 3 :R1, R2, R3, R4, R5

5)А = 1и В = 2 и С=3 :R1

6) не А = 1 :R1, R4, R5

На примере этой же таблицы отрабатывается вопрос о старшинстве операций и порядке их выполнения. Сообщив, что логические операции по убыванию старшинства расположены так: НЕ, И, ИЛИ, приведите примеры логических выражений, содержащих разные операции.

7) А = 1 и В = 1 или С = 3 :R1, R4, R5

8) А = 1 или В = 2 и С = 3 :R1, R2, R5

9) не А = 1 или В = 2 и С = 3 :R1, R3, R4, RS

10) (Л = 1 или В = 2) и С = 3 :R1, R5

После решения таких формальных задач следует снова вернуться к содержательным задачам. Теперь ученики будут гораздо успешнее формализовывать сложные условия поиска в логические выражения. Например, требуется выбрать все книги Беляева и Толстого, расположенные от 2-й до 5-й полки. Логическое выражение запишется так:

(АВТОР = «Толстой Л.Н.» или АВТОР = «Беляев А.Р.») и ПОЛКА >= 2 и ПОЛКА <= 5

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

Если в клетку заносится условная функция, то на экране отображается результат ее вычисления, т.е. то или иное значение в зависимости от условия, заданного логическим выражением. Обычно условная функция имеет такую структуру:

IF(условие, действие1, действие2).

Здесь «условие» — логическое выражение. Если условие истинно, то выполняется действие1, иначе — действие2. Простое логическое выражение представляет собой отношение (в том же смысле, в котором это понятие используется в базах данных). Сложное логическое выражение содержит логические операции.

Особенность логических выражений для электронных таблиц заключается в том, что логические операции используются как функции: сначала записывается имя логической операции: И, ИЛИ, НЕ (AND, OR, NOT), а затем в круглых скобках перечисляются логические операнды. Например, логическое выражение

AND (А1 > 0, А1 < 1)

соответствует математической системе неравенств: 0 < А1 < 1.

Например, требуется вычислить следующую разрывную функцию:

В ячейке таблицы соответствующая условная функция запишется так:

IF (AND (A1 > -1, А1 < 1), ABS (А1), 1).

Логические формулы могут размещаться в ячейках ЭТ сами по себе, без использования условной функции. В таком случае в данной ячейке будет отражаться логическое значение ИСТИНА или ЛОЖЬ. Например, если в ячейке С6 хранится сумма баллов, набранная абитуриентом на вступительных экзаменах, а проходной балл в институт равен 14, то, поместив в ячейку D6 формулу: С6>= 14, получим в этой ячейке значение ИСТИНА, в случае если абитуриент поступил в институт, и ЛОЖЬ — если нет.

Математическая логика в программировании. В большинстве современных процедурных языков программирования высокого уровня (ЯПВУ) имеется логический тип данных, реализованы основные логические операции. Использование этих средств позволяет решать на ЭВМ сложные логические задачи, моделировать логику человеческого мышления в программных системах искусственного интеллекта. В программах решения задач с математическим содержанием логические выражения чаще всего применяются для описания систем неравенств (отношений). Решая задачи такого типа, ученики прежде всего должны проявить знания математики, а затем уже — умение переложить математические отношения на язык логики и оформить решение задачи на языке программирования.

 

Пример.Составить программу на Паскале, по которой выведется значение true, если точка с заданными координатами (х, у) лежит внутри заштрихованной области (рис. 8.1), и false — в противном случае.

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

1-я часть: x £ 0; x2 + y2 £ 9; y ³ - x - 3

2-я часть: х > 0; х2 + у2 < 25.

Точка с координатами (х, у) лежит в заштрихованной области, если она принадлежит 1-й или2-й части.

 

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

Program Point;

var X,Y: real; L: boolean;

begin

write('Введите X:'); readln(X);

write('Введите Y:'); readln(Y);

L: = (X <= 0) and (Sqr(X)+ Sqr(Y) <= 9) and(Y >= -X-3)

or (X >= 0) and (Sqr(X) + Sqr(Y)<= 25)

writeln('Точка лежит в заданной области?', L)

end.

 

В программах вычислительного характера логические выражения, как правило, используются в условной части операторов ветвления и цикла.

Требования к знаниям и умениям

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.