Де і в якому столітті виготовлено монету.

Розв’язання: Для розв’язку задачі згадаємо логічні операції, які ми розглядали раніше. З розглянутих операцій для розв’язку даної задані нам будуть потрібні операції not, and і or. Запишемо висловлення хлопчиків при допомозі цих операцій, ввівши попередньо наступні позначення:

А = {монета грецька},

B = {монета фінікійська},

C = {монету викарбувано в ІІІ столітті},

D = {монету викарбувано в ІV столітті },

E = {монету викарбувано в V столітті }.

Крім того використаємо для зменшення кількості записів такі позначення логічних операцій, які прийнято в алгебрі логіки, а саме:

n not (A) Ы Де і в якому столітті виготовлено монету. - student2.ru

n A and B Ы A&B

n A or B Ы AЪ B

Використовуючи домовленості, запишемо висловлювання юних нумізматів на мові алгебри логіки:

A&E – слова Юрка,

В &С – слова Сашка,

Де і в якому столітті виготовлено монету. - student2.ru Ъ D – слова Михайла.

Зі слів вчителя історії випливає, що кожне з цих висловлень хибне, так як кожен з хлопчиків вірно висловив лише половину свого висловлення. Що це значить? Припустимо, що Юрко вірно вказав, що монета грецька (А = 1), але помилився в часі її виготовлення (Е = 0). Якщо ж він не правий в тому, що монета грецька (А = 0), то вірно вказав час виготовлення (Е = 1). Звідси випливає, що

А & Де і в якому столітті виготовлено монету. - student2.ru Ъ Де і в якому столітті виготовлено монету. - student2.ru & Е = 1.

Проводячи аналогічні міркування для висловлень Сашка та Михайла, отримаємо ще два істинних складних висловлення:

В & Де і в якому столітті виготовлено монету. - student2.ru Ъ Де і в якому столітті виготовлено монету. - student2.ru & C = 1

Де і в якому столітті виготовлено монету. - student2.ru & Де і в якому столітті виготовлено монету. - student2.ru Ъ A & D = 1.

Якщо ж ці висловлювання логічно перемножити, то отримаємо істинне складне висловлення:

(А & Де і в якому столітті виготовлено монету. - student2.ru Ъ Де і в якому столітті виготовлено монету. - student2.ru & Е) & (В & Де і в якому столітті виготовлено монету. - student2.ru Ъ Де і в якому столітті виготовлено монету. - student2.ru & C) & ( Де і в якому столітті виготовлено монету. - student2.ru & Де і в якому столітті виготовлено монету. - student2.ru Ъ A & D) = 1

Розкриваємо дужки, тобто спрощуємо отриманий складний вираз:

А & Де і в якому столітті виготовлено монету. - student2.ru & B & Де і в якому столітті виготовлено монету. - student2.ru & Де і в якому столітті виготовлено монету. - student2.ru & Де і в якому столітті виготовлено монету. - student2.ru Ъ A & Де і в якому столітті виготовлено монету. - student2.ru & B & Де і в якому столітті виготовлено монету. - student2.ru & A & D Ъ

А & Де і в якому столітті виготовлено монету. - student2.ru & Де і в якому столітті виготовлено монету. - student2.ru & C & Де і в якому столітті виготовлено монету. - student2.ru & Де і в якому столітті виготовлено монету. - student2.ru Ъ A & Де і в якому столітті виготовлено монету. - student2.ru & Де і в якому столітті виготовлено монету. - student2.ru & C & A & D Ъ

Де і в якому столітті виготовлено монету. - student2.ru & E & B & Де і в якому столітті виготовлено монету. - student2.ru & Де і в якому столітті виготовлено монету. - student2.ru & Де і в якому столітті виготовлено монету. - student2.ru Ъ Де і в якому столітті виготовлено монету. - student2.ru & E & B & Де і в якому столітті виготовлено монету. - student2.ru & A & D Ъ

