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

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

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

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

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

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

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

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

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

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

Условие Ответ . 1) А = 1 и В = 2 RI

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

3) A = 1 или B = 2 R1, R2, R3, R5 4) А = 1 или В = 2 или С = 3 R1, R2, R3, R4, R5 5) A= 1 и В = 2 и С = 3 R1

6) не A = 1 R3, R4, R5

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

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

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

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

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

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

 

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

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

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

Здесь «условие»— логическое выражение. Если условие истин­но, то выполняется действие 1, иначе — действие2.

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

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

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

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

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

 

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

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

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

1-я часть: х 0; х2 + у2 9; у -x -3

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

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

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

ProgramPoint;

varX,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.

 

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