Форум » Логические выражения » Запись логического выражения на Паскале » Ответить

Запись логического выражения на Паскале

Поляков: Олеся пишет: [quote]Как на паскале записать условие для логической функции: ((y-> x) \/ (¬z /\ w)) ≡ (w ≡ x). Не идет такая запись: if ((not(y)or x)or (not(z)and w))xor (w xor x)=1 then writeln(w,' ',x,' ',y,' ',z)[/quote][pre2]if ((y <= x)or (not(z) and w)) = (w = x) then writeln(w,' ',x,' ',y,' ',z)[/pre2]

Ответов - 7

Олеся:

Поляков: Все переменные должны быть Boolean.

Олеся: Нельзя преобразовать тип integer к boolean var w,x,y,z:boolean; begin for w:=0 to 1 do for x:=0 to 1 do for y:=0 to 1 do for z:=0 to 1 do if ((y <= x)or (not(z) and w)) = (w = x) then writeln(w,' ',x,' ',y,' ',z) end.


Поляков: Олеся пишет: Нельзя преобразовать тип integer к boolean [pre2] var w,x,y,z:boolean; begin for w:=False to True do for x:=False to True do for y:=False to True do for z:=False to True do if ((y <= x)or (not(z) and w)) = (w = x) then writeln(integer(w),' ',integer(x),' ',integer(y),' ',integer(z)) end.[/pre2]

Олеся: Можно я тогда задам еще один вопрос, чтобы до конца разобраться, как правильно функции прописывать! Почему тогда для функции (x \/ y) /\ ¬(y≡z) /\ ¬w на паскале сработала программа var w,x,y,z:integer; begin for w:=0 to 1 do for x:=0 to 1 do for y:=0 to 1 do for z:=0 to 1 do if ((x or y)and (y xor z) and (not(w))) = 1 then writeln(w,' ',x,' ',y,' ',z) end. Или лучше всегда работать с типом boolean в заданиях № 2?

Поляков: Олеся пишет: if ((x or y)and (y xor z) and (not(w))) = 1 then writeln(w,' ',x,' ',y,' ',z) В этом случае вы фактически использовали побитовые операции. Для этой функции (где нет отношений "равно", "не равно", "импликация") такой подход часто правильный ответ, потому что фактически операции выполняются с одним младшим битом числа. Но есть одна проблема - с not. Попробуйте запустить:[pre2] begin for var w:=0 to 1 do print( not(w) ); end.[/pre2]Поэтому лучше не дергать за хвост тигра и использовать Boolean.

Олеся: Отдельно благодарю за оперативные ответы!



полная версия страницы