Реферат: Алгебра высказываний на уроках информатики
№11: Находчивый комендант.
Во время ремонта общежития комендант был вынужден переселять студентов. Дело это не простое. Посудите сами. На одну из новых комнат претендовало восемь человек, а поселить в ней можно было только четверых. Комендант стал расспрашивать студентов, кто с кем хочет жить. Вот, что он услышал:
АНДРЕЙ согласен на любых соседей.
БОРИС без КОСТИ не переселится. (KIMPB)
КОСТЯ не хочет жить в одной комнат с ВАСИЛИЕМ. (WIMPNOTK)
ВАСИЛИЙ согласен жить с кем угодно.
ДИМА не будет переселяться без ЮРЫ. D AND Q
ФЕДЯ не будет без ГРИШИ жить в одной комнате с ДИМОЙ, а без ДИМЫ не будет жить в одной комнате с КОСТЕЙ. DIMP (FANDG) К IMP (FANDD)
ГРИША не хочет, чтобы его соседями были и БОРИС и КОСТЯ вместе, кроме того, он не желает жить в одной комнате ни с АНДРЕЕМ, ни с ВАСИЛИЕМ. G IMP (NOT (B AND K))
GIMP (NOT A)
GIMP (NOTW)
ЮРА даст согласие переехать в новую комнату, если туда же переберутся либо БОРИС либо ФЕДЯ. Кроме того, ЮРА не будет жить в одной комнате с КОСТЕЙ, если туда не переедет ГРИША, и не желает жить в одной комнате ни с АНДРЕЕМ, ни с ВАСИЛИЕМ.
(Q AND B) XOR (Q AND F) K IMP (Q AND G) (Q AND NOT A) AND (Q AND NOT B)
“Задали мне задачу”, - подумал комендант. Но, в конце концов сумел учесть все пожелания. Каким образом?
Решение на Паскале: (11. pas)
Usescrt;
Vara,b,k,w,d,q,f,g: boolean;
x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x: boolean;
Begin
clrscr;
writeln ('a': 10,'b': 10,'k': 10,'w': 10,'d': 10,'q': 10,'f': 10,'g': 10);
for a: =false to true do begin
for b: =false to true do begin
for k: =false to true do begin
for w: =false to true do begin
for d: =false to true do begin
for q: =false to true do begin
for f: =false to true do begin
for g: =false to true do begin