Discuss Scratch

AANNTTOONNII
Scratcher
1000+ posts

Bloki operacji logicznych

BLOK “i”

Blok ten znajduje się w zakładce “wyrażenia”. Przyjmuje dwie wartości logiczne i zwraca prawdę wtedy i tylko wtedy jeśli obie są prawdą, w przeciwnym razie zwraca fałsz.

Przykładowo:
<<[1] = [1]> i <[2]=[3]>>
zwraca fałsz

BLOK “lub”
Blok ten znajduje się w zakładce “wyrażenia”. Przyjmuje dwie wartości logiczne i zwraca fałsz wtedy i tylko wtedy jeśli obie są fałszem, w przeciwnym razie zwraca prawdę.

Przykładowo:
<<[1] = [1]> lub <[2]=[3]>>
zwraca prawdę

BLOK “nie”
Blok ten znajduje się w zakładce “wyrażenia”. Przyjmuje jedną wartość logiczną i zwraca jej negację.

Przykładowo:
<nie <[1]=[1]>>
zwraca fałsz

TAUTOLOGIA
Tautologią nazywamy wyrażenie, które jest zawsze prawdziwe. Dla przykładu wyrażenie:
<<dotyka [klocek v] ?> lub <nie <dotyka [klocek v] ?>>>
jest tautologiczne ponieważ zawsze jest prawdziwe. Możemy więc wyjąc takiego if-a.

WYRAŻENIE SPEŁNIALNE
Wyrażeniem spełnialnym nazywamy takie wyrażenie dla, którego istnieje takie podstawienie zmiennych, że jest ono prawdziwe. W szczególności każda tautologia jest spełnialna. Dla przykładu wyrażenie:
<<czy kolor [#953700] dotyka [#41f43a] ?> i <[1] = [7]>>
nie jest spełnialne ponieważ zdanie to jest zawsze fałszywe. Możemy więc wywalić takiego if-a wraz z zawartością

Czasami takie wyrażenia mogą być ukryte tzn. dla następującego kodu:
zawsze
jeżeli <[7]=(kafel)> to


powiedz [Złapałem kota!]

w przeciwnym razie

powtórz (8) razy
przesuń o (7) kroków
zmień [kafel v] o (3)
jeżeli <[7]=(kafel)> to
powiedz [matematyka nie ma sensu!] przez (2) s
end
end

end
end
Matematyka ma sens, ale tylko przez 2 sekundy… A innymi słowy nigdy do tego if-a nie wejdziemy. Zauważanie i likwidacja takich wyrażeń to podstawa optymalizacji programu.

Last edited by AANNTTOONNII (March 17, 2020 18:28:09)

Powered by DjangoBB

Standard | Mobile