Booleovská algebra. Pravdivostní tabulka. Karnaughova mapa. Booleovské n-krychle. Základní zákony. Unární a binární funkce. Podmínky.

Podobné dokumenty
Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

Binární logika Osnova kurzu

teorie logických spojek chápaných jako pravdivostní funkce

12. Booleova algebra, logická funkce určitá a neurčitá, realizace logických funkcí, binární kódy pro algebraické operace.

2. LOGICKÉ OBVODY. Kombinační logické obvody

Logické proměnné a logické funkce

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Výroková logika - opakování

Formální systém výrokové logiky

Booleova algebra. ZákonyBooleovy algebry Vyjádření logických funkcí

Základy číslicové techniky z, zk

Logika. 2. Výroková logika. RNDr. Luděk Cienciala, Ph. D.

Logické řízení. Náplň výuky

Disjunktivní a konjunktivní lní tvar formule. 2.přednáška

Matematika pro informatiky KMA/MATA

LOGIKA VÝROKOVÁ LOGIKA

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Výroková a predikátová logika - II

Výroková a predikátová logika - II

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

0. ÚVOD - matematické symboly, značení,

Logika II. RNDr. Kateřina Trlifajová PhD. Katedra teoretické informatiky Fakulta informačních technologíı BI-MLO, ZS 2011/12

P4 LOGICKÉ OBVODY. I. Kombinační Logické obvody

Výroková logika. Teoretická informatika Tomáš Foltýnek

Y36SAP Y36SAP-2. Logické obvody kombinační Formy popisu Příklad návrhu Sčítačka Kubátová Y36SAP-Logické obvody 1.

Matematická analýza 1

Matematická logika. Miroslav Kolařík

Matematika B101MA1, B101MA2

Matematická logika. Rostislav Horčík. horcik

Úvod do informatiky. Miroslav Kolařík

Architektura počítačů Logické obvody

Sémantika výrokové logiky. Alena Gollová Výroková logika 1/23

DIGITÁLN LNÍ OBVODY A MIKROPROCESORY 1. ZÁKLADNÍ POJMY DIGITÁLNÍ TECHNIKY

Jak jsem potkal logiku. Převod formule do (úplného) disjunktivního tvaru. Jan Hora

Výroková a predikátová logika - II

Programovací jazyk Pascal

Architektura počítačů Logické obvody

1. 5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD

Výroková logika. Sémantika výrokové logiky

Pro každé formule α, β, γ, δ platí: Pro každé formule α, β, γ platí: Poznámka: Platí právě tehdy, když je tautologie.

Každé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α

Čísla a číselné soustavy.

Klasická výroková logika - tabulková metoda

přednáška 2 Marie Duží

LOGICKÉ OBVODY 2 kombinační obvody, minimalizace

Algoritmizace a programování

Spojování výroků (podmínek) logickými spojkami

LOGICKÉ ŘÍZENÍ. Matematický základ logického řízení

Číslicové obvody základní pojmy

Algoritmizace a programování

Matematická indukce, sumy a produkty, matematická logika

Úvod do logiky (VL): 5. Odvození výrokových spojek z jiných

Predikátová logika. prvního řádu

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Paměť počítače. alg2 1

Unární je také spojka negace. pro je operace binární - příkladem může být funkce se signaturou. Binární je velká většina logických spojek

Základy logiky a teorie množin

Operátory. Základy programování 1 Tomáš Kühr

Úvod do informačních technologií

Teorie množin. Čekají nás základní množinové operace kartézské součiny, relace zobrazení, operace. Teoretické základy informatiky.

Úvod do informačních technologií

Řídicí struktury. alg3 1

Úvod do TI - logika Výroková logika (2.přednáška) Marie Duží

λογος - LOGOS slovo, smysluplná řeč )

2. ÚVOD DO OVLÁDACÍ TECHNIKY

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

1 Výroková logika 1. 2 Predikátová logika 3. 3 Důkazy matematických vět 4. 4 Doporučená literatura 7

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Kapitola 1. Úvod. 1.1 Značení. 1.2 Výroky - opakování. N... přirozená čísla (1, 2, 3,...). Q... racionální čísla ( p, kde p Z a q N) R...

