При переході до складання умов пошуку в базах даних учні нерідко потрапляють в «пастки природного сенсу». Наприклад, розглядається база даних БІБЛІОТЕКА зі све-новами про книгах в особистій бібліотеці, яка має дотримуюся-щую структуру:
Потрібно забрати відомості про всі книгах Толстого і Турге-нева. Абсолютна більшість учнів записують це умова наступним чином:
Корисно виконати з учнями кілька формальних завдань на обробку складних умов пошуку. Наприклад, намалюйте на дошці наступну таблицю:
Запропонуйте серію завдань такого змісту: задана умова пошуку в формі логічного виразу; визначити, які записи йому задовольняють.
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-ї полки. Логічний вираз запишеться так:
Математична логіка в електронних таблицях. Наступна зустріч учнів з математичною логікою в базовому курсі відбувається при вивченні електронних таблиць (ЕТ). Мова електронних таблиць можна інтерпретувати як своєрідний табличний мова програмування для вирішення обчислювальних завдань. Причому реалізовані на ЕТ обчислювальні алгоритми можуть мати не тільки лінійну структуру, а й ветвящуюся і навіть циклічну (ітераційні цикли). Розгалуження в ЕТ реалізуються через умовну функцію. Форма запису умовної функції в значній мірі залежить від типу табличного процесора.
Якщо в клітку заноситься умовна функція, то на екрані відображається результат її обчислення, т. Е. Те чи інше значення в залежності від умови, заданого логічним виразом. Звичайні-но умовна функція має таку структуру:
IF (умова, действіе1, действіе2).
Тут «умова» - логічне вираження. Якщо умова істин-но, то виконується дія 1, інакше - действіе2.
Просте логічне вираз являє собою відношення (в тому ж сенсі, в якому це поняття використовується в базах даних). Складне логічне вираження містить логічні операції.
Особливість логічних виразів для електронних таблиць полягає в тому, що логічні операції використовуються як функції: спочатку записується ім'я логічної операції: І, АБО, НЕ (AND, OR, NOT), а потім в круглих дужках пере-раховуються логічні операнди. Наприклад, логічне Вира-ються
відповідає математичної системі нерівностей: 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-ї частини.
Програма вводить координати точки, обчислює логічне виразів визначає приналежність точки області, і виводить отриману логічну величину на екран.
var X, Y: real; L: boolean;
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)
У програмах обчислювального характеру логічні висловлю-ня, як правило, використовуються в умовній частині операторів розгалуження і циклу.