{"id":210,"date":"2019-01-09T22:15:56","date_gmt":"2019-01-09T22:15:56","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/?post_type=chapter&#038;p=210"},"modified":"2020-01-12T17:24:32","modified_gmt":"2020-01-12T17:24:32","slug":"algoritm","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/chapter\/algoritm\/","title":{"raw":"Algoritm","rendered":"Algoritm"},"content":{"raw":"<p class=\"vspace\">Kui me tahame teha midagi suuremat, siis v\u00f5ib tulemuse saavutamisel abi olla sellest, kui me kavandatu v\u00e4iksemateks sammudeks jaotame. Seejuures peaksime muidugi m\u00f5tlema, mis j\u00e4rjekorras need sammud tuleb v\u00f5i saab teha. Kas mingeid samme saab teha samaaegselt? Kas midagi tuleb teha korduvalt? Kas m\u00f5nda asja tuleb v\u00f5i saab teha ainult teatud tingimustel? \u00c4kki saab hoopis keegi teine meie endi asemel midagi \u00e4ra teha?<\/p>\r\n<p class=\"vspace\">Kui tahta kellelegi teisele selgeks teha, kuidas teatud asi toimuma peaks, siis tuleks selleks kasutada mingit m\u00f5lemale poolele arusaadavat viisi. Vast on nii m\u00f5nedki kogenud, et t\u00e4psed juhised v\u00f5ivad kaasa aidata tulemuse saamisele: \"P\u00f6\u00f6ra ringteelt v\u00e4lja teiselt mahas\u00f5idult!\", \"Keeda 20 minutit!\", \"Lisa kaks labidat\u00e4it kruusa!\", \"Istuge, palun!\".<\/p>\r\n<p class=\"vspace\">Kui soovime \u00fcmbritsevat maailma mingit moodi k\u00e4ituma suunata, siis hea meetod selleks on kehtestada eeskirjad. Eeskirjad v\u00f5ivad olla keelavad v\u00f5i kohustavad. Keelavad eeskirjad on n\u00e4iteks sellised: \"\u00c4ra mine vales kohas \u00fcle t\u00e4nava!\", \"\u00c4ra s\u00f6\u00f6 (joo) nii palju!\", \"\u00c4ra \u00fcleta kiirust!\", \"\u00c4ra m\u00e4ngi nii palju arvutim\u00e4nge!\".<\/p>\r\n<p class=\"vspace\">Programmeerimises keskendume kohustavatele eeskirjadele - neile, mis kirjeldavad tegevusi, mida peab tegema. Tavaliselt on elus mingi \u00fclesande lahendamiseks vaja teha mitu sammu j\u00e4rjest - sel juhul saame r\u00e4\u00e4kida lahenduseeskirjast ehk <strong>algoritmist<\/strong>. Algoritm on mingi hulk kindlas j\u00e4rjekorras kohustavaid eeskirju (vt ka <a class=\"urllink\" href=\"http:\/\/www.eki.ee\/dict\/ekss\/index.cgi?Q=algoritm&amp;F=M\" target=\"_blank\" rel=\"noopener noreferrer\">Eesti keele seletavast s\u00f5naraamatust<\/a>).<\/p>\r\n\r\n<h2>Algoritmide esitamine<\/h2>\r\n<p class=\"vspace\">P\u00f5him\u00f5tteliselt saab algoritmi kirja panna erineval moel. N\u00e4iteks v\u00f5ib selle samme lihtsalt j\u00e4rjest nummerdatult \u00fcles kirjutada. Samuti v\u00f5id uurida, kuidas Omniva on esitanud <a class=\"urllink\" href=\"https:\/\/www.omniva.ee\/era\/pakk\/kuidas_pakki_saata\" target=\"_blank\" rel=\"noopener noreferrer\">algoritmi paki saatmiseks<\/a>. Suureks abiks v\u00f5ivad olla illustratsioonid, n\u00e4iteks <a class=\"urllink\" href=\"https:\/\/redcross.ee\/esmaabi\/ea-koolituse-materjalid\/\" target=\"_blank\" rel=\"noopener noreferrer\">esmaabi andmise puhul<\/a>. M\u00f5nedel juhtudel ongi illustratsioonid peamised, n\u00e4iteks lennukis olevatel ohutuskaartidel.<\/p>\r\n<p class=\"vspace\">\u00dcsna tavaline on, et teatud samme tuleb (v\u00f5i saab) sooritada ainult siis, kui kindel tingimus on t\u00e4idetud. N\u00e4iteks on vingugaasim\u00fcrgituse esmaabi puhul kirjas: \"Kui kannatanu ei hinga, tee kunstlikku hingamist.\"<\/p>\r\n<p class=\"vspace\">\u00dcks levinud viis algoritmi kirjeldamiseks on plokkskeem. Vaata j\u00e4rgnevat joonist.<\/p>\r\n&nbsp;\r\n\r\n[caption id=\"attachment_211\" align=\"aligncenter\" width=\"123\"]<img class=\"wp-image-211 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/kartulisalat_plokkskeem.png\" alt=\"\" width=\"123\" height=\"363\" \/> Joonis 1. Kartulisalati plokkskeem[\/caption]\r\n<p class=\"vspace\">Meie plokkskeemis t\u00e4histatakse algoritmi algust ja l\u00f5ppu ovaalide abil. Algoritmil on alati \u00fcks algus ja \u00fcks l\u00f5pp. N-\u00f6 tavalise sammu t\u00e4histamiseks kasutatakse ristk\u00fclikut. Plokkide j\u00e4rgnevust m\u00e4rgitakse nooltega. Nii kirjeldavad kartulisalati tegemist t\u00e4naseks juba emeriitprofessorid Mare Koit, \u00dclo Kaasik ja J\u00fcri Kiho oma \u00f5pikus \"Kuidas programmeerida\" (1990). (Neil oli k\u00fcll veidi keerulisem retsept.)<\/p>\r\nSamale tulemusele v\u00f5ib j\u00f5uda ka m\u00f5nev\u00f5rra teistsuguse algoritmiga. M\u00f5ned sammud v\u00f5ivad olla teises j\u00e4rjekorras, aga m\u00f5nede sammude puhul on omavaheline j\u00e4rjekord fikseeritud. See, millised sammud \u00fchte plokki lugeda, v\u00f5ib olla ka \u00fcsna vabalt valitav. Kui tahame midagi paralleelselt teha, et tulemust kiiremini saada, siis v\u00f5iks salati tegemisel kartulite ja hapukurgi t\u00fckeldamist eraldi v\u00f5tta ja neid lasta erinevatel inimestel samal ajal teha. Siinkohal kerkib loomulik k\u00fcsimus: kas meil on olemas selleks vajalikke ressursse - inimesi, nuge, l\u00f5ikelaudasid? Paralleelsete protsesside kasutamine programmides on praegusel ajal \u00e4\u00e4rmiselt oluline, aga ka keeruline ja see j\u00e4\u00e4b meie kursusest v\u00e4lja.\r\n<h3>Enesekontroll (2 \u00fclesannet)<\/h3>\r\nEnesekontrolli \u00fclesanded on m\u00f5eldud enda teadmiste kontrollimiseks. Nende tulemusi ei salvestata.\r\n\r\n<code>[h5p id=\"27\"]<\/code>\r\n\r\n<code>[h5p id=\"28\"]<\/code>\r\n<h2>Kontrollplokid<\/h2>\r\n<p class=\"vspace\">Mitme tegevuse paralleelselt tegemist me siin ei k\u00e4sitle. K\u00fcll aga on meile olulised olukorrad, kus tuleb kahest v\u00f5imalikust j\u00e4tkust valida \u00fcks. Plokkskeemis kasutame selliste hargnemiste - kontrollplokkide - kirjeldamiseks rombi. Kontrollplokis on oluline tingimus, mille t\u00e4idetuse p\u00f5hjal otsustatakse, kumba teed edasi minna. Kontrollplokist v\u00e4ljub alati kaks noolt, sissetulevate noolte hulk ei ole piiratud.<\/p>\r\n<p class=\"vspace\">P\u00f5him\u00f5tteliselt saab kasutada ka skeeme, kus kontrollplokist v\u00e4ljub rohkem nooli. Selliseid (n\u00e4iteks <a class=\"urllink\" href=\"http:\/\/eur-lex.europa.eu\/resource.html?uri=uriserv:OJ.L_.2008.353.FULL.EST.xhtml.L_2008353ET.01006601.tif.jpg\" target=\"_blank\" rel=\"noopener noreferrer\">see skeem<\/a>) on n\u00e4iteks Euroopa parlamendi ja n\u00f5ukogu <a class=\"urllink\" href=\"http:\/\/eur-lex.europa.eu\/legal-content\/ET\/TXT\/HTML\/?uri=OJ:L:2008:353:FULL&amp;from=ET\" target=\"_blank\" rel=\"noopener noreferrer\">m\u00e4\u00e4ruses nr 1272\/2008<\/a>, mis k\u00e4sitleb ainete ja segude klassifitseerimist, m\u00e4rgistamist ja pakendamist. Seal on Jah\/Ei asemel n\u00e4iteks Jah, kiiresti \/ Jah, aeglaselt \/ Ei. Meie j\u00e4tkame siiski nii, et on t\u00e4pselt kaks valikut - kas tingimus kehtib v\u00f5i mitte.<\/p>\r\n<p class=\"vspace\">Rohkem arvutite juurde tulles on sageli vaja programmi kasutajalt mingit sisendit ja tulemuseks on kasutajale millegi v\u00e4ljastamine. Sellist andmevahetust m\u00e4rgitakse r\u00f6\u00f6pk\u00fclikutega. J\u00e4rgmises algoritmis sisestab kasutaja arvud a ja b ning p\u00e4rast kontrolli v\u00e4ljastatakse talle vastav teade.<\/p>\r\n\r\n\r\n[caption id=\"attachment_212\" align=\"aligncenter\" width=\"252\"]<img class=\"wp-image-212 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/algoritm.png\" alt=\"\" width=\"252\" height=\"424\" \/> Joonis 2. Kahe arvu v\u00f5rdlemise plokkskeem[\/caption]\r\n<h3>Enesekontroll (1 \u00fclesanne)<\/h3>\r\n<code>[h5p id=\"29\"]<\/code>\r\n\r\nAlgoritmi koostamisel tuleb olla v\u00e4ga t\u00e4helepanelik ka k\u00f5ikv\u00f5imalike erijuhtude arvestamiseks. N\u00e4iteks eelmise algoritmi puhul peab v\u00e4ljastatav tekst olema \u00f5ige ka juhul, kus sisestatud arvud a ja b on v\u00f5rdsed.\r\n<p class=\"vspace\">Enne programmide juurde minekut vaatleme n\u00e4itena algoritmi, mis kirjeldab sellise programmi t\u00f6\u00f6d, mis p\u00fc\u00fcab aidata kursuslast, kes ei p\u00e4\u00e4se kursuse Moodle'i keskkonda. Siin on see toodud plokkskeemina. (Skeemil kl\u00f5psates n\u00e4eb seda suuremana.)<\/p>\r\n\r\n\r\n[caption id=\"attachment_213\" align=\"aligncenter\" width=\"290\"]<a href=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Moodle_plokkskeem.png\"><img class=\"wp-image-213 size-medium\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Moodle_plokkskeem-290x300.png\" alt=\"\" width=\"290\" height=\"300\" \/><\/a> Joonis 3. Moodle\u2019i murelahendaja[\/caption]","rendered":"<p class=\"vspace\">Kui me tahame teha midagi suuremat, siis v\u00f5ib tulemuse saavutamisel abi olla sellest, kui me kavandatu v\u00e4iksemateks sammudeks jaotame. Seejuures peaksime muidugi m\u00f5tlema, mis j\u00e4rjekorras need sammud tuleb v\u00f5i saab teha. Kas mingeid samme saab teha samaaegselt? Kas midagi tuleb teha korduvalt? Kas m\u00f5nda asja tuleb v\u00f5i saab teha ainult teatud tingimustel? \u00c4kki saab hoopis keegi teine meie endi asemel midagi \u00e4ra teha?<\/p>\n<p class=\"vspace\">Kui tahta kellelegi teisele selgeks teha, kuidas teatud asi toimuma peaks, siis tuleks selleks kasutada mingit m\u00f5lemale poolele arusaadavat viisi. Vast on nii m\u00f5nedki kogenud, et t\u00e4psed juhised v\u00f5ivad kaasa aidata tulemuse saamisele: &#8220;P\u00f6\u00f6ra ringteelt v\u00e4lja teiselt mahas\u00f5idult!&#8221;, &#8220;Keeda 20 minutit!&#8221;, &#8220;Lisa kaks labidat\u00e4it kruusa!&#8221;, &#8220;Istuge, palun!&#8221;.<\/p>\n<p class=\"vspace\">Kui soovime \u00fcmbritsevat maailma mingit moodi k\u00e4ituma suunata, siis hea meetod selleks on kehtestada eeskirjad. Eeskirjad v\u00f5ivad olla keelavad v\u00f5i kohustavad. Keelavad eeskirjad on n\u00e4iteks sellised: &#8220;\u00c4ra mine vales kohas \u00fcle t\u00e4nava!&#8221;, &#8220;\u00c4ra s\u00f6\u00f6 (joo) nii palju!&#8221;, &#8220;\u00c4ra \u00fcleta kiirust!&#8221;, &#8220;\u00c4ra m\u00e4ngi nii palju arvutim\u00e4nge!&#8221;.<\/p>\n<p class=\"vspace\">Programmeerimises keskendume kohustavatele eeskirjadele &#8211; neile, mis kirjeldavad tegevusi, mida peab tegema. Tavaliselt on elus mingi \u00fclesande lahendamiseks vaja teha mitu sammu j\u00e4rjest &#8211; sel juhul saame r\u00e4\u00e4kida lahenduseeskirjast ehk <strong>algoritmist<\/strong>. Algoritm on mingi hulk kindlas j\u00e4rjekorras kohustavaid eeskirju (vt ka <a class=\"urllink\" href=\"http:\/\/www.eki.ee\/dict\/ekss\/index.cgi?Q=algoritm&amp;F=M\" target=\"_blank\" rel=\"noopener noreferrer\">Eesti keele seletavast s\u00f5naraamatust<\/a>).<\/p>\n<h2>Algoritmide esitamine<\/h2>\n<p class=\"vspace\">P\u00f5him\u00f5tteliselt saab algoritmi kirja panna erineval moel. N\u00e4iteks v\u00f5ib selle samme lihtsalt j\u00e4rjest nummerdatult \u00fcles kirjutada. Samuti v\u00f5id uurida, kuidas Omniva on esitanud <a class=\"urllink\" href=\"https:\/\/www.omniva.ee\/era\/pakk\/kuidas_pakki_saata\" target=\"_blank\" rel=\"noopener noreferrer\">algoritmi paki saatmiseks<\/a>. Suureks abiks v\u00f5ivad olla illustratsioonid, n\u00e4iteks <a class=\"urllink\" href=\"https:\/\/redcross.ee\/esmaabi\/ea-koolituse-materjalid\/\" target=\"_blank\" rel=\"noopener noreferrer\">esmaabi andmise puhul<\/a>. M\u00f5nedel juhtudel ongi illustratsioonid peamised, n\u00e4iteks lennukis olevatel ohutuskaartidel.<\/p>\n<p class=\"vspace\">\u00dcsna tavaline on, et teatud samme tuleb (v\u00f5i saab) sooritada ainult siis, kui kindel tingimus on t\u00e4idetud. N\u00e4iteks on vingugaasim\u00fcrgituse esmaabi puhul kirjas: &#8220;Kui kannatanu ei hinga, tee kunstlikku hingamist.&#8221;<\/p>\n<p class=\"vspace\">\u00dcks levinud viis algoritmi kirjeldamiseks on plokkskeem. Vaata j\u00e4rgnevat joonist.<\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_211\" aria-describedby=\"caption-attachment-211\" style=\"width: 123px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-211 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/kartulisalat_plokkskeem.png\" alt=\"\" width=\"123\" height=\"363\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/kartulisalat_plokkskeem.png 123w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/kartulisalat_plokkskeem-102x300.png 102w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/kartulisalat_plokkskeem-65x192.png 65w\" sizes=\"auto, (max-width: 123px) 100vw, 123px\" \/><figcaption id=\"caption-attachment-211\" class=\"wp-caption-text\">Joonis 1. Kartulisalati plokkskeem<\/figcaption><\/figure>\n<p class=\"vspace\">Meie plokkskeemis t\u00e4histatakse algoritmi algust ja l\u00f5ppu ovaalide abil. Algoritmil on alati \u00fcks algus ja \u00fcks l\u00f5pp. N-\u00f6 tavalise sammu t\u00e4histamiseks kasutatakse ristk\u00fclikut. Plokkide j\u00e4rgnevust m\u00e4rgitakse nooltega. Nii kirjeldavad kartulisalati tegemist t\u00e4naseks juba emeriitprofessorid Mare Koit, \u00dclo Kaasik ja J\u00fcri Kiho oma \u00f5pikus &#8220;Kuidas programmeerida&#8221; (1990). (Neil oli k\u00fcll veidi keerulisem retsept.)<\/p>\n<p>Samale tulemusele v\u00f5ib j\u00f5uda ka m\u00f5nev\u00f5rra teistsuguse algoritmiga. M\u00f5ned sammud v\u00f5ivad olla teises j\u00e4rjekorras, aga m\u00f5nede sammude puhul on omavaheline j\u00e4rjekord fikseeritud. See, millised sammud \u00fchte plokki lugeda, v\u00f5ib olla ka \u00fcsna vabalt valitav. Kui tahame midagi paralleelselt teha, et tulemust kiiremini saada, siis v\u00f5iks salati tegemisel kartulite ja hapukurgi t\u00fckeldamist eraldi v\u00f5tta ja neid lasta erinevatel inimestel samal ajal teha. Siinkohal kerkib loomulik k\u00fcsimus: kas meil on olemas selleks vajalikke ressursse &#8211; inimesi, nuge, l\u00f5ikelaudasid? Paralleelsete protsesside kasutamine programmides on praegusel ajal \u00e4\u00e4rmiselt oluline, aga ka keeruline ja see j\u00e4\u00e4b meie kursusest v\u00e4lja.<\/p>\n<h3>Enesekontroll (2 \u00fclesannet)<\/h3>\n<p>Enesekontrolli \u00fclesanded on m\u00f5eldud enda teadmiste kontrollimiseks. Nende tulemusi ei salvestata.<\/p>\n<p><code><\/p>\n<div id=\"h5p-27\">\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-27\" class=\"h5p-iframe\" data-content-id=\"27\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"Sissejuhatus-1-hapikumask\"><\/iframe><\/div>\n<\/div>\n<p><\/code><\/p>\n<p><code><\/p>\n<div id=\"h5p-28\">\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-28\" class=\"h5p-iframe\" data-content-id=\"28\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"Sissejuhatus-1-kontsert\"><\/iframe><\/div>\n<\/div>\n<p><\/code><\/p>\n<h2>Kontrollplokid<\/h2>\n<p class=\"vspace\">Mitme tegevuse paralleelselt tegemist me siin ei k\u00e4sitle. K\u00fcll aga on meile olulised olukorrad, kus tuleb kahest v\u00f5imalikust j\u00e4tkust valida \u00fcks. Plokkskeemis kasutame selliste hargnemiste &#8211; kontrollplokkide &#8211; kirjeldamiseks rombi. Kontrollplokis on oluline tingimus, mille t\u00e4idetuse p\u00f5hjal otsustatakse, kumba teed edasi minna. Kontrollplokist v\u00e4ljub alati kaks noolt, sissetulevate noolte hulk ei ole piiratud.<\/p>\n<p class=\"vspace\">P\u00f5him\u00f5tteliselt saab kasutada ka skeeme, kus kontrollplokist v\u00e4ljub rohkem nooli. Selliseid (n\u00e4iteks <a class=\"urllink\" href=\"http:\/\/eur-lex.europa.eu\/resource.html?uri=uriserv:OJ.L_.2008.353.FULL.EST.xhtml.L_2008353ET.01006601.tif.jpg\" target=\"_blank\" rel=\"noopener noreferrer\">see skeem<\/a>) on n\u00e4iteks Euroopa parlamendi ja n\u00f5ukogu <a class=\"urllink\" href=\"http:\/\/eur-lex.europa.eu\/legal-content\/ET\/TXT\/HTML\/?uri=OJ:L:2008:353:FULL&amp;from=ET\" target=\"_blank\" rel=\"noopener noreferrer\">m\u00e4\u00e4ruses nr 1272\/2008<\/a>, mis k\u00e4sitleb ainete ja segude klassifitseerimist, m\u00e4rgistamist ja pakendamist. Seal on Jah\/Ei asemel n\u00e4iteks Jah, kiiresti \/ Jah, aeglaselt \/ Ei. Meie j\u00e4tkame siiski nii, et on t\u00e4pselt kaks valikut &#8211; kas tingimus kehtib v\u00f5i mitte.<\/p>\n<p class=\"vspace\">Rohkem arvutite juurde tulles on sageli vaja programmi kasutajalt mingit sisendit ja tulemuseks on kasutajale millegi v\u00e4ljastamine. Sellist andmevahetust m\u00e4rgitakse r\u00f6\u00f6pk\u00fclikutega. J\u00e4rgmises algoritmis sisestab kasutaja arvud a ja b ning p\u00e4rast kontrolli v\u00e4ljastatakse talle vastav teade.<\/p>\n<figure id=\"attachment_212\" aria-describedby=\"caption-attachment-212\" style=\"width: 252px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-212 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/algoritm.png\" alt=\"\" width=\"252\" height=\"424\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/algoritm.png 252w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/algoritm-178x300.png 178w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/algoritm-65x109.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/algoritm-225x379.png 225w\" sizes=\"auto, (max-width: 252px) 100vw, 252px\" \/><figcaption id=\"caption-attachment-212\" class=\"wp-caption-text\">Joonis 2. Kahe arvu v\u00f5rdlemise plokkskeem<\/figcaption><\/figure>\n<h3>Enesekontroll (1 \u00fclesanne)<\/h3>\n<p><code><\/p>\n<div id=\"h5p-29\">\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-29\" class=\"h5p-iframe\" data-content-id=\"29\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"Sissejuhatus-1-v\u00f5rdlemine\"><\/iframe><\/div>\n<\/div>\n<p><\/code><\/p>\n<p>Algoritmi koostamisel tuleb olla v\u00e4ga t\u00e4helepanelik ka k\u00f5ikv\u00f5imalike erijuhtude arvestamiseks. N\u00e4iteks eelmise algoritmi puhul peab v\u00e4ljastatav tekst olema \u00f5ige ka juhul, kus sisestatud arvud a ja b on v\u00f5rdsed.<\/p>\n<p class=\"vspace\">Enne programmide juurde minekut vaatleme n\u00e4itena algoritmi, mis kirjeldab sellise programmi t\u00f6\u00f6d, mis p\u00fc\u00fcab aidata kursuslast, kes ei p\u00e4\u00e4se kursuse Moodle&#8217;i keskkonda. Siin on see toodud plokkskeemina. (Skeemil kl\u00f5psates n\u00e4eb seda suuremana.)<\/p>\n<figure id=\"attachment_213\" aria-describedby=\"caption-attachment-213\" style=\"width: 290px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Moodle_plokkskeem.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-213 size-medium\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Moodle_plokkskeem-290x300.png\" alt=\"\" width=\"290\" height=\"300\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Moodle_plokkskeem-290x300.png 290w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Moodle_plokkskeem-768x794.png 768w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Moodle_plokkskeem-65x67.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Moodle_plokkskeem-225x233.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Moodle_plokkskeem-350x362.png 350w, https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-content\/uploads\/sites\/6\/2019\/01\/Moodle_plokkskeem.png 891w\" sizes=\"auto, (max-width: 290px) 100vw, 290px\" \/><\/a><figcaption id=\"caption-attachment-213\" class=\"wp-caption-text\">Joonis 3. Moodle\u2019i murelahendaja<\/figcaption><\/figure>\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-210","chapter","type-chapter","status-publish","hentry"],"part":208,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/210","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\/210\/revisions"}],"predecessor-version":[{"id":553,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/210\/revisions\/553"}],"part":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/parts\/208"}],"metadata":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapters\/210\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/media?parent=210"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/pressbooks\/v2\/chapter-type?post=210"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/contributor?post=210"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/wp-json\/wp\/v2\/license?post=210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}