Úvod do logiky (presentace 2) Naivní teorie množin, relace a funkce

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Základní pojmy teorie množin Vektorové prostory

LOGICKÉ ŘÍZENÍ. Matematický základ logického řízení. N Měřicí a řídicí technika 2012/2013. Logické proměnné

Marie Duží

Algoritmizace prostorových úloh

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Základy číslicové techniky z, zk

Okruh č.3: Sémantický výklad predikátové logiky

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

MATURITNÍ TÉMATA Z MATEMATIKY

1 Základní pojmy. 1.1 Množiny

Maturitní témata profilová část

Základy algoritmizace

platné nejsou Sokrates je smrtelný. (r) 1/??

Datové typy a jejich reprezentace v počítači.

Operátory. Základy programování 1 Martin Kauer (Tomáš Kühr)

Místo pojmu výroková formule budeme používat zkráceně jen formule. Při jejich zápisu

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Základní pojmy matematické logiky

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

Neuronové sítě Minimalizace disjunktivní normální formy

Vektorový prostor. Př.1. R 2 ; R 3 ; R n Dvě operace v R n : u + v = (u 1 + v 1,...u n + v n ), V (E 3 )...množina vektorů v E 3,

09. seminář logika (úvod, výroková).notebook. November 30, Logika

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

výrok-každésdělení,uněhožmásmyslseptát,zdaječinenípravdivé, aproněžprávějednaztěchtodvoumožnostínastává.

Matematika I. Přednášky: Mgr. Radek Výrut, Zkouška:

RELACE, OPERACE. Relace

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

Úvod do TI - logika Výroková logika - pokračování (3.přednáška) Marie Duží

Transkript:

Booleovská algebra. Pravdivostní tabulka. Karnaughova mapa. Booleovské n-krychle. Základní zákony. Unární a binární funkce. Podmínky. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. 1 / 45

Obsah přednášky 1 Booleovská funkce 2 Přehled unárních booleovských funkcí 3 Přehled binárních booleovských funkcí 4 Stavební prvky algoritmu 5 Blok příkazů 6 Podmíněný příkaz 2 / 45

Booleovská funkce 1. Úvod Spojité veličiny: Proměnné veličiny, které nabývají nekonečného množství hodnot. Lze je popsat spojitými proměnnými a vyjádřit reálnými datovými typy. Diskrétní veličiny: Proměnné veličiny, které nabývají konečného množství hodnot. Lze je popsat diskrétními proměnnými a vyjádřit celočíselnými datovými typy. Booleovská algebra: Proměnné veličiny nabývají hodnot 0,1. Hodnotu 0 lze interpretovat jako nepravda, hodnotu 1 jako pravda. V informatice hraje velmi výraznou roli při konstrukci relací. 3 / 45

Booleovská funkce 2. Booleovská funkce Booleovská funkce f je libovolná funkce, pro kterou platí f (x) : B n B, kde B = {0, 1}, a x = (x 1,..., x n). Nejčastější používané varianty: Příklady: n = 1, unární Jednoprvková booleovská algebra, B 1. Např. f (x 1 ): f (0) = 1, f (1) = 0. n = 2, binární Dvouprvková booleovská algebra, B 2. Např. f (x 1, x 2 ) : f (0, 0) = f (1, 1) = 0, f (0, 1) = f (1, 0) = 1. n = 3, ternární Tříprvková booleovská algebra, B 3. B 1 = {0, 1}, B 2 = {0, 1} 2 = {0, 1} {0, 1} = {{0, 0}, {0, 1}, {1, 0}, {1, 1}},... B n = {0, 1} n = {0, 1} {0, 1}... {0, 1} = {{0,..., 0}, {0,..., 1},..., {0,..., 0}, {0,..., 1}}. Počet prvků (uspořádaných entic): k = 2 n. Počet booleovských funkcí f :m = 2 k = 2 2n. Znázornění: Pravdivostní tabulka, Karnaughova mapa, Booleovská n-krychle. 4 / 45

