{"id":251,"date":"2019-01-16T12:11:34","date_gmt":"2019-01-16T12:11:34","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/?post_type=chapter&#038;p=251"},"modified":"2019-04-08T15:42:10","modified_gmt":"2019-04-08T15:42:10","slug":"tingimuslause-tingimuslause-sees","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/chapter\/tingimuslause-tingimuslause-sees\/","title":{"raw":"Tingimuslause tingimuslause sees","rendered":"Tingimuslause tingimuslause sees"},"content":{"raw":"<p class=\"vspace\">J\u00e4tkame varasemat programmi, kus k\u00fcsitakse PIN-koodi ja \u00f5ige koodi korral \"sisenetakse\" pangaautomaati. Mis aga saab edasi? Tundub, et programm peab valikute p\u00f5hjal hargnema. Teeme n\u00fc\u00fcd nii, et pangaautomaati sisenedes n\u00e4idatakse, mitu eurot pangakontol on, ning k\u00fcsitakse, mitu eurot soovitakse v\u00e4lja v\u00f5tta. Kui kasutaja soovib v\u00e4lja v\u00f5tta rohkem raha, kui on pangakontol, siis teavitatakse kasutajat, et see pole v\u00f5imalik.<\/p>\r\n<p class=\"vspace\">Eelnevalt oli meil olemas pangaautomaati sisenemise programm:<\/p>\r\n\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">sisestatud_pin = input(\"Sisesta PIN-kood: \")\r\nif sisestatud_pin == \"1234\":\r\n    print(\"Sisenesid pangaautomaati!\")\r\nelse:\r\n    print(\"Vale parool! Ligip\u00e4\u00e4s keelatud!\")<\/pre>\r\nEsiteks v\u00f5iks programmi alguses kasutusele v\u00f5tta muutuja, mille v\u00e4\u00e4rtus n\u00e4itab, kui palju pangakontol raha on. N\u00e4iteks teeme nii, et algselt on kasutaja pangakontol 100 eurot:\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">kontoseis = 100<\/pre>\r\nN\u00fc\u00fcd teeme programmiosa, mis t\u00f6\u00f6tab siis, kui kasutaja on automaati sisse saanud. Selles osas v\u00e4ljastatakse ekraanile pangakontol olev summa ning k\u00fcsitakse, mitu eurot soovitakse v\u00e4lja v\u00f5tta. K\u00fcsitud v\u00e4ljav\u00f5etava raha teisendame seekord kohe t\u00e4isarvut\u00fc\u00fcpi (<code>int<\/code>) v\u00e4\u00e4rtuseks:\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">print(\"Sisenesid pangaautomaati! Pangakontol on \" + str(kontoseis) + \" eurot.\")\r\nprint(\"Sisesta, mitu eurot soovid v\u00e4lja v\u00f5tta:\")\r\nsoovitud_raha = int(input())<\/pre>\r\nSeej\u00e4rel oleks vaja kontrollida, et v\u00e4ljav\u00f5etav rahasumma oleks v\u00e4iksem v\u00f5i v\u00f5rdne kontol olevaga. Kui nii on, siis v\u00f5etakse vastav summa kontolt maha. Kui ei ole, siis v\u00e4ljastatakse vastav veateade:\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">if soovitud_raha &lt;= kontoseis:\r\n    kontoseis = kontoseis - soovitud_raha\r\n    print(\"V\u00e4lja v\u00f5etud: \" + str(soovitud_raha) + \" eurot. \u00c4rge unustage raha masinast \u00e4ra v\u00f5tta!\")\r\nelse:\r\n    print(\"Kontol ei ole nii palju raha!\")<\/pre>\r\n<p class=\"vspace\">Varasemalt oleme juba n\u00e4inud, et muutujale saab anda v\u00e4\u00e4rtuse tehtega, milles kasutame sedasama muutujat ennast (siin <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">kontoseis = kontoseis - soovitud_raha<\/code>). Muutuja uue v\u00e4\u00e4rtuse arvutamine vana p\u00f5hjal on isegi nii levinud, et kasutusel on tehtem\u00e4rgid (nt <code>+=<\/code>, <code>-=<\/code>, <code>*=<\/code>, <code>\/=<\/code>), mis v\u00f5imaldavad seda l\u00fchemalt kirja panna.<\/p>\r\n<p class=\"vspace\">Nii saaks asendada vastava rea eeltoodud programmis j\u00e4rgmisega:<\/p>\r\n\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">kontoseis -= soovitud_raha<\/pre>\r\nK\u00f5ige l\u00f5puks v\u00f5ime veel ekraanile v\u00e4ljastada, kui palju raha pangakontole j\u00e4i:\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">print(\"Pangakontol on n\u00fc\u00fcd: \" + str(kontoseis) + \" eurot.\")<\/pre>\r\nKui n\u00fc\u00fcd lisada need read algse programmi <em>if<\/em>-osa sisse, siis saame kokkuv\u00f5ttes j\u00e4rgneva programmi. M\u00e4rgiga <code>#<\/code> t\u00e4histatakse programmis kommentaare, mis on inimeste jaoks ja mida Python ei arvesta. K\u00f5ik, mis samal real <code>#-<\/code>m\u00e4rgile j\u00e4rgneb, on kommentaar.\r\n\r\n<strong>N\u00e4iteprogramm. Konto seisuga pangaautomaat<\/strong>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">kontoseis = 100\r\n \r\nsisestatud_pin = input(\"Sisesta PIN-kood: \")\r\nif sisestatud_pin == \"1234\":\r\n    print(\"Sisenesid pangaautomaati! Pangakontol on \" + str(kontoseis) + \" eurot.\")\r\n    print(\"Sisesta, mitu eurot soovid v\u00e4lja v\u00f5tta:\")\r\n    soovitud_raha = int(input())\r\n    if soovitud_raha &lt;= kontoseis:\r\n        kontoseis = kontoseis - soovitud_raha #kontoseisu v\u00e4\u00e4rtus v\u00e4heneb\r\n        print(\"Raha v\u00e4lja v\u00f5etud: \" + str(soovitud_raha) + \" eurot.\")\r\n    else:\r\n        print(\"Kontol ei ole nii palju raha!\")\r\n    print(\"Pangakontol on j\u00e4rgi: \" + str(kontoseis) + \" eurot.\")\r\nelse:\r\n    print(\"Vale parool! Ligip\u00e4\u00e4s keelatud!\")<\/pre>\r\nM\u00f5tle selle programmi k\u00e4itumine l\u00e4bi ja katseta programmi.\r\n<h3>Enesekontroll (1 \u00fclesanne)<\/h3>\r\n<code>[h5p id=\"45\"]<\/code>","rendered":"<p class=\"vspace\">J\u00e4tkame varasemat programmi, kus k\u00fcsitakse PIN-koodi ja \u00f5ige koodi korral &#8220;sisenetakse&#8221; pangaautomaati. Mis aga saab edasi? Tundub, et programm peab valikute p\u00f5hjal hargnema. Teeme n\u00fc\u00fcd nii, et pangaautomaati sisenedes n\u00e4idatakse, mitu eurot pangakontol on, ning k\u00fcsitakse, mitu eurot soovitakse v\u00e4lja v\u00f5tta. Kui kasutaja soovib v\u00e4lja v\u00f5tta rohkem raha, kui on pangakontol, siis teavitatakse kasutajat, et see pole v\u00f5imalik.<\/p>\n<p class=\"vspace\">Eelnevalt oli meil olemas pangaautomaati sisenemise programm:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">sisestatud_pin = input(\"Sisesta PIN-kood: \")\r\nif sisestatud_pin == \"1234\":\r\n    print(\"Sisenesid pangaautomaati!\")\r\nelse:\r\n    print(\"Vale parool! Ligip\u00e4\u00e4s keelatud!\")<\/pre>\n<p>Esiteks v\u00f5iks programmi alguses kasutusele v\u00f5tta muutuja, mille v\u00e4\u00e4rtus n\u00e4itab, kui palju pangakontol raha on. N\u00e4iteks teeme nii, et algselt on kasutaja pangakontol 100 eurot:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">kontoseis = 100<\/pre>\n<p>N\u00fc\u00fcd teeme programmiosa, mis t\u00f6\u00f6tab siis, kui kasutaja on automaati sisse saanud. Selles osas v\u00e4ljastatakse ekraanile pangakontol olev summa ning k\u00fcsitakse, mitu eurot soovitakse v\u00e4lja v\u00f5tta. K\u00fcsitud v\u00e4ljav\u00f5etava raha teisendame seekord kohe t\u00e4isarvut\u00fc\u00fcpi (<code>int<\/code>) v\u00e4\u00e4rtuseks:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">print(\"Sisenesid pangaautomaati! Pangakontol on \" + str(kontoseis) + \" eurot.\")\r\nprint(\"Sisesta, mitu eurot soovid v\u00e4lja v\u00f5tta:\")\r\nsoovitud_raha = int(input())<\/pre>\n<p>Seej\u00e4rel oleks vaja kontrollida, et v\u00e4ljav\u00f5etav rahasumma oleks v\u00e4iksem v\u00f5i v\u00f5rdne kontol olevaga. Kui nii on, siis v\u00f5etakse vastav summa kontolt maha. Kui ei ole, siis v\u00e4ljastatakse vastav veateade:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">if soovitud_raha &lt;= kontoseis:\r\n    kontoseis = kontoseis - soovitud_raha\r\n    print(\"V\u00e4lja v\u00f5etud: \" + str(soovitud_raha) + \" eurot. \u00c4rge unustage raha masinast \u00e4ra v\u00f5tta!\")\r\nelse:\r\n    print(\"Kontol ei ole nii palju raha!\")<\/pre>\n<p class=\"vspace\">Varasemalt oleme juba n\u00e4inud, et muutujale saab anda v\u00e4\u00e4rtuse tehtega, milles kasutame sedasama muutujat ennast (siin <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">kontoseis = kontoseis - soovitud_raha<\/code>). Muutuja uue v\u00e4\u00e4rtuse arvutamine vana p\u00f5hjal on isegi nii levinud, et kasutusel on tehtem\u00e4rgid (nt <code>+=<\/code>, <code>-=<\/code>, <code>*=<\/code>, <code>\/=<\/code>), mis v\u00f5imaldavad seda l\u00fchemalt kirja panna.<\/p>\n<p class=\"vspace\">Nii saaks asendada vastava rea eeltoodud programmis j\u00e4rgmisega:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">kontoseis -= soovitud_raha<\/pre>\n<p>K\u00f5ige l\u00f5puks v\u00f5ime veel ekraanile v\u00e4ljastada, kui palju raha pangakontole j\u00e4i:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">print(\"Pangakontol on n\u00fc\u00fcd: \" + str(kontoseis) + \" eurot.\")<\/pre>\n<p>Kui n\u00fc\u00fcd lisada need read algse programmi <em>if<\/em>-osa sisse, siis saame kokkuv\u00f5ttes j\u00e4rgneva programmi. M\u00e4rgiga <code>#<\/code> t\u00e4histatakse programmis kommentaare, mis on inimeste jaoks ja mida Python ei arvesta. K\u00f5ik, mis samal real <code>#-<\/code>m\u00e4rgile j\u00e4rgneb, on kommentaar.<\/p>\n<p><strong>N\u00e4iteprogramm. Konto seisuga pangaautomaat<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">kontoseis = 100\r\n \r\nsisestatud_pin = input(\"Sisesta PIN-kood: \")\r\nif sisestatud_pin == \"1234\":\r\n    print(\"Sisenesid pangaautomaati! Pangakontol on \" + str(kontoseis) + \" eurot.\")\r\n    print(\"Sisesta, mitu eurot soovid v\u00e4lja v\u00f5tta:\")\r\n    soovitud_raha = int(input())\r\n    if soovitud_raha &lt;= kontoseis:\r\n        kontoseis = kontoseis - soovitud_raha #kontoseisu v\u00e4\u00e4rtus v\u00e4heneb\r\n        print(\"Raha v\u00e4lja v\u00f5etud: \" + str(soovitud_raha) + \" eurot.\")\r\n    else:\r\n        print(\"Kontol ei ole nii palju raha!\")\r\n    print(\"Pangakontol on j\u00e4rgi: \" + str(kontoseis) + \" eurot.\")\r\nelse:\r\n    print(\"Vale parool! Ligip\u00e4\u00e4s keelatud!\")<\/pre>\n<p>M\u00f5tle selle programmi k\u00e4itumine l\u00e4bi ja katseta programmi.<\/p>\n<h3>Enesekontroll (1 \u00fclesanne)<\/h3>\n<p><code><\/p>\n<div id=\"h5p-45\">\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-45\" class=\"h5p-iframe\" data-content-id=\"45\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"Tingimuslause-2-ififis\"><\/iframe><\/div>\n<\/div>\n<p><\/code><\/p>\n","protected":false},"author":12,"menu_order":2,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-251","chapter","type-chapter","status-publish","hentry"],"part":247,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/251","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":6,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/251\/revisions"}],"predecessor-version":[{"id":406,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/251\/revisions\/406"}],"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\/251\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/media?parent=251"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapter-type?post=251"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/contributor?post=251"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/license?post=251"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}