Prawa De Morgana w programowaniu

prawa de morgana napis

W artykule zaprezentuję jak można wykorzystać prawa De Morgana w programowaniu. W artykule przedstawię definicję praw De Morgana oraz omówię ich użycie w kodzie źródłowym. Na przykładach dowiemy się jak można poprawić czytelność kodu źródłowego dzięki wykorzystaniu praw De Morgana.

Definicja praw De Morgana

Definicja praw De Morgana pojawia się w wybranych działach matematycznych np. w logice, matematyce dyskretnej. Prawa De Morgana mają zastosowanie w wielu obszarach matematyki. Na potrzebny tego artykułu zostanie przedstawiona definicja praw De Morgana w logice.

I prawo De Morgana:
¬(p ∧ q) ⇔ (¬p ∨ ¬q)
W programowaniu możemy zapisać jako:
!(p && q) == (!p || !q)

II prawo De Morgana:
¬(p ∨ q) ⇔ (¬p ∧ ¬q)
W programowaniu możemy zapisać jako:
!(p || q) == (!p && !q)

Poprawa czytelności kodu dzięki wykorzystaniu praw De Morgana

Gdy mamy do czynienia w kodzie źródłowym ze złożonymi wyrażeniami logicznymi to niejednokrotnie może okazać się, że możemy je uprościć wykorzystując prawa De Morgana. Dzięki takiemu zabiegowi możemy uzyskać poprawę czytelności kodu źródłowego. Poniżej znajduje się pierwszy przykład kodu źródłowego, który zostanie ulepszony:

boolean promocja = !(brakKartyKlienta && pierwszeZakupyWSklepie);

Na mocy I prawa De Morgana możemy przekształcić powyższy kod źródłowy do następującej postaci:

boolean promocja = !brakKartyKlienta || !pierwszeZakupyWSklepie;

Otrzymany kod źródłowy możemy usprawnić poprzez uproszczenie zmiennych logicznych. W wyniku tej operacji finalny kod źródłowy wygląda następująco:

boolean promocja = jestKartaKlienta || kolejneZakupyWSklepie;

Dzięki wykonaniu dwóch przekształceń: wykorzystując I prawo De Morgana oraz upraszając zmienne logiczne otrzymaliśmy kod źródłowy, który jest czytelniejszy od początkowej wersji. Poniżej znajduje się kolejny przykład kodu źródłowego, który zostanie ulepszony:

boolean stalyKlient = !(brakKontaWSklepie || brakZakupowWSklepie);

Na mocy II prawa De Morgana możemy przekształcić powyższy kod źródłowy do następującej postaci:

boolean stalyKlient = !brakKontaWSklepie && !brakZakupowWSklepie;

Analogicznie do poprzedniego przykładu, otrzymany kod źródłowy możemy usprawnić poprzez uproszczenie zmiennych logicznych. W wyniki czego finalny kod źródłowy wygląda następująco:

boolean stalyKlient = jestKontoWSklepie && wykonanoZakupyWSklepie;

Dzięki wykonaniu dwóch przekształceń: wykorzystując II prawo De Morgana oraz upraszczając zmienne logiczne otrzymaliśmy kod źródłowy, który jest czytelniejszy od oryginalnej wersji.

Podsumowanie:
  • prawa De Morgana mają zastosowanie w różnych dziedzinach nauki, możemy je również zastosować w programowaniu,
  • w wielu przypadkach dzięki wykorzystaniu praw De Morgana możemy otrzymać czytelniejszy kod źródłowy.

Dziękuję za przeczytanie artykułu 🙂.

Jeżeli chcesz poszerzyć wiedzę na temat czytelności kodu źródłowego to zachęcam do zapoznania się z artykułem Kod źródłowy jak dobre czasopismo? dostępnym tutaj: https://konstrukcjaoprogramowania.pl/kod-zrodlowy-jak-dobre-czasopismo

1 myśl na “Prawa De Morgana w programowaniu”

  1. Pingback: Typ boolean i nadmiarowy kod - Konstrukcja oprogramowania

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *