{"id":321,"date":"2019-01-20T06:04:55","date_gmt":"2019-01-20T06:04:55","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/?post_type=chapter&#038;p=321"},"modified":"2019-04-08T15:48:47","modified_gmt":"2019-04-08T15:48:47","slug":"silmaring-toevaartused","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/chapter\/silmaring-toevaartused\/","title":{"raw":"Silmaring: T\u00f5ev\u00e4\u00e4rtused","rendered":"Silmaring: T\u00f5ev\u00e4\u00e4rtused"},"content":{"raw":"<p class=\"vspace\">Eespool vaatlesime salatin\u00e4idet:<\/p>\r\n\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">kartul_olemas = True\r\nmakaron_olemas = False\r\nsalatikaste_olemas = True\r\nprint((kartul_olemas or makaron_olemas) and salatikaste_olemas)<\/pre>\r\nSoovitasime proovida programmi t\u00f6\u00f6d muutujate <code>kartul_olemas<\/code>, <code>makaron_olemas<\/code> ja <code>salatikaste_olemas<\/code> erinevatel v\u00e4\u00e4rtustel. Kerkib k\u00fcsimus, mitu erinevat varianti selleks on? Iga\u00fcks kolmest muutujast v\u00f5ib omada kahte erinevat v\u00e4\u00e4rtust. Kui oleks ainult \u00fcks muutuja, siis oleks v\u00f5imalusi kaks:\r\n<ul>\r\n \t<li><code>True<\/code><\/li>\r\n \t<li><code>False<\/code><\/li>\r\n<\/ul>\r\n<p class=\"vspace\">Kui oleks ainult kaks muutujat, siis oleks v\u00f5imalusi neli:<\/p>\r\n\r\n<ul>\r\n \t<li><code>True<\/code>, <code>True<\/code><\/li>\r\n \t<li><code>True<\/code>, <code>False<\/code><\/li>\r\n \t<li><code>False<\/code>, <code>True<\/code><\/li>\r\n \t<li><code>False<\/code>, <code>False<\/code><\/li>\r\n<\/ul>\r\n<p class=\"vspace\">Kui on kolm muutujat, siis on v\u00f5imalusi kaheksa:<\/p>\r\n\r\n<ul>\r\n \t<li><code>True<\/code>, <code>True<\/code>, <code>True<\/code><\/li>\r\n \t<li><code>True<\/code>, <code>True<\/code>, <code>False<\/code><\/li>\r\n \t<li><code>True<\/code>, <code>False<\/code>, <code>True<\/code><\/li>\r\n \t<li><code>True<\/code>, <code>False<\/code>, <code>False<\/code><\/li>\r\n \t<li><code>False<\/code>, <code>True<\/code>, <code>True<\/code><\/li>\r\n \t<li><code>False<\/code>, <code>True<\/code>, <code>False<\/code><\/li>\r\n \t<li><code>False<\/code>, <code>False<\/code>, <code>True<\/code><\/li>\r\n \t<li><code>False<\/code>, <code>False<\/code>, <code>False<\/code><\/li>\r\n<\/ul>\r\n<h3>Enesekontroll (1 \u00fclesanne)<\/h3>\r\n<code>[h5p id=\"53\"]<\/code>\r\n\r\nMeie n\u00e4ites on salati jaoks vaja kartulit <strong>v\u00f5i<\/strong> makaroni. S\u00f5nal \"v\u00f5i\" on tavakeeles m\u00f5nev\u00f5rra teistsugune t\u00e4hendus, kui programmeerimises (v\u00f5i matemaatilises loogikas). Tavakeeles on \"v\u00f5i\" sageli v\u00e4listav - kas see v\u00f5i teine (aga mitte m\u00f5lemad). Loogikas ja programmeerimisel on tehe <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">or<\/code><\/code> t\u00f5ene ka siis, kui m\u00f5lemad operandid on t\u00f5esed. Selle v\u00f5ib esitada ka t\u00f5ev\u00e4\u00e4rtustabelina. Loogikas t\u00e4histatakse <em>or<\/em>-tehet sageli m\u00e4rgiga <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">V<\/code><\/code>. T\u00f5ene ja v\u00e4\u00e4r on t\u00e4histatud vastavalt <em>t<\/em> ja <em>v<\/em>.\r\n\r\n<img class=\"alignnone size-full wp-image-322\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/voitabel.png\" alt=\"\" width=\"118\" height=\"157\" \/>\r\n\r\nToome ka t\u00f5ev\u00e4\u00e4rtustabeli <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">and<\/code><\/code>-tehte jaoks, mida sageli t\u00e4histatakse m\u00e4rgiga <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&amp;<\/code>.\r\n\r\n<img class=\"alignnone size-full wp-image-323\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/jatabel.png\" alt=\"\" width=\"114\" height=\"151\" \/>\r\n\r\nMeie salatin\u00e4ites on t\u00f5ev\u00e4\u00e4rtustabel arvutatud kahes j\u00e4rgus: k\u00f5igepealt sooritatakse A v B, mis meil t\u00e4hendab <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">kartul_olemas or makaron_olemas<\/code><\/code>, ja p\u00e4rast seda \u00fclej\u00e4\u00e4nud avaldis <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">(kartul_olemas or makaron_olemas) and salatikaste_olemas<\/code>.\r\n\r\n<img class=\"alignnone size-full wp-image-324\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/voijatabel.png\" alt=\"\" width=\"208\" height=\"264\" \/>\r\n<h2>Loogiliste avaldiste samav\u00e4\u00e4rsus<\/h2>\r\nSalatin\u00e4ite puhul v\u00f5ime l\u00e4heneda ka teistmoodi: kartulisalati jaoks oleks meil vaja kartulit ja salatikastet, makaronisalati jaoks oleks vaja makarone ja salatikastet. Kokkuv\u00f5ttes piisab, kui v\u00e4hemalt \u00fche jaoks neist on materjalid olemas. Vastav loogiline avaldis oleks j\u00e4rgmine:\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">(kartul_olemas and salatikaste_olemas) or (makaron_olemas and salatikaste_olemas)<\/pre>\r\n<p class=\"vspace\">Tegelikult on see samav\u00e4\u00e4rne avaldisega, mis meil enne oli:<\/p>\r\n\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">(kartul_olemas or makaron_olemas) and salatikaste_olemas<\/pre>\r\n<p class=\"vspace\">Loogiliste tehete puhul kehtivad mitmed seadused (analoogiliselt algebrale). N\u00e4iteks<\/p>\r\n\r\n<ul>\r\n \t<li>avaldis <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">a and b<\/code><\/code> on samav\u00e4\u00e4rne avaldisega <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">b and a<\/code><\/code>;<\/li>\r\n \t<li>avaldis <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">a or b<\/code><\/code> on samav\u00e4\u00e4rne avaldisega <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">b or a<\/code><\/code>;<\/li>\r\n \t<li>avaldis <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">(a or b) and c<\/code><\/code> on samav\u00e4\u00e4rne avaldisega <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">(a and c) or (b and c)<\/code><\/code>;<\/li>\r\n<\/ul>\r\n<p class=\"vspace\">Loogilistes tehetes orienteerumine on programmeerijale v\u00e4ga oluline ja seet\u00f5ttu on seda arendavad \u00f5ppeained ka \u00fclikoolide \u00f5ppekavades.<\/p>","rendered":"<p class=\"vspace\">Eespool vaatlesime salatin\u00e4idet:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">kartul_olemas = True\r\nmakaron_olemas = False\r\nsalatikaste_olemas = True\r\nprint((kartul_olemas or makaron_olemas) and salatikaste_olemas)<\/pre>\n<p>Soovitasime proovida programmi t\u00f6\u00f6d muutujate <code>kartul_olemas<\/code>, <code>makaron_olemas<\/code> ja <code>salatikaste_olemas<\/code> erinevatel v\u00e4\u00e4rtustel. Kerkib k\u00fcsimus, mitu erinevat varianti selleks on? Iga\u00fcks kolmest muutujast v\u00f5ib omada kahte erinevat v\u00e4\u00e4rtust. Kui oleks ainult \u00fcks muutuja, siis oleks v\u00f5imalusi kaks:<\/p>\n<ul>\n<li><code>True<\/code><\/li>\n<li><code>False<\/code><\/li>\n<\/ul>\n<p class=\"vspace\">Kui oleks ainult kaks muutujat, siis oleks v\u00f5imalusi neli:<\/p>\n<ul>\n<li><code>True<\/code>, <code>True<\/code><\/li>\n<li><code>True<\/code>, <code>False<\/code><\/li>\n<li><code>False<\/code>, <code>True<\/code><\/li>\n<li><code>False<\/code>, <code>False<\/code><\/li>\n<\/ul>\n<p class=\"vspace\">Kui on kolm muutujat, siis on v\u00f5imalusi kaheksa:<\/p>\n<ul>\n<li><code>True<\/code>, <code>True<\/code>, <code>True<\/code><\/li>\n<li><code>True<\/code>, <code>True<\/code>, <code>False<\/code><\/li>\n<li><code>True<\/code>, <code>False<\/code>, <code>True<\/code><\/li>\n<li><code>True<\/code>, <code>False<\/code>, <code>False<\/code><\/li>\n<li><code>False<\/code>, <code>True<\/code>, <code>True<\/code><\/li>\n<li><code>False<\/code>, <code>True<\/code>, <code>False<\/code><\/li>\n<li><code>False<\/code>, <code>False<\/code>, <code>True<\/code><\/li>\n<li><code>False<\/code>, <code>False<\/code>, <code>False<\/code><\/li>\n<\/ul>\n<h3>Enesekontroll (1 \u00fclesanne)<\/h3>\n<p><code><\/p>\n<div id=\"h5p-53\">\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-53\" class=\"h5p-iframe\" data-content-id=\"53\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"Tingimuslause-8-k\u00fcmmet\u00f5ev\u00e4\u00e4rtust\"><\/iframe><\/div>\n<\/div>\n<p><\/code><\/p>\n<p>Meie n\u00e4ites on salati jaoks vaja kartulit <strong>v\u00f5i<\/strong> makaroni. S\u00f5nal &#8220;v\u00f5i&#8221; on tavakeeles m\u00f5nev\u00f5rra teistsugune t\u00e4hendus, kui programmeerimises (v\u00f5i matemaatilises loogikas). Tavakeeles on &#8220;v\u00f5i&#8221; sageli v\u00e4listav &#8211; kas see v\u00f5i teine (aga mitte m\u00f5lemad). Loogikas ja programmeerimisel on tehe <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">or<\/code><\/code> t\u00f5ene ka siis, kui m\u00f5lemad operandid on t\u00f5esed. Selle v\u00f5ib esitada ka t\u00f5ev\u00e4\u00e4rtustabelina. Loogikas t\u00e4histatakse <em>or<\/em>-tehet sageli m\u00e4rgiga <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">V<\/code><\/code>. T\u00f5ene ja v\u00e4\u00e4r on t\u00e4histatud vastavalt <em>t<\/em> ja <em>v<\/em>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-322\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/voitabel.png\" alt=\"\" width=\"118\" height=\"157\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/voitabel.png 118w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/voitabel-65x86.png 65w\" sizes=\"auto, (max-width: 118px) 100vw, 118px\" \/><\/p>\n<p>Toome ka t\u00f5ev\u00e4\u00e4rtustabeli <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">and<\/code><\/code>-tehte jaoks, mida sageli t\u00e4histatakse m\u00e4rgiga <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&amp;<\/code>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-323\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/jatabel.png\" alt=\"\" width=\"114\" height=\"151\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/jatabel.png 114w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/jatabel-65x86.png 65w\" sizes=\"auto, (max-width: 114px) 100vw, 114px\" \/><\/p>\n<p>Meie salatin\u00e4ites on t\u00f5ev\u00e4\u00e4rtustabel arvutatud kahes j\u00e4rgus: k\u00f5igepealt sooritatakse A v B, mis meil t\u00e4hendab <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">kartul_olemas or makaron_olemas<\/code><\/code>, ja p\u00e4rast seda \u00fclej\u00e4\u00e4nud avaldis <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">(kartul_olemas or makaron_olemas) and salatikaste_olemas<\/code>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-324\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/voijatabel.png\" alt=\"\" width=\"208\" height=\"264\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/voijatabel.png 208w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/voijatabel-65x83.png 65w\" sizes=\"auto, (max-width: 208px) 100vw, 208px\" \/><\/p>\n<h2>Loogiliste avaldiste samav\u00e4\u00e4rsus<\/h2>\n<p>Salatin\u00e4ite puhul v\u00f5ime l\u00e4heneda ka teistmoodi: kartulisalati jaoks oleks meil vaja kartulit ja salatikastet, makaronisalati jaoks oleks vaja makarone ja salatikastet. Kokkuv\u00f5ttes piisab, kui v\u00e4hemalt \u00fche jaoks neist on materjalid olemas. Vastav loogiline avaldis oleks j\u00e4rgmine:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">(kartul_olemas and salatikaste_olemas) or (makaron_olemas and salatikaste_olemas)<\/pre>\n<p class=\"vspace\">Tegelikult on see samav\u00e4\u00e4rne avaldisega, mis meil enne oli:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">(kartul_olemas or makaron_olemas) and salatikaste_olemas<\/pre>\n<p class=\"vspace\">Loogiliste tehete puhul kehtivad mitmed seadused (analoogiliselt algebrale). N\u00e4iteks<\/p>\n<ul>\n<li>avaldis <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">a and b<\/code><\/code> on samav\u00e4\u00e4rne avaldisega <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">b and a<\/code><\/code>;<\/li>\n<li>avaldis <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">a or b<\/code><\/code> on samav\u00e4\u00e4rne avaldisega <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">b or a<\/code><\/code>;<\/li>\n<li>avaldis <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">(a or b) and c<\/code><\/code> on samav\u00e4\u00e4rne avaldisega <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">(a and c) or (b and c)<\/code><\/code>;<\/li>\n<\/ul>\n<p class=\"vspace\">Loogilistes tehetes orienteerumine on programmeerijale v\u00e4ga oluline ja seet\u00f5ttu on seda arendavad \u00f5ppeained ka \u00fclikoolide \u00f5ppekavades.<\/p>\n","protected":false},"author":12,"menu_order":12,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-321","chapter","type-chapter","status-publish","hentry"],"part":247,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/users\/12"}],"version-history":[{"count":4,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/321\/revisions"}],"predecessor-version":[{"id":410,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/321\/revisions\/410"}],"part":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/parts\/247"}],"metadata":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/321\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/media?parent=321"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapter-type?post=321"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/contributor?post=321"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/license?post=321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}