14 Silmaring: Tõeväärtused
Eespool vaatlesime salatinäidet:
kartul_olemas = True makaron_olemas = False salatikaste_olemas = True print((kartul_olemas or makaron_olemas) and salatikaste_olemas)
Soovitasime proovida programmi tööd muutujate kartul_olemas, makaron_olemas ja salatikaste_olemas erinevatel väärtustel. Kerkib küsimus, mitu erinevat varianti selleks on? Igaüks kolmest muutujast võib omada kahte erinevat väärtust. Kui oleks ainult üks muutuja, siis oleks võimalusi kaks:
TrueFalse
Kui oleks ainult kaks muutujat, siis oleks võimalusi neli:
True,TrueTrue,FalseFalse,TrueFalse,False
Kui on kolm muutujat, siis on võimalusi kaheksa:
True,True,TrueTrue,True,FalseTrue,False,TrueTrue,False,FalseFalse,True,TrueFalse,True,FalseFalse,False,TrueFalse,False,False
Enesekontroll (1 ülesanne)
Meie näites on salati jaoks vaja kartulit või makaroni. Sõnal “või” on tavakeeles mõnevõrra teistsugune tähendus, kui programmeerimises (või matemaatilises loogikas). Tavakeeles on “või” sageli välistav – kas see või teine (aga mitte mõlemad). Loogikas ja programmeerimisel on tehe tõene ka siis, kui mõlemad operandid on tõesed. Selle võib esitada ka tõeväärtustabelina. Loogikas tähistatakse or-tehet sageli märgiga or. Tõene ja väär on tähistatud vastavalt t ja v.V

Toome ka tõeväärtustabeli -tehte jaoks, mida sageli tähistatakse märgiga and&.

Meie salatinäites on tõeväärtustabel arvutatud kahes järgus: kõigepealt sooritatakse A v B, mis meil tähendab , ja pärast seda ülejäänud avaldis kartul_olemas or makaron_olemas(kartul_olemas or makaron_olemas) and salatikaste_olemas.

Loogiliste avaldiste samaväärsus
Salatinäite puhul võime läheneda ka teistmoodi: kartulisalati jaoks oleks meil vaja kartulit ja salatikastet, makaronisalati jaoks oleks vaja makarone ja salatikastet. Kokkuvõttes piisab, kui vähemalt ühe jaoks neist on materjalid olemas. Vastav loogiline avaldis oleks järgmine:
(kartul_olemas and salatikaste_olemas) or (makaron_olemas and salatikaste_olemas)
Tegelikult on see samaväärne avaldisega, mis meil enne oli:
(kartul_olemas or makaron_olemas) and salatikaste_olemas
Loogiliste tehete puhul kehtivad mitmed seadused (analoogiliselt algebrale). Näiteks
- avaldis
on samaväärne avaldisegaa and b;b and a - avaldis
on samaväärne avaldisegaa or b;b or a - avaldis
on samaväärne avaldisega(a or b) and c;(a and c) or (b and c)
Loogilistes tehetes orienteerumine on programmeerijale väga oluline ja seetõttu on seda arendavad õppeained ka ülikoolide õppekavades.