Алгебра высказываний на уроках информатики
Другие рефераты
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
ЗАДАЧИ
ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ
ЗАКЛЮЧЕНИЕ
ИСПОЛЬЗУЕМАЯ ЛИТЕРАТУРА
ВВЕДЕНИЕ
Цель познания в науке в науке и повседневной жизни - получение истинных знаний и полноценное использование их в практической деятельности. Знания формальной логики помогает предвидеть события и лучшим способом планировать деятельность, максимально предусматривать возможные последствия, выдвигать различные гипотезы, эффективней обучаться. Учащимся логика поможет в процессе овладения ими многообразной информацией, с которой они встретятся при изучении различных наук. В ходе дальнейшего самообразования - логика, знания логики помогут отделять главное от второстепенного, критически воспринимать различные определения и классификации разнообразных понятий и явлений, подбирать формы доказательства своих истинных суждений и опровергать ложные.
Интересным, перспективным направлением является анализ и решение логических задач с помощью ЭВМ. Цель, которая преследуется при использовании компьютера при решении логических задач следующая - развитие у учащихся алгоритмического подхода к решению логических задач, а также формирование представлений о информационной картине мира, практическое освоение компьютера как инструмента деятельности. В результате должно сформироваться умение видеть информационную сущность мира, распознавать и анализировать с логической точки зрения информационные процессы.
ЗАДАЧИ
На компьютере легко получить таблицу истинности некоторого сложного выражения, к примеру X= (A OR B) AND A AND B
Замечание: в большинстве версий языка Бейсик нет переменных логического типа. Поэтому, при выводе переменных логического типа рекомендуется ставить знак минус перед именем переменной.
Решение задачи на Паскале:
uses crt;
var a,b,x: boolean;
Begin
clrscr;
for a: =false to true do begin
for b: =false to true do begin
x: = (A or B) and A and B;
write (x: 10);
end;
end;
readkey;
end.
а также проверить следующие тождества:
NOT (NOT A) = A (закон двойного отрицания).
NOT (A AND NOT A) = 1 (закон отрицания противоречия).
A OR NOT A =1 (закон исключенного третьего).
Решение для первого тождества: (2. bas,
2. pas)
Решение на Паскале:
uses crt;
var a: boolean;
Begin
clrscr;
WRITELN ('not (not a) ': 12,'a': 7);
writeln ('---------------------');
for a: =false to true do
writeln (not (not a): 10,a: 10);
readkey;
end.
Доказательство проводим с помощью таблицы истинности. Как видно из решения таблицы истинности для выражений стоящих по разные стороны от знака равенства совпадают, следовательно можно утверждать что тождества верное.
Кроме того, с помощью компьютера можно упростить следующие выражения:
1. A IMP NOT A (NOT A)
2. A EQV NOT A (0)
3. (A IMP A) IMP A (A)
4. NOT A IMP (A IMP B) (1)
5. A IMP (A IMP B) (A IMP B)
6. A IMP (B IMP A) (1)
7. ( (A IMP B) IMP A) IMP B) (A IMP B)
8. (A EQV B) IMP (A IMP B) (1)
9. (A IMP B) IMP (B IMP A) (B IMP A)
10. (NOT A IMP B) IMP (NOT B IMP A) (1)
Как видно из таблиц истинности, многие выражения достаточно легко сводятся к более простым.
Обладая всего лишь начальными навыками алгоритмического языка можно также использовать компьютер для решения логических уравнений: Найти X,Y из следующих уравнений:
(1 IMP X) IMP Y=0 Отв: (x=1 y=0)
X OR Y = NOT X (x=0, y=1)
Решение: (3. bas,
3. pas)
CLS
PRINT " x y"
PRINT
FOR x = 0 TO - 1 STEP - 1
FOR y = 0 TO - 1 STEP - 1
IF (x OR y) = (NOT (x)) THEN PRINT - x; - y
NEXT
NEXT
Замечание: в языке Паскаль для решения задач сначала следует выразить операции следования и эквивалентности через операции OR и AND. Так операция следования может быть записана следующим образом a IMP b = NOT (a) OR b), а операция эквивалентности как a EQV b = (a OR (NOT b)) AND ( (NOT a) OR b) или следующим образом
a EQV b = (a AND b) OR ( (NOT a) AND (NOT b)).
Решение на Паскале:
uses crt;
var y,x, imp,a: boolean;
Begin
clrscr;
WRITELN ('x': 10,'y': 10);
writeln;
for x: =false to true do
begin
for y: =false to true do
begin
if not (not (true) or x) or y = false
then writeln (x: 10,y: 10);
end;
end;
readkey;
end.
Следует отметить то, что при решении на компьютере у учащихся постоянно присутствует таблица истинности основных логических операций на компьютере, и, к примеру, проверка формул на тавтологии, а также проверка основных логических законов превращается в некоторое самостоятельное “исследование" основных операций логики. Учитывая то, что доказательства законов явно не приводятся, представляется возможным говорить о том, что учащимися познан новый метод доказательства, которое приводится с помощью компьютера.
При рассмотрении темы: “Арифметические и логические основы ЭВМ" можно предложить рассмотреть применение алгебры высказываний в релейно-контактных схемах.
№4. Комитет из трех человек решил применить электрическую схему для регистрации тайного голосования простым большинством голосов. Построить такую схему, при использовании которой голосующий нажимал бы на кнопку, причем в случае принятия решения загоралась бы сигнальная лампочка.
Используя операции конъюнкции и дизъюнкции получим сложное высказывание удовлетворяющее условию задачи. Х= (A and B) OR (A and C) OR (B and C)
(4. bas)
CLS
FOR A=-1 TO 0
FOR B=-1 TO 0
FOR C=-1 TO 0
X= (A AND B) OR (A AND C) OR (B AND C)
PRINT - A; - B; - C,-X
NEXT
NEXT
NEXT
Решение задачи на Паскале: (4. pas)
uses crt;
var a,b,c,x: boolean;
Begin
clrscr;
WRITELN ('a': 10,'b': 10,'c': 10,'x': 10);
writeln;
for a: =false to true do begin
for b: =false to true do begin
x: = (A and B) or (A and c) or (B and C); writeln (a: 10,b: 10,c: 10,x: 10);
end;
end;
readkey;
end.
------ A ---- B ------
Схема выглядит так ------ A ---- C ------
------ B ---- C ------
Рассмотренные выше решения задач с помощью компьютера, призваны помочь учащимся использовать компьютер, при прохождении темы, связанной с рассмотрением основ алгебры логики. Цель, которая преследуется при использовании компьютера для рассмотрения основных понятий логики, правил построения логических выражений и логических схем, теорем алгебры логики и приемам упрощения логического выражения следующая - учащийся представляет себе компьютер как инструмент, который помогает ему решать задачи логического плана, таким образом, расширяется поле применения компьютера. При этом компьютер выступает теперь не только как объект изучения, но и как средство, которое может помочь при решении ряда задач. Развивая вышесказанное, хотелось бы рассмотреть еще одно применение компьютера при решении логических задач. Но сначала следует ознакомиться с действиями, которые необходимо предпринять для решения логической задачи на компьютере:
Изучить условие задачи.
Обозначить используемые высказывания символами.
Используя логические связи составить логическое выражение для всех требований задачи.
Вычислить все значения этого логического выражения.
Проверить полученное решение по условию задачи.
№5: в соревнованиях по гимнастике участвуют Алла, Валя, Сима, Даша. Болельщики высказали предположения о возможных победителях.
1) первой будет Сима, Валя второй,
2) второй будет Сима, Даша - третьей,
3) Алла будет второй, Даша - четвертой.
По окончании соревнований оказалось, что в каждом из предположений только одно из высказываний истинно, другое ложно. Какое место на соревнованиях заняла каждая из девушек, если все они оказались на разных местах?
Решение.
Обозначим высказывания буквами соответственно A, B, C, D, E, F.
Так как только одно из высказываний истинно, то имеем исключающую дизъюнкцию, которая будет истинна:
A XORB, C XOR D, E XOR F
Кроме того, ложными будут высказывания:
A AND C, B AND C, D AND F, B AND E, C AND E
а, следовательно, истинными
NOT (A AND C) NOT (B AND C) NOT (D AND F) NOT (B AND E) NOT (C AND E)
Соединяя первую группу истинных высказываний в Х1, а вторую в Х2 получим Х=Х1*Х2. Получив таблицу истинности, решим
Решение задачи на Паскале: (5. pas)
Uses crt;
Var a,b,c,d,e,f: boolean;
x1,x2,x: boolean;
Begin
clrscr;
writeln ('a': 10,'b': 10,'c': 10,'d': 10,'e': 10,'f': 10);
for a: =false to true do begin
for b: =false to true do begin
for c: =false to true do begin
for d: =false to true do begin
for e: =false to true do begin
for f: =false to true do begin
x1: = (a xor b) and (c xor d) and (e xor f);
x2: = (not (a and c)) and (not (b and c)) and (not (d and f))
and (not (b and e)) and (not (c and e));
x: =x1 and x2;
if x<>false then begin
writeln; write (a: 10,b: 10,c: 10,d: 10,e: 10,f: 10);
end;
end;
end;
end;
end;
end;
end;
readkey;
end.
Ответ: 1 0 0 1 1 0 (0 - false, 1 - true)
|