Де і в якому столітті виготовлено монету. - student2.ru & E & Де і в якому столітті виготовлено монету. - student2.ru &C & Де і в якому столітті виготовлено монету. - student2.ru & Де і в якому столітті виготовлено монету. - student2.ru Ъ Де і в якому столітті виготовлено монету. - student2.ru & E & B & C & A & D = 1.

Так як А & Де і в якому столітті виготовлено монету. - student2.ru = 0 (монета не може бути одночасно і грецькою і не грецькою), то будуть рівні нулю (будуть хибними) і вирази:

А & Де і в якому столітті виготовлено монету. - student2.ru & B & Де і в якому столітті виготовлено монету. - student2.ru & Де і в якому столітті виготовлено монету. - student2.ru & Де і в якому столітті виготовлено монету. - student2.ru = 0

А & Де і в якому столітті виготовлено монету. - student2.ru & Де і в якому столітті виготовлено монету. - student2.ru & C & Де і в якому столітті виготовлено монету. - student2.ru & Де і в якому столітті виготовлено монету. - student2.ru = 0

Де і в якому столітті виготовлено монету. - student2.ru & E & B & Де і в якому столітті виготовлено монету. - student2.ru & A & D = 0

Де і в якому столітті виготовлено монету. - student2.ru & E & B & C & A & D = 0

Крім того, з умови випливає, що:

так як A & B = 0, то A & Де і в якому столітті виготовлено монету. - student2.ru & B & Де і в якому столітті виготовлено монету. - student2.ru & A & D = 0,

C & D = 0, то A & Де і в якому столітті виготовлено монету. - student2.ru & Де і в якому столітті виготовлено монету. - student2.ru & C & A & D = 0,

E & C = 0, то Де і в якому столітті виготовлено монету. - student2.ru & E & Де і в якому столітті виготовлено монету. - student2.ru &C & Де і в якому столітті виготовлено монету. - student2.ru & Де і в якому столітті виготовлено монету. - student2.ru = 0.

(З яких даних умови це випливає?)

Тому залишається єдина відповідь:

Де і в якому столітті виготовлено монету. - student2.ru & E & B & Де і в якому столітті виготовлено монету. - student2.ru & Де і в якому столітті виготовлено монету. - student2.ru & Де і в якому столітті виготовлено монету. - student2.ru = 1, тобто істинними є висловлення В і Е.

Програмна реалізація даного розв’язку з виведенням станів всіх логічних змінних і відповідних повідомлень приведена нижче. Крім того під час виконання дана програма будує в пам’яті таблицю істинності для отриманого висловлення. Рекомендуємо Вам модифікувати дану програму для отримання значень таблиці істинності при всіх значеннях змінних.

program logic1;

uses crt;

const a1 = ‘ Монета грецька. ’;

b1 = ‘ Монета фiнiкiйська. ’;

c1 = ‘ Монету викарбувано в III столiттi. ’;

d1 = ‘ Монету викарбувано в IV столiттi. ’;

e1 = ‘ Монету викарбувано в V столiттi. ’;

var

a,b,c,d,e : boolean;

function answer: boolean;

begin

answer := (not (a)) and (e) and (b) and (not(c)) and (not a) and (not d);

end;

begin

clrscr;

for a := false to true do

for b := false to true do

for c := false to true do

for d := false to true do

for e := false to true do

begin

if answer = true then

begin

writeln(a,‘ ’,b,‘ ’,c,‘ ’,d,‘ ’,e,‘ ’,answer);

if a = true then writeln(a1);

if b = true then writeln(b1);

if c = true then writeln(c1);

if d = true then writeln(d1);

if e = true then writeln(e1);

end;

end;

writeln;

readln;

end.

Перед тим, як перейти до наступної задачі, спробуйте задати функцію answer таким чином, щоб в ній не було готового результату, а були лише дані, що отримуються на підставі аналізу умови задачі.

Розглянемо ще одну задачу такого типу. Вона буде цікавою ще й тим, що ми введемо нову логічну операцію, яка в мові Паскаль не визначена.

Наши рекомендации