{"id":249,"date":"2019-01-16T12:09:58","date_gmt":"2019-01-16T12:09:58","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/?post_type=chapter&#038;p=249"},"modified":"2019-08-27T16:43:45","modified_gmt":"2019-08-27T16:43:45","slug":"tingimuslause","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/chapter\/tingimuslause\/","title":{"raw":"Tingimuslause","rendered":"Tingimuslause"},"content":{"raw":"Eelmisel n\u00e4dalal vaatasime algoritme, kus mitmes kohas olenes j\u00e4rgmine samm teatud tingimuse t\u00e4idetusest. N\u00e4iteks \u00f5nnetuse puhul: \"Kui kannatanu ei hinga, tee kunstlikku hingamist.\" Sellisel juhul on kirjeldatud tegevus juhuks, kui tingimus on t\u00e4idetud ja kui pole t\u00e4idetud, siis j\u00e4etakse see samm lihtsalt vahele. Siinkohal on veel huvitav see, et tingimus on eituse kaudu esitatud - \"kannatanu ei hinga\".\r\n\r\n[caption id=\"attachment_283\" align=\"aligncenter\" width=\"233\"]<img class=\"wp-image-283 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2_eihinga.png\" alt=\"\" width=\"233\" height=\"298\" \/> Joonis 1. Tingimus ja tegevus[\/caption]\r\n\r\nTihti on m\u00e4\u00e4ratud tegevused m\u00f5lemal juhul: tingimuse kehtides sooritatakse \u00fcks tegevus, vastasel juhul teine tegevus.\r\n\r\n[caption id=\"attachment_285\" align=\"aligncenter\" width=\"243\"]<img class=\"wp-image-285 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2_ilm.png\" alt=\"\" width=\"243\" height=\"268\" \/> Joonis 2. Tingimus ja erinevad tegevused[\/caption]\r\n\r\nProgrammides realiseeritakse selliseid valikuid <strong>tingimuslausete<\/strong> (ehk <strong>valikulausete<\/strong> ehk <strong><em>if<\/em>-lausete<\/strong>) abil.\r\n<h2>Tingimuslause<\/h2>\r\n<p class=\"vspace\">Tahame n\u00e4iteks teha programmi, mis k\u00fcsib kasutajalt sisenemiseks <strong>PIN-koodi<\/strong> ja kontrollib selle \u00f5igsust. Programm v\u00f5iks<\/p>\r\n\r\n<ul>\r\n \t<li>\u00f5ige parooli sisestamisel \u00f6elda: \u201cSisenesid pangaautomaati!\u201d<\/li>\r\n \t<li>vale parooli sisestamisel aga hoopis: \u201cVale parool! Ligip\u00e4\u00e4s keelatud!\u201d.<\/li>\r\n<\/ul>\r\n<p class=\"vspace\">Programmi alguses tuleb kasutajalt PIN-kood k\u00fcsida, seda saab teha j\u00e4rgmise lausega:<\/p>\r\n\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">sisestatud_pin = input(\"Sisesta PIN-kood: \")<\/pre>\r\n<p class=\"vspace\">N\u00fc\u00fcd on vaja kontrollida, kas parool on \u00f5ige v\u00f5i ei ole. Selleks saab kasutada <strong>tingimuslauset<\/strong>:<\/p>\r\n\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">if sisestatud_pin == \"1234\":\r\n    print(\"Sisenesid pangaautomaati!\")<\/pre>\r\n<p class=\"vspace\"><strong>Tingimuslauses<\/strong> (ka <strong>valikulause<\/strong> v\u00f5i <strong><em>if<\/em>-lause<\/strong>) on kesksel kohal tingimus, mille alusel otsustatakse, kuidas programm edasi t\u00f6\u00f6tab. Tingimus on esitatud t\u00f5ev\u00e4\u00e4rtuse t\u00fc\u00fcpi avaldisena, mille v\u00e4\u00e4rtus on t\u00f5ene (<code>True<\/code>) v\u00f5i v\u00e4\u00e4r (<code>False<\/code>) - tingimus on t\u00e4idetud v\u00f5i ei ole t\u00e4idetud.<\/p>\r\n<p class=\"vspace\">Tingimusi saab (muuhulgas) moodustada j\u00e4rgmiste m\u00e4rkidega:<\/p>\r\n\r\n<ul>\r\n \t<li><code>&lt;<\/code>, <code>&gt;<\/code>, <code>&lt;=<\/code>, <code>&gt;=<\/code> v\u00f5rratuste kehtivuse kontrollimiseks;<\/li>\r\n \t<li><code>==<\/code> v\u00f5rdsuse kontrollimiseks;<\/li>\r\n \t<li><code>!=<\/code> mittev\u00f5rdsuse kontrollimiseks.<\/li>\r\n<\/ul>\r\n<p class=\"vspace\">K\u00f5ige sagedamini on tingimus esitatud teatud v\u00f5rdlemisena. V\u00f5rrelda v\u00f5ib n\u00e4iteks muutuja v\u00e4\u00e4rtust ja s\u00f5ne v\u00e4\u00e4rtust (<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">sisestatud_pin == \"1234\"<\/code>). Oluline on t\u00e4hele panna, et muutuja v\u00e4\u00e4rtus peaks siis olema samuti s\u00f5net\u00fc\u00fcpi. Topeltv\u00f5rdusm\u00e4rgiga (<code>==<\/code>) avaldis on v\u00e4\u00e4rtusega <code>True<\/code>, kui m\u00f5lemad pooled on v\u00f5rdsed ja v\u00e4\u00e4rtusega <code>False<\/code>, kui need ei ole v\u00f5rdsed.<\/p>\r\n<p class=\"vspace\">V\u00f5rrelda saab ka arvulise muutuja v\u00e4\u00e4rtust ja arvu. N\u00e4iteks avaldis <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">a &gt;= 1<\/code><\/code> on t\u00f5ene, kui <code>a<\/code> on suurem kui \u00fcks v\u00f5i \u00fchega v\u00f5rdne. Samuti v\u00f5ib v\u00f5rrelda omavahel kahe muutuja v\u00e4\u00e4rtust.<\/p>\r\n<p class=\"vspace\">Tegelikult v\u00f5ib tingimusena olla kirjas lihtsalt <code>True<\/code> (v\u00f5i <code>False<\/code>), aga siis ei toimu tegelikult mingit valikut. N\u00e4iteks avaldis <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">5 == 4<\/code> on alati v\u00e4\u00e4r ja samav\u00e4\u00e4rne <code>False<\/code> kirjutamisega. Tingimuslausel on sisuline m\u00f5te siis, kui tingimusavaldis v\u00f5ib omandada erinevaid t\u00f5ev\u00e4\u00e4rtusi.<\/p>\r\n\r\n<h3>Treppimine (ridade taane)<\/h3>\r\n<p class=\"vspace\">Kindlasti ei tohi unustada koolonit (<code>:<\/code>) <em>if<\/em>-rea l\u00f5pust. Paneme t\u00e4hele, et <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">print<\/code><\/code> on taandatud v\u00f5rreldes eelmise reaga paremale. Selleks tuleb vajutada \u00fche korra TAB-klahvi v\u00f5i 4 korda t\u00fchikut. Sellega m\u00e4\u00e4rame, et <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">print<\/code> k\u00e4sk t\u00e4idetaks <em>if<\/em>-tingimusest s\u00f5ltuvalt. Sellist tegevust nimetatakse <strong>treppimiseks<\/strong>. Head programmeerimiskeskkonnad (n\u00e4iteks Thonny) toetavad treppimist sellega, et p\u00e4rast eelmise rea koolonit viivad kursori juba sobivalt taandesse.<\/p>\r\n\r\n<h3><em>else<\/em>-konstruktsioon<\/h3>\r\n<p class=\"vspace\">Meie loodav programm juba kuidagi t\u00f6\u00f6tab, aga mitte siis, kui parool on vale. Tingimuslausel v\u00f5ib olla <em>else<\/em>-osa, millega m\u00e4\u00e4ratakse, mis juhtub siis, kui tingimus ei ole t\u00e4idetud (vastava avaldise v\u00e4\u00e4rtus on <code>False<\/code>).<\/p>\r\n<p class=\"vspace\">Hetkel lisame j\u00e4rgmise l\u00f5igu:<\/p>\r\n\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">else:\r\n    print(\"Vale\u00a0parool!\u00a0Ligip\u00e4\u00e4s\u00a0keelatud!\")<\/pre>\r\nK\u00f5ik read kokku panduna saame j\u00e4rgmise koodi:\r\n\r\n<strong>N\u00e4iteprogramm. <em>if<\/em>-lausega Pangaautomaat<\/strong>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">sisestatud_pin = input(\"Sisesta PIN-kood: \")\r\nif sisestatud_pin == \"1234\":\r\n    print(\"Sisenesid pangaautomaati!\")\r\nelse:\r\n    print(\"Vale\u00a0parool!\u00a0Ligip\u00e4\u00e4s\u00a0keelatud!\")<\/pre>\r\nK\u00e4ivita programm ka ise.\r\n<h3>Videomaterjal<\/h3>\r\nVaata ka <a href=\"https:\/\/youtu.be\/VHsGkNtEGxk\" target=\"_blank\" rel=\"noopener noreferrer\">programmi loomise videot<\/a>.\r\n<h3>Hargnemine<\/h3>\r\nPangaautomaadi programmi plokkskeem n\u00e4eb v\u00e4lja selline:\r\n\r\n[caption id=\"attachment_286\" align=\"aligncenter\" width=\"285\"]<img class=\"wp-image-286 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2-pangaautomaat1.png\" alt=\"\" width=\"285\" height=\"484\" \/> Joonis 3. Pangaautomaadi plokkskeem[\/caption]\r\n<p class=\"vspace\">Sellist \u00fches v\u00f5i teises suunas otsuse tegemist ja liikumist vastavalt tingimuse kontrollile nimetatakse programmeerimises <strong>hargnemiseks<\/strong>. Programm otsustab, millist haru pidi edasi minna: kui tingimus on t\u00e4idetud, siis minnakse edasi \u00fchte haru pidi, kui ei ole, siis teist haru pidi. R\u00f5hutada tuleb, et tingimuslauses on harusid alati kaks, isegi kui <em><code>else<\/code><\/em>-osa \"n\u00e4ha\" pole. Kui <em>else<\/em> puudub, siis ei tehta v\u00e4\u00e4ra tingimusavaldise korral mitte midagi (sama h\u00e4sti v\u00f5iks <code>else<\/code>-osa kirjutada ja t\u00fchjaks j\u00e4tta).<\/p>\r\n<p class=\"vspace\">Kui eelnevas programmis <em><code>else<\/code><\/em>-osa poleks, siis plokkskeem oleks selline:<\/p>\r\n\r\n\r\n[caption id=\"attachment_287\" align=\"aligncenter\" width=\"213\"]<img class=\"wp-image-287 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2-pangaautomaat2.png\" alt=\"\" width=\"213\" height=\"484\" \/> Joonis 4. Pangaautomaadi plokkskeem ilma else-haruta[\/caption]\r\n<h3>Enesekontroll (1 \u00fclesanne)<\/h3>\r\nMeenutame, et enesekontrolli\u00fclesannetes on lubatud karistamatult ka valesti vastata.\r\n\r\n<code>[h5p id=\"43\"]<\/code>\r\n<h2>S\u00f5nede v\u00f5rdlemine<\/h2>\r\nS\u00f5nede v\u00f5rdlemisel loetakse suurt\u00e4hed ja v\u00e4iket\u00e4hed erinevateks. N\u00e4iteks <code>\"A\"<\/code> ja <code>\"a\"<\/code> ei ole v\u00f5rdsed. M\u00f5nede \u00fclesannete puhul me tahame neid siiski v\u00f5rdsetena kasutada. Selleks on lihtsaim viis k\u00f5ik t\u00e4hed kas suureks v\u00f5i v\u00e4ikseks teisendada. N\u00e4iteks saab sisendi puhul k\u00f5ik t\u00e4hed v\u00e4ikeseks teisendada:\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">sisestatud_v\u00e4ike = input().lower()<\/pre>\r\nSarnaselt saab k\u00f5ik t\u00e4hed suureks teisendada:\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">sisestatud_suur = input().upper()<\/pre>\r\n<h2>Arvude v\u00f5rdlemine<\/h2>\r\n<p class=\"vspace\">Eelmises n\u00e4ites kontrollisime koodi v\u00f5rdsust s\u00f5nega <code>\"1234\"<\/code>. Oluline on siinkohal just see, et jutum\u00e4rgid teevad sellest muidu arvuna n\u00e4ivast asjast s\u00f5ne. Tihti on meil tarvis v\u00f5rrelda siiski arvulisi v\u00e4\u00e4rtusi.<\/p>\r\n<p class=\"vspace\">Kasutame n\u00fc\u00fcd arvude v\u00f5rdlemisel v\u00f5rratust. Teeme programmi, mis k\u00fcsib kasutajalt vanust ja kui ta on noorem kui 14, siis \u00f6eldakse, et ta on selle m\u00e4ngu m\u00e4ngimiseks liiga noor. T\u00e4isarvu sisestamiseks peame sisendiks saadud s\u00f5ne t\u00e4isarvuks teisendama. Seda saab teha funktsiooniga <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">int<\/code><\/code> (n\u00e4iteks <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">arv = int(input())<\/code>):<\/p>\r\n<strong>N\u00e4iteprogramm. Vanuse kontrollimine<\/strong>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">print(\"Kui vana oled?\")\r\nvanus = int(input())\r\n \r\nif vanus &lt; 14:\r\n    print(\"Oled natukene noor edasip\u00e4\u00e4suks.\")\r\nelse:\r\n    print(\"Sisenesid v\u00f5lumaailma.\")<\/pre>\r\n<h3>Enesekontroll (1 \u00fclesanne)<\/h3>\r\n<code>[h5p id=\"44\"]<\/code>\r\n<h3>\u00dclesandeid huvilistele<\/h3>\r\n<p class=\"vspace\">Siin on m\u00f5ned \u00fclesanded, mille v\u00f5ivad need, kes end ebakindlamalt tunnevad, vahele j\u00e4tta. Soovitame soojalt siiski proovida!<\/p>\r\n\r\n<div class=\"vspace\"><\/div>\r\n<ul>\r\n \t<li>Kirjuta PIN-koodi k\u00fcsimise programm nii \u00fcmber, et sisestatud koodi v\u00f5rreldakse arvuga <code>1234<\/code> (just arvuga, mitte s\u00f5nega). Programm v\u00f5iks ka \u00f6elda, kas sisestatud vale kood oli \"liiga suur\" v\u00f5i \"liiga v\u00e4ike\".\r\n<div class=\"vspace\"><\/div><\/li>\r\n \t<li>Katseta, kas ka s\u00f5nesid saab v\u00f5rrelda m\u00e4rkide <code>&lt;<\/code>, <code>&lt;=<\/code>, <code>&gt;=<\/code> ja <code>&gt;<\/code> abil. Kuidas tulemust kommenteerida?<\/li>\r\n<\/ul>","rendered":"<p>Eelmisel n\u00e4dalal vaatasime algoritme, kus mitmes kohas olenes j\u00e4rgmine samm teatud tingimuse t\u00e4idetusest. N\u00e4iteks \u00f5nnetuse puhul: &#8220;Kui kannatanu ei hinga, tee kunstlikku hingamist.&#8221; Sellisel juhul on kirjeldatud tegevus juhuks, kui tingimus on t\u00e4idetud ja kui pole t\u00e4idetud, siis j\u00e4etakse see samm lihtsalt vahele. Siinkohal on veel huvitav see, et tingimus on eituse kaudu esitatud &#8211; &#8220;kannatanu ei hinga&#8221;.<\/p>\n<figure id=\"attachment_283\" aria-describedby=\"caption-attachment-283\" style=\"width: 233px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-283 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2_eihinga.png\" alt=\"\" width=\"233\" height=\"298\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2_eihinga.png 233w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2_eihinga-65x83.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2_eihinga-225x288.png 225w\" sizes=\"auto, (max-width: 233px) 100vw, 233px\" \/><figcaption id=\"caption-attachment-283\" class=\"wp-caption-text\">Joonis 1. Tingimus ja tegevus<\/figcaption><\/figure>\n<p>Tihti on m\u00e4\u00e4ratud tegevused m\u00f5lemal juhul: tingimuse kehtides sooritatakse \u00fcks tegevus, vastasel juhul teine tegevus.<\/p>\n<figure id=\"attachment_285\" aria-describedby=\"caption-attachment-285\" style=\"width: 243px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-285 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2_ilm.png\" alt=\"\" width=\"243\" height=\"268\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2_ilm.png 243w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2_ilm-65x72.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2_ilm-225x248.png 225w\" sizes=\"auto, (max-width: 243px) 100vw, 243px\" \/><figcaption id=\"caption-attachment-285\" class=\"wp-caption-text\">Joonis 2. Tingimus ja erinevad tegevused<\/figcaption><\/figure>\n<p>Programmides realiseeritakse selliseid valikuid <strong>tingimuslausete<\/strong> (ehk <strong>valikulausete<\/strong> ehk <strong><em>if<\/em>-lausete<\/strong>) abil.<\/p>\n<h2>Tingimuslause<\/h2>\n<p class=\"vspace\">Tahame n\u00e4iteks teha programmi, mis k\u00fcsib kasutajalt sisenemiseks <strong>PIN-koodi<\/strong> ja kontrollib selle \u00f5igsust. Programm v\u00f5iks<\/p>\n<ul>\n<li>\u00f5ige parooli sisestamisel \u00f6elda: \u201cSisenesid pangaautomaati!\u201d<\/li>\n<li>vale parooli sisestamisel aga hoopis: \u201cVale parool! Ligip\u00e4\u00e4s keelatud!\u201d.<\/li>\n<\/ul>\n<p class=\"vspace\">Programmi alguses tuleb kasutajalt PIN-kood k\u00fcsida, seda saab teha j\u00e4rgmise lausega:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">sisestatud_pin = input(\"Sisesta PIN-kood: \")<\/pre>\n<p class=\"vspace\">N\u00fc\u00fcd on vaja kontrollida, kas parool on \u00f5ige v\u00f5i ei ole. Selleks saab kasutada <strong>tingimuslauset<\/strong>:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">if sisestatud_pin == \"1234\":\r\n    print(\"Sisenesid pangaautomaati!\")<\/pre>\n<p class=\"vspace\"><strong>Tingimuslauses<\/strong> (ka <strong>valikulause<\/strong> v\u00f5i <strong><em>if<\/em>-lause<\/strong>) on kesksel kohal tingimus, mille alusel otsustatakse, kuidas programm edasi t\u00f6\u00f6tab. Tingimus on esitatud t\u00f5ev\u00e4\u00e4rtuse t\u00fc\u00fcpi avaldisena, mille v\u00e4\u00e4rtus on t\u00f5ene (<code>True<\/code>) v\u00f5i v\u00e4\u00e4r (<code>False<\/code>) &#8211; tingimus on t\u00e4idetud v\u00f5i ei ole t\u00e4idetud.<\/p>\n<p class=\"vspace\">Tingimusi saab (muuhulgas) moodustada j\u00e4rgmiste m\u00e4rkidega:<\/p>\n<ul>\n<li><code>&lt;<\/code>, <code>&gt;<\/code>, <code>&lt;=<\/code>, <code>&gt;=<\/code> v\u00f5rratuste kehtivuse kontrollimiseks;<\/li>\n<li><code>==<\/code> v\u00f5rdsuse kontrollimiseks;<\/li>\n<li><code>!=<\/code> mittev\u00f5rdsuse kontrollimiseks.<\/li>\n<\/ul>\n<p class=\"vspace\">K\u00f5ige sagedamini on tingimus esitatud teatud v\u00f5rdlemisena. V\u00f5rrelda v\u00f5ib n\u00e4iteks muutuja v\u00e4\u00e4rtust ja s\u00f5ne v\u00e4\u00e4rtust (<code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">sisestatud_pin == \"1234\"<\/code>). Oluline on t\u00e4hele panna, et muutuja v\u00e4\u00e4rtus peaks siis olema samuti s\u00f5net\u00fc\u00fcpi. Topeltv\u00f5rdusm\u00e4rgiga (<code>==<\/code>) avaldis on v\u00e4\u00e4rtusega <code>True<\/code>, kui m\u00f5lemad pooled on v\u00f5rdsed ja v\u00e4\u00e4rtusega <code>False<\/code>, kui need ei ole v\u00f5rdsed.<\/p>\n<p class=\"vspace\">V\u00f5rrelda saab ka arvulise muutuja v\u00e4\u00e4rtust ja arvu. N\u00e4iteks avaldis <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">a &gt;= 1<\/code><\/code> on t\u00f5ene, kui <code>a<\/code> on suurem kui \u00fcks v\u00f5i \u00fchega v\u00f5rdne. Samuti v\u00f5ib v\u00f5rrelda omavahel kahe muutuja v\u00e4\u00e4rtust.<\/p>\n<p class=\"vspace\">Tegelikult v\u00f5ib tingimusena olla kirjas lihtsalt <code>True<\/code> (v\u00f5i <code>False<\/code>), aga siis ei toimu tegelikult mingit valikut. N\u00e4iteks avaldis <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">5 == 4<\/code> on alati v\u00e4\u00e4r ja samav\u00e4\u00e4rne <code>False<\/code> kirjutamisega. Tingimuslausel on sisuline m\u00f5te siis, kui tingimusavaldis v\u00f5ib omandada erinevaid t\u00f5ev\u00e4\u00e4rtusi.<\/p>\n<h3>Treppimine (ridade taane)<\/h3>\n<p class=\"vspace\">Kindlasti ei tohi unustada koolonit (<code>:<\/code>) <em>if<\/em>-rea l\u00f5pust. Paneme t\u00e4hele, et <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">print<\/code><\/code> on taandatud v\u00f5rreldes eelmise reaga paremale. Selleks tuleb vajutada \u00fche korra TAB-klahvi v\u00f5i 4 korda t\u00fchikut. Sellega m\u00e4\u00e4rame, et <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">print<\/code> k\u00e4sk t\u00e4idetaks <em>if<\/em>-tingimusest s\u00f5ltuvalt. Sellist tegevust nimetatakse <strong>treppimiseks<\/strong>. Head programmeerimiskeskkonnad (n\u00e4iteks Thonny) toetavad treppimist sellega, et p\u00e4rast eelmise rea koolonit viivad kursori juba sobivalt taandesse.<\/p>\n<h3><em>else<\/em>-konstruktsioon<\/h3>\n<p class=\"vspace\">Meie loodav programm juba kuidagi t\u00f6\u00f6tab, aga mitte siis, kui parool on vale. Tingimuslausel v\u00f5ib olla <em>else<\/em>-osa, millega m\u00e4\u00e4ratakse, mis juhtub siis, kui tingimus ei ole t\u00e4idetud (vastava avaldise v\u00e4\u00e4rtus on <code>False<\/code>).<\/p>\n<p class=\"vspace\">Hetkel lisame j\u00e4rgmise l\u00f5igu:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">else:\r\n    print(\"Vale\u00a0parool!\u00a0Ligip\u00e4\u00e4s\u00a0keelatud!\")<\/pre>\n<p>K\u00f5ik read kokku panduna saame j\u00e4rgmise koodi:<\/p>\n<p><strong>N\u00e4iteprogramm. <em>if<\/em>-lausega Pangaautomaat<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">sisestatud_pin = input(\"Sisesta PIN-kood: \")\r\nif sisestatud_pin == \"1234\":\r\n    print(\"Sisenesid pangaautomaati!\")\r\nelse:\r\n    print(\"Vale\u00a0parool!\u00a0Ligip\u00e4\u00e4s\u00a0keelatud!\")<\/pre>\n<p>K\u00e4ivita programm ka ise.<\/p>\n<h3>Videomaterjal<\/h3>\n<p>Vaata ka <a href=\"https:\/\/youtu.be\/VHsGkNtEGxk\" target=\"_blank\" rel=\"noopener noreferrer\">programmi loomise videot<\/a>.<\/p>\n<h3>Hargnemine<\/h3>\n<p>Pangaautomaadi programmi plokkskeem n\u00e4eb v\u00e4lja selline:<\/p>\n<figure id=\"attachment_286\" aria-describedby=\"caption-attachment-286\" style=\"width: 285px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-286 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2-pangaautomaat1.png\" alt=\"\" width=\"285\" height=\"484\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2-pangaautomaat1.png 285w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2-pangaautomaat1-177x300.png 177w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2-pangaautomaat1-65x110.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2-pangaautomaat1-225x382.png 225w\" sizes=\"auto, (max-width: 285px) 100vw, 285px\" \/><figcaption id=\"caption-attachment-286\" class=\"wp-caption-text\">Joonis 3. Pangaautomaadi plokkskeem<\/figcaption><\/figure>\n<p class=\"vspace\">Sellist \u00fches v\u00f5i teises suunas otsuse tegemist ja liikumist vastavalt tingimuse kontrollile nimetatakse programmeerimises <strong>hargnemiseks<\/strong>. Programm otsustab, millist haru pidi edasi minna: kui tingimus on t\u00e4idetud, siis minnakse edasi \u00fchte haru pidi, kui ei ole, siis teist haru pidi. R\u00f5hutada tuleb, et tingimuslauses on harusid alati kaks, isegi kui <em><code>else<\/code><\/em>-osa &#8220;n\u00e4ha&#8221; pole. Kui <em>else<\/em> puudub, siis ei tehta v\u00e4\u00e4ra tingimusavaldise korral mitte midagi (sama h\u00e4sti v\u00f5iks <code>else<\/code>-osa kirjutada ja t\u00fchjaks j\u00e4tta).<\/p>\n<p class=\"vspace\">Kui eelnevas programmis <em><code>else<\/code><\/em>-osa poleks, siis plokkskeem oleks selline:<\/p>\n<figure id=\"attachment_287\" aria-describedby=\"caption-attachment-287\" style=\"width: 213px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-287 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2-pangaautomaat2.png\" alt=\"\" width=\"213\" height=\"484\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2-pangaautomaat2.png 213w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2-pangaautomaat2-132x300.png 132w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Ndal2-pangaautomaat2-65x148.png 65w\" sizes=\"auto, (max-width: 213px) 100vw, 213px\" \/><figcaption id=\"caption-attachment-287\" class=\"wp-caption-text\">Joonis 4. Pangaautomaadi plokkskeem ilma else-haruta<\/figcaption><\/figure>\n<h3>Enesekontroll (1 \u00fclesanne)<\/h3>\n<p>Meenutame, et enesekontrolli\u00fclesannetes on lubatud karistamatult ka valesti vastata.<\/p>\n<p><code><\/p>\n<div id=\"h5p-43\">\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-43\" class=\"h5p-iframe\" data-content-id=\"43\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"Tingimuslause-1-007\"><\/iframe><\/div>\n<\/div>\n<p><\/code><\/p>\n<h2>S\u00f5nede v\u00f5rdlemine<\/h2>\n<p>S\u00f5nede v\u00f5rdlemisel loetakse suurt\u00e4hed ja v\u00e4iket\u00e4hed erinevateks. N\u00e4iteks <code>\"A\"<\/code> ja <code>\"a\"<\/code> ei ole v\u00f5rdsed. M\u00f5nede \u00fclesannete puhul me tahame neid siiski v\u00f5rdsetena kasutada. Selleks on lihtsaim viis k\u00f5ik t\u00e4hed kas suureks v\u00f5i v\u00e4ikseks teisendada. N\u00e4iteks saab sisendi puhul k\u00f5ik t\u00e4hed v\u00e4ikeseks teisendada:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">sisestatud_v\u00e4ike = input().lower()<\/pre>\n<p>Sarnaselt saab k\u00f5ik t\u00e4hed suureks teisendada:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">sisestatud_suur = input().upper()<\/pre>\n<h2>Arvude v\u00f5rdlemine<\/h2>\n<p class=\"vspace\">Eelmises n\u00e4ites kontrollisime koodi v\u00f5rdsust s\u00f5nega <code>\"1234\"<\/code>. Oluline on siinkohal just see, et jutum\u00e4rgid teevad sellest muidu arvuna n\u00e4ivast asjast s\u00f5ne. Tihti on meil tarvis v\u00f5rrelda siiski arvulisi v\u00e4\u00e4rtusi.<\/p>\n<p class=\"vspace\">Kasutame n\u00fc\u00fcd arvude v\u00f5rdlemisel v\u00f5rratust. Teeme programmi, mis k\u00fcsib kasutajalt vanust ja kui ta on noorem kui 14, siis \u00f6eldakse, et ta on selle m\u00e4ngu m\u00e4ngimiseks liiga noor. T\u00e4isarvu sisestamiseks peame sisendiks saadud s\u00f5ne t\u00e4isarvuks teisendama. Seda saab teha funktsiooniga <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">int<\/code><\/code> (n\u00e4iteks <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">arv = int(input())<\/code>):<\/p>\n<p><strong>N\u00e4iteprogramm. Vanuse kontrollimine<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">print(\"Kui vana oled?\")\r\nvanus = int(input())\r\n \r\nif vanus &lt; 14:\r\n    print(\"Oled natukene noor edasip\u00e4\u00e4suks.\")\r\nelse:\r\n    print(\"Sisenesid v\u00f5lumaailma.\")<\/pre>\n<h3>Enesekontroll (1 \u00fclesanne)<\/h3>\n<p><code><\/p>\n<div id=\"h5p-44\">\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-44\" class=\"h5p-iframe\" data-content-id=\"44\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"Tingimuslause-1-kaksteist\"><\/iframe><\/div>\n<\/div>\n<p><\/code><\/p>\n<h3>\u00dclesandeid huvilistele<\/h3>\n<p class=\"vspace\">Siin on m\u00f5ned \u00fclesanded, mille v\u00f5ivad need, kes end ebakindlamalt tunnevad, vahele j\u00e4tta. Soovitame soojalt siiski proovida!<\/p>\n<div class=\"vspace\"><\/div>\n<ul>\n<li>Kirjuta PIN-koodi k\u00fcsimise programm nii \u00fcmber, et sisestatud koodi v\u00f5rreldakse arvuga <code>1234<\/code> (just arvuga, mitte s\u00f5nega). Programm v\u00f5iks ka \u00f6elda, kas sisestatud vale kood oli &#8220;liiga suur&#8221; v\u00f5i &#8220;liiga v\u00e4ike&#8221;.\n<div class=\"vspace\"><\/div>\n<\/li>\n<li>Katseta, kas ka s\u00f5nesid saab v\u00f5rrelda m\u00e4rkide <code>&lt;<\/code>, <code>&lt;=<\/code>, <code>&gt;=<\/code> ja <code>&gt;<\/code> abil. Kuidas tulemust kommenteerida?<\/li>\n<\/ul>\n","protected":false},"author":12,"menu_order":1,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-249","chapter","type-chapter","status-publish","hentry"],"part":247,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/249","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":9,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/249\/revisions"}],"predecessor-version":[{"id":461,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/249\/revisions\/461"}],"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\/249\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/media?parent=249"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapter-type?post=249"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/contributor?post=249"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/license?post=249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}