3. Základní pojmy Minterm: součin kombinace n proměnných, např. m = x 1 x 2 x 3. Maxterm: součet kombinace n proměnných, např. M = x 1 + x 2 + x 3. Součtový tvar (SoMi), častější: Součinový tvar (PoMa): M i = m i = (x 1... x n) = x 1 +... + x n. 2 n 1 y = f (x 1,..., x n) = y i m i = i=1 2 n 1 y = f (x 1,..., x n) = (y i + M i ) = i=1 2 n 1 j:y j =1 m j. 2 n 1 j:y j =0 M j. On-set: množina všech mintermů mapovaných na 1 f 1 = {x i B n f (x i ) = 1}. Off-set: množina všech mintermů mapovaných na 0 f 0 = {x i B n f (x i ) = 0}.

Booleovská funkce 4. Pravdivostní tabulka: B 1 B 3 Schematické znázornění prvků a funkčních hodnot. Sousední prvky se liší právě o 1 hodnotu. Použitelné pro n 5, pak neefektivní. x 1 y = f (x 1 ) x 1 f 1 x 1 f 2 x 1 x 2 y = f (x 1, x 2 ) x 1 x 2 f 1 x 1 x 2 f 2 x 1 x 2 f 3 x 1 x 2 f 4 x 1 x 2 x 3 y = f (x 1, x 2, x 3 ) x 1 x 2 x 3 f 1 x 1 x 2 x 3 f 2 x 1 x 2 x 3 f 3 x 1 x 2 x 3 f 4 x 1 x 2 x 3 f 5 x 1 x 2 x 3 f 6 x 1 x 2 x 3 f 7 x 1 x 2 x 3 f 8 6 / 45

5. Ukázka součtového/součinového tvaru Funkce y = f (x 1, x 2 ) daná tabulkou (disjunkce): x 1 x 2 y m j M j 0 0 0 m 1 M 1 0 1 1 m 2 M 2 1 0 1 m 3 M 3 1 1 1 m 4 M 4 Součtový tvar: y = 0 m 1 + 1 m 2 + 1 m 3 + 1 m 4, = m 2 + m 3 + m 4, = (2, 3, 4), = x 1 x 2 + x 1 x 2 + x 1 x 2.. Součinový tvar: y = (0 + M 1 )(1 + M 2 )(1 + M 3 )(1 + M 4 ), = M 1, = (1), = x 1 + x 2. On/off set: f 1 = {{0, 1}, {1, 0}, {11}}, f 0 = {0, 1}.

6. Karnaughova mapa: B 1 B 3 Efektivnější reprezentace Booleovské funkce. Lze ji chápat jako speciální uspořádání pravdivostní tabulky. Indexy po hranách lze interpretovat jako souřadnice. B 1 : vektor, B 2 : matice, B 3 : projekce krychle. Sousední prvky v obou směrech se liší právě o 1 hodnotu. Lze použít pro minimalizaci výrazů bez znalosti booleovské algebry. x 1 x 1 x 2 0 1 0 x 1 x 2 x 1 x 2 x 1 1 x 1 x 2 x 1 x 2 x 3 00 01 11 10 0 x 1 x 2 x 3 x 1 x 2 x 3 x 1 x 2x 3 x 1 x 2x 3 x 1 1 x 1 x 2 x 3 x 1 x 2 x 3 x 1 x 2 x 3 x 1 x 2 x 3 x 2 Pro dimenze n > 4 komplikované. x 2 x 3 x 2 x 1 x 1

Booleovská funkce 7. Booleovské n-krychle: B 1 B 3 Grafická reprezentace. Každou booleovskou fci v B n lze znázornit n rozměrnou krychlí. Vrcholy představují mintermy ( ). Každá m-podkrychle tvořena 2 m mintermy, m < n. Hrany spojují prvky lišící se o 1. (x x x ) 1 2 3 (x 1, x 2, x 3 ) (x 1 x 2) (x 1 x 2) (x x x ) 1 2 3 (x x x ) 1 2 3 (x 1 ) (x 1) x 2 x 3 (x x x ) 1 2 3 (x 1 x 2 x 3 ) (x x ) (x x ) 1 2 1 2 (x x x ) (x x x ) 1 2 3 1 2 3 x 2 x 1 x 1 x 1 9 / 45

Booleovská funkce 8. Ukázka: B 2 Funkce: y = f (x 1, x 2 ) = x 1x 2 + x 2. Reprezentace tabulkou, Karnaughovou mapou a n-krychlemi. x 1 x 2 y x 1 /x 2 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 0 1 1 1 01 11 00 10 Tmavý uzel: 1. 10 / 45

9. Ukázka: B 3 Funkce: y = f (x 1, x 2, x 3 ) = x 1x 2 + x 1 x 3 + x 2 x 3. Reprezentace tabulkou, Karnaughovou mapou a n-krychlemi. x 1 x 2 x 3 y 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 x 1 /x 2 x 3 00 01 11 10 0 0 0 1 0 1 0 0 1 0 011 111 001 101 000 100 010 110

Booleovská funkce 10. Priorita booleovských operací Udává, v jakém pořadí jsou jednotlivé booleovské operace prováděny. Analogie s běžnými aritmetickými operacemi. Vyhodnocování výrazu z leva do prava. Pravidlo priority operací: Pravidlo priority operací platí následujícím způsobem: 1 Negace. 2 Konjunkce. 3 Disjunkce. Změna priorit operací: Pořadí vyhodnocování booleovských operací lze změnit prostřednictvím závorek. Příklad: platí následující ekvivalence?: f (x, y, z) : x (y + z x) = (x y) + z x. Neplatí. f (x, y, z) : ((x y) + z x) = x y + z x. Platí. 12 / 45

Booleovská funkce 11. Booleovské unární zákony Zákon dvojí negace: Zákon vyloučení třetí možnosti: Zákon sporu: Zákony opakování (idempotence): Zákony neutrálnosti: Zákony agresivnosti: ( x ) = x (1) x + x = 1 (2) x x = 0 (3) x + x = x (4) x x = x (5) x + 0 = x (6) x 1 = x (7) x + 1 = 1 (8) x 0 = 0 (9) 13 / 45

Booleovská funkce 12. Booleovské binární zákony (1/2) Komutativní zákony: x 1 + x 2 = x 2 + x 1 (10) x 1 x 2 = x 2 x 1 (11) Asociativní zákony: x 1 + (x 2 + x 3 ) = (x 1 + x 2 ) + x 3 (12) x 1 (x 2 x 3 ) = (x 1 x 2 ) x 3 (13) Distributivní zákony: x 1 (x 2 + x 3 ) = x 1 x 2 + x 1 x 3 (14) x 1 + (x 2 x 3 = (x 1 + x 2 ) (x 1 + x 3 ) (15) 14 / 45

Booleovská funkce 13. Booleovské binární zákony (2/2) De Morganovy zákony: (x 1 + x 2 ) = x 1 x 2 (16) (x 1 x 2 ) = x 1 + x 2 (17) Adsorpční zákony: x 1 + (x 1 x 2 ) = x 1 (18) x 1 (x 1 + x 2 ) = x 1 (19) Zákony adsorpce negace: x 1 + (x 1 x 2) = x 1 + x 2 (20) x 1 (x 1 + x 2) = x 1 x 2 (21) 15 / 45

Booleovská funkce 14. Minimalizace Booleovské funkce Vycházíme z Boolevských zákonů nebo používáme KM. Dva výrazy v SOM se liší v 1 proměnné v přímém/komplementárním tvaru y = a f (x) + a f (x),. = f (x) (a + a ), = f (x), tzv. Uniting Theorem. Dva výrazy v POS se liší v 1 proměnné v přímém/komplementárním tvaru y = (a + f (x)) (a + f (x)) = a a + a f (x) + a f (x) + f (x) f (x), = 0 + f (x) + f (x), = f (x). Vede k Shannon Expansion Theoremu Důsledek: f (x 1, x 2,..., x n) = x 1 f (1, x 2,..., x n) + x 1 f (0, x 2,..., x n), = x 1 g(x 2,..., x n) + x 1 h(x 2,..., x n). Každou Booleovskou funkci lze vyjádřit prostřednictvím konjunkce, disjunkce, negace. 16 / 45

Booleovská funkce 15. Příklady Součet sousedních mintermů (UT): Vyjádření maxtermu: y = f (x 1, x 2, x 3 ) = m 1 + m 2, = x 1 x 2 x 3 + x 1 x 2 x 3, = x 2 x 3. M 1 = (x 1 + x 2 + x 3 ) (x 1 + x 2 + x 3). = x 1 + x 2. Minimalizace Boleovské funkce v B 2 : y = f (x 1, x 2 ) = ([(x 1 x 2 ) + (x 1 x 2 )] + x 1, = [(x 1 x 2 ) ] (x 1 x 2 ) + x 1 (18) = (x 1 x 2 ) (x 1 x 2 ) + x 1 (2), = 0 + x 1 (4), = x 1. 17 / 45

Booleovská funkce 16. Minimalizace f s využitím Karnaughových map Efektivní způsob minimalizace Booleovských funkcí. Využití UT sousední mintermy v K-M se liší v 1 proměnné. Použitelné zpravidla pro n < 5. Výpočetně: Hledáme sousedy x j±1,k±1 k x j,k v K-M, kde f (x j±1,k±1 ) = 1 (n-tice). Na sousedy aplikován UT. Graficky: Hledáme, zda každá N-tice sousedů leží v x i, nebo v doplňku x i. Vyjádření s využitím SET (součet součinů). Pokud je většina prvků v K-M nenulová, lze pracovat s inverzní variantou K-M. Zjednodušení lze provést i bez znalostí Booleovských zákonů. 18 / 45

Booleovská funkce 17. Ukázka zjednodušení funkce (1/2) Dána funkce f (x 1, x 2, x 3 ) = (2, 4, 6), = x 1 x 2 x 3 + x 1 x 2 x 3 + x 1 x 2 x 3. x 2 x 3 x 00 01 11 10 1 0 1 0 0 1 f 1 = x 1 x 2 x 3 + x 1 x 2 x 3 = x 1 x 3 x 2 x 3 x 00 01 11 10 1 0 1 0 0 1 x 1 1 0 1 0 0 f 2 = x 1 x 2 x 3 + x 1 x 2 x 3 = x 2 x 3 1 0 1 0 0 00 01 11 10 x 1 x 2 x 3 1 0 00 01 11 10 x 1 x 2 x 3 1 0 00 01 11 10 x 1 x 2 x 3 1 0 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 0 0 x 3 x 3 x 2 f 1 = x 1 x 3 f 2 = x 2 x 3 19 / 45

Booleovská funkce 18. Ukázka zjednodušení funkce (2/2) Číselně: První n-tice Druhá n-tice Pak f 1 (x 1, x 2, x 3 ) = x 1 x 2 x 3 + x 1 x 2 x 3, = x 1 x 3. f 2 (x 1, x 2, x 3 ) = x 1 x 2 x 3 + x 1 x 2 x 3, = x 2 x 3. f (x 1, x 2, x 3 ) = f 1 (x 1, x 2, x 3 ) + f 2 (x 1, x 2, x 3 ), = x 1 x 3 + x 2 x 3. Graficky: První n-tice: vně x 1 (v x 1 ), uvnitř x 3, protíná x 2 (neuplatní se): f 1 (x 1, x 2, x 3 ) = x 1 x 3. Druhá n-tice: protíná x 1 (neuplatní se), vně x 2 (v x 2 ), uvnitř x 3 : f 2 (x 1, x 2, x 3 ) = x 2 x 3. 20 / 45

Booleovská funkce 19. Tautologie, kontradikce, ekvivalence Tautologie Kontradikce Splnitelnost Ekvivalence f, g f 1 = B n, f 0 =. f 0 = B n, f 1 =. f 0 B n. f (x) = g(x), x B n. 21 / 45

Booleovská funkce 20. Tautologie Představuje booleovskou formuli, která je vždy pravdivá. Pro libovolnou kombinaci argumentů nabývá hodnoty pravda. Unárních / binární zákony představují tautologie. Tautologie používány při posuzování identity vztahů, důkazech, atd. Nejjednodušší tautologie: zákon dvojí negace (x ) = x. Při navrhování podmínek v cyklu/rekurze se vyhýbejme tautologiím. Jinak vzniknou nekonečný cyklus či nekonečná rekurze. 22 / 45

Booleovská funkce 21. Kontradikce Booleovskou funkce, která je vždy nepravdivá. Pro libovolnou kombinaci argumentů nabývá hodnoty nepravda. Kontradikce je negací tautologie, tautologie je negací kontradikce. Jednoduchá kontradikce: zákon sporu x x = 0. Při navrhování podmínek v cyklu/rekurze se vyhýbejme kontradikcím. Jinak vzniknou nekonečný cyklus či nekonečná rekurze. 23 / 45

22. Příklad Ověřte, zda f (x) je tautologie/kontradikce: f (x) = x (x + (x + x )), = x (x + 1) 3, = x (1 ) 9, = x 0 10, = 0. Funkce f (x) je kontradikcí. Ověřte, zda f (x 1, x 2 ) je tautologie/kontradikce: f (x 1, x 2 ) = [ ((x 1 x 2 ) + x 1 ) (x 1 (x 2 + x 1 ) ], = [ ((x 1 x 2 ) + x 1 ) (x 1 ) ] 20, = (x 1 x 1 ) 19, = 0 4, = 1. Funkce f (x 1, x 2 ) je tautologií.

Přehled unárních booleovských funkcí 23. Unární booleovská funkce Unární booleovská funkce pracuje pouze s jednou proměnnou f (x) : B 1 B, x = x 1 Definiční obor unární funkce dán 2 1 hodnotami. Existuje 2 21 unárních booleovských funkcí. x 1 f 1 (x 1 ) f 2 (x 1 ) f 3 (x 1 ) f 4 (x 1 ) 0 0 1 0 1 1 0 0 1 1 Přehled unárních booleovských funkcí: Falsum. Negace. Aserce. Verum. 25 / 45

24. Falsum Přehled unárních booleovských funkcí Funkci y = f 1 (x) nazýváme falsum, jestliže platí f 1 (x 1 ) {0}. Tato funkce libovolné hodnotě x přiřazuje hodnotu nepravda. Pravdivostní tabulka funkce f 1 (x): x f 1 (x) 0 0 1 0 26 / 45

25. Negace Přehled unárních booleovských funkcí Funkci y = f 2 (x) nazýváme negací, jestliže platí { 1, pro x 1 = 0, f 2 (x 1 ) = 0, pro x 1 = 1.. Negace je nejznámější a nejčastěji používanou unární funkcí. Přiřazuje hodnotě f (x 1 ) opačnou hodnotu proměnné x 1. Označení negace: x 1. Hodnota x 1 je doplňkem (complement) k x 1 (a naopak). Pravdivostní tabulka negace: x f 1 (x) 0 1 1 0 V programovacích jazycích odvozených od jazyka C bývá negace označována symbolem!. 27 / 45

26. Aserce Přehled unárních booleovských funkcí Funkci y = f 3 (x) nazýváme asercí, jestliže platí { 1, pro (x 1 ) = 1, f 3 (x 1 ) = 0, pro (x 1 ) = 0.. Aserce přiřazuje hodnotě f (x 1 ) hodnotu proměnné x 1. Pravdivostní tabulka aserce: x f 1 (x) 0 0 1 1 Tato funkce se v praxi příliš nepoužívá. 28 / 45

27. Verum Přehled unárních booleovských funkcí Funkci y = f 4 (x) nazýváme verum, jestliže platí f 4 (x 1 ) {1}. Tato funkce libovolné hodnotě x 1 přiřazuje hodnotu True. Pravdivostní tabulka verum: x f 1 (x) 0 1 1 1 Tato funkce se v praxi příliš nepoužívá. 29 / 45

Přehled binárních booleovských funkcí 28. Binární booleovská funkce Unární booleovská funkce pracuje pouze s dvěma proměnnými f (x) : B 2 B, x = {x 1, x 2 } Definiční obor binární funkce dán 2 2 hodnotami. Existuje 2 212 = 16 binárních booleovských funkcí. Nejčastěji používané booleovské binární funkce: Konjunkce. Disjunkce. Negace konjunkce. Negace disjunkce. Ekvivalence. Nonekvivalence. Implikace. 30 / 45

Přehled binárních booleovských funkcí 28. Binární booleovská funkce Unární booleovská funkce pracuje pouze s dvěma proměnnými f (x) : B 2 B, x = {x 1, x 2 } Definiční obor binární funkce dán 2 2 hodnotami. Existuje 2 212 = 16 binárních booleovských funkcí. Nejčastěji používané booleovské binární funkce: Konjunkce. Disjunkce. Negace konjunkce. Negace disjunkce. Ekvivalence. Nonekvivalence. Implikace. 31 / 45

Přehled binárních booleovských funkcí 30. Přehled Booleovských funkcí v B 2 x 1 x 2 f 1 f 2 f 3 f 4 f 5 f 6 f 7 f 8 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 x 1 x 2 f 9 f 10 f 11 f 12 f 13 f 14 f 15 f 16 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 32 / 45

31. Konjunkce Přehled binárních booleovských funkcí Konjunkcí neboli logickým součinem nazýváme takovou funkci f popsanou následující pravdivostní tabulkou: x 1 x 2 f (x 1, x 2 ) 0 0 0 0 1 0 1 0 0 1 1 1 Funkční hodnota je rovna jedné pouze v případě, kdy jsou oba vstupní argumenty x 1, x 2 rovny jedné. Logický součin označujeme znakem, zápis a b čteme jako a i b. Pro vyjádření konjunkce používáme logickou spojku AND. V programovacích jazycích odvozených od jazyka C bývá konjunkce označována symbolem &&. 33 / 45

Tomáš V Bayer programovacích bayertom@natur.cuni.cz jazycích (Katedra aplikované odvozených Booleovská geoinformatiky algebra. aod kartografie, jazyka Přírodovědecká C bývá fakulta disjunkce UK.) 34 / 45 32. Disjunkce Přehled binárních booleovských funkcí Disjunkcí neboli logickým součtem nazýváme takovou funkci f popsanou následující pravdivostní tabulkou: x 1 x 2 f (x 1, x 2 ) 0 0 0 0 1 1 1 0 1 1 1 1 Poslední řádkem tabulky se disjunkce liší od obyčejného součtu. Funkční hodnota je rovna nule pouze v případě, kdy jsou oba vstupní argumenty x 1, x 2 rovny nule. Logický součet označujeme znakem +, zápis a + b čteme jako a nebo b. Pro vyjádření disjunkce používáme logickou spojku OR.

Přehled binárních booleovských funkcí 33. Negace konjunkce Negaci logického součinu nazýváme takovou funkci f popsanou následující pravdivostní tabulkou. x 1 x 2 f (x 1, x 2 ) 0 0 1 0 1 1 1 0 1 1 1 0 Funkční hodnota nabývá jedné v případě, kdy oba argumenty x 1, x 2 nejsou rovny jedné. Tuto funkci nazýváme Shefferovou funkcí. Pro její vyjádření používáme logickou spojku NAND. 35 / 45

Přehled binárních booleovských funkcí 34. Negace disjunkce Negaci logického součtu nazýváme takovou funkci f popsanou následující pravdivostní tabulkou: x 1 x 2 f (x 1, x 2 ) 0 0 1 0 1 0 1 0 0 1 1 0 Funkční hodnota nabývá jedné v případě, kdy oba argumenty x 1, x 2 nejsou jsou rovny nule. Tuto funkci nazýváme Pierceovou funkcí. Pro její vyjádření používáme logickou spojku NOR. 36 / 45

Přehled binárních booleovských funkcí 35. Nonekvivalence Nonekvivalencí nazýváme takovou funkci f popsanou následující pravdivostní tabulkou: x 1 x 2 f (x 1, x 2 ) 0 0 0 0 1 1 1 0 1 1 1 0 Funkce je analogií sčítání, označujeme ji znakem. Její hodnota je pravdivá pokud se oba argumenty x 1, x 2 liší. Pro její vyjádření používáme XOR= exlucive OR. 37 / 45

36. Implikace Přehled binárních booleovských funkcí Implikací nazýváme takovou funkci f popsanou následující pravdivostní tabulkou: x 1 x 2 f (x 1, x 2 ) 0 0 1 0 1 1 1 0 0 1 1 1 U implikace je důležité pořadí argumentů x 1, x 2, x 1 je p edpoklad a x 2 je tvrzení. Lze interpretovat jako Jestliže platí x 1, pak platí x 2. Funkční hodnota nabývá False, pokud je první výrok pravdivý a druhý nepravdivý. 38 / 45

Stavební prvky algoritmu 37. Stavební prvky programu Základní stavební prvky programu: příkazy. Dělení příkazů: Jednoduché příkazy Základní stavební jednotka programu, neobsahují další příkazy. Přiřazovací příkaz, prázdný příkaz, příkaz skoku, příkaz podprogramu (procedury, funkce). Strukturované příkazy Tvořeny jednoduchými či dalšími příkazy. Složený příkaz (blok), příkaz pro větvení programu (podmínka), příkaz pro opakování (cyklus). Umožňují realizovat více operací nad datovými položkami. Vzájemně mohou být kombinovány. Implementovány prakticky ve všech programovacích jazycích. 39 / 45

Blok příkazů 38. Blok příkazů Používají se v případech, kdy je nutno provádět více akcí. Posloupnost kroků, které jsou prováděny postupně v zadaném pořadí. Jednotlivé kroky mohu/nemusí být elementární. Označován jako složený příkaz. V Pythonu uvozen : odsazení tabelátorem, uvnitř libovolný počet příkazů. V jiných jazycích (C/C++/Java) použity {}. if x < 0: # Nasleduje blok a = 10 b = 2.0 * a; c = a * a + b * b; print (c) #Ackoliv promenna deklarovana v bloku, #lze ji pouzit i jinde 40 / 45

Podmíněný příkaz 39. Příkazy pro větvení programu Příkazy pro větvení bývají často označovány jako tzv. řídící struktury. Patří k nejčastěji používaným konstrukcím. Ovlivňují, které příkazy budou provedeny v závislosti na hodnotách booleovských výrazů. Bývají proto nazývány podmíněnými příkazy. Realizují větvení algoritmu, reagují na situace, ke kterým dochází v průběhu zpracování programu. O tom, která z větví se bude provádět, rozhoduje pravdivostní hodnota podmínky. Typy podmínek: neúplná podmínka. úplná podmínka. 41 / 45

Podmíněný příkaz 40. Neúplná podmínka Pokud výraz nabývá pravdivé hodnoty, provede se příkaz resp. blok příkazů. Neřeší, co se bude dělat v případě nesplnění podmínky. if vyraz: prikaz1 prikaz2... Pokud je to možné, podmínky neuvádíme v negaci, ale v kladné formě. Příklady: if x > 0: x += 10 Vnořená podmínka: podmínka uvnitř těla jiné podmínky if x < 0: if y > 0: x -= 10 if (x < 0) & (y > 0): x -= 10 #Vnorena podminka #Spojeni obou podminek do jedne 42 / 45

41. Úplná podmínka Podmíněný příkaz Úplná podmínka vznikne rozšířením neúplné podmínky o konstrukci else. Provedena, pokud podmínka nebude splněna. Umožňuje konstruovat složitější podmínky. Jednoduchý příkaz v těle podmínky: Příklady: if vyraz: prikaz1 prikaz2... else: prikaz3 prikaz4... if x > 0: x += 10 else: x -= 10 43 / 45

Podmíněný příkaz 42. Kombinace více podmínek Pro kombinaci více podmínek používán příkaz elif. Umožňuje realizovat složitější větvení (>2 varianty) if vyraz1: prikaz1 prikaz2... elif vyraz2: prikaz3 prikaz4... elif vyraz3: prikaz5 prikaz6... else: prikaz7 prikaz8... 44 / 45

43. Příklad: kvadratická rovnice import math from math import sqrt a = int(input("a: ")) b = int(input("b: ")) c = int(input("c: ")) #Standardni vstup D = b * b - 4. * a * c #Diskriminant if D < 0: #0 reseni print ("Nema reseni v R.") elif D == 0: #1 reseni x = (-b + sqrt(d))/(2. * a) print ("Dvojnasobny koren: ", x) else: #2 reseni x1 = (-b - sqrt(d))/(2. * a) x2 = (-b + sqrt(d))/(2. * a) print ("Dva koreny: ", x1, " a", x2)