{"id":10295,"date":"2025-07-16T12:45:42","date_gmt":"2025-07-16T10:45:42","guid":{"rendered":"https:\/\/blue.pri.ee\/ttu\/?page_id=10295"},"modified":"2025-11-03T18:44:49","modified_gmt":"2025-11-03T16:44:49","slug":"jooksvad-kodutood","status":"publish","type":"page","link":"https:\/\/blue.pri.ee\/ttu\/programmeerimine-i\/jooksvad-kodutood\/","title":{"rendered":"Jooksvad kodut\u00f6\u00f6d"},"content":{"rendered":"<p>Sellelt lehelt leiad v\u00e4ikesed kodut\u00f6\u00f6d, mis tuleb esitada vastava klassitunni ajal.<\/p>\n<p>Pane t\u00e4hele, et sarnaselt laboritega v\u00f5ivad ka kodut\u00f6\u00f6d uueneda jooksvalt semestri v\u00e4ltel &#8211; m\u00f5ned kodut\u00f6\u00f6d v\u00f5idakse lisada, m\u00f5ned eemaldada v\u00f5i nende sisu v\u00f5ib muutuda. K\u00fcll aga ei tee me sisulisi uuendusi juba m\u00f6\u00f6dunud kodut\u00f6\u00f6des ega siis, kui kodut\u00f6\u00f6 t\u00e4htajani on j\u00e4\u00e4nud v\u00e4hem kui n\u00e4dal aega (st kodut\u00f6\u00f6 n\u00e4dalaks 4 ei muutu\u00a0 p\u00e4rast kolmanda n\u00e4dala klassitunni toimumist).<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-i\/jooksvad-kodutood\/#Tahtaeg_nadal_2\" >T\u00e4htaeg: n\u00e4dal 2<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-i\/jooksvad-kodutood\/#Tahtaeg_nadal_3\" >T\u00e4htaeg: n\u00e4dal 3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-i\/jooksvad-kodutood\/#Tahtaeg_nadal_4\" >T\u00e4htaeg: n\u00e4dal 4<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-i\/jooksvad-kodutood\/#Tahtaeg_nadal_5\" >T\u00e4htaeg: n\u00e4dal 5<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-i\/jooksvad-kodutood\/#Tahtaeg_nadal_6\" >T\u00e4htaeg: n\u00e4dal 6<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-i\/jooksvad-kodutood\/#Tahtaeg_nadal_7\" >T\u00e4htaeg: n\u00e4dal 7<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Tahtaeg_nadal_2\"><\/span>T\u00e4htaeg: n\u00e4dal 2<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>\u00dclesanne 1:<\/strong> Loe l\u00e4bi alustamisejuhend, t\u00e4ida etteantud \u00fclesanded: <strong><a href=\"https:\/\/blue.pri.ee\/ttu\/ressursid\/alusta-siit\/\">Alusta siit<\/a><\/strong><\/p>\n<p><strong>\u00dclesanne 2: <\/strong>Lahenda \u00fclesanne keskmise palga kohta<\/p>\n<p>Selleks pead koostama <strong>C-keelse programmi [W02-4]<\/strong> ja sellele \u00fcks-\u00fcheselt vastava algoritmi <strong>UML tegevusdiagrammina [W02-5].\u00a0\u00a0<\/strong><\/p>\n<p>Rakenduse n\u00f5uded:<\/p>\n<ul>\n<li>Kasutajalt k\u00fcsitakse t\u00f6\u00f6p\u00e4eva alguse ja l\u00f5pu kellaaeg<\/li>\n<li>Kasutajalt k\u00fcsitakse t\u00f6\u00f6p\u00e4evade arv kalendrikuus<\/li>\n<li>Kasutajalt k\u00fcsitakse tunnipalk<\/li>\n<li>Leia ja v\u00e4ljasta\n<ul>\n<li>Kui palju teenib kasutaja \u00fches p\u00e4evas<\/li>\n<li>Kui palju teenib kasutaja \u00fches kalendrikuus<\/li>\n<\/ul>\n<\/li>\n<li>V\u00e4ljasta, kas see on <strong>alla<\/strong>, <strong>\u00fcle<\/strong> v\u00f5i <strong>t\u00e4pselt<\/strong> Eesti keskmine brutopalk. Kasuta viimase avaldatud kuu palganumbrit (nt juuni 2025).<br \/>\n<strong><a href=\"https:\/\/www.stat.ee\/et\/avasta-statistikat\/valdkonnad\/tooelu\/palk-ja-toojoukulu\/keskmine-brutokuupalk\">https:\/\/www.stat.ee\/et\/avasta-statistikat\/valdkonnad\/tooelu\/palk-ja-toojoukulu\/keskmine-brutokuupalk<\/a><\/strong><\/li>\n<\/ul>\n<p>N\u00e4iteks:<\/p>\n<ul>\n<li>Algus 9, l\u00f5pp 16, tunnipalk 11, t\u00f6\u00f6p\u00e4evi kuus 21.<\/li>\n<li>P\u00e4evane sissetulek 77, kuu sissetulek 1617.<\/li>\n<li>See on madalam kui Eesti keskmine brutokuupalk.<\/li>\n<\/ul>\n<p>Abiks<strong>:<a href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-i\/kuidas-alustada\/sissejuhatus-algoritmidesse-ja-umli\/\"> Sissejuhatus algoritmidesse ja UMLi<\/a><\/strong><\/p>\n<p>Lahendus kaitstakse praktikumitunnis. Veendu, et sul oleks k\u00e4ttesaadav: C-keelne programmikood, algoritm pildi kujul (nt PNG) ja algoritm projektifaili kujul (n\u00e4iteks vpp). Soovitus on need \u00fcles laadida \u00fclikooli P kettale, nt <strong><a href=\"https:\/\/blue.pri.ee\/ttu\/ressursid\/sftp-juhis-failidele-ligipaasuks\/\">SFTP juhendit<\/a><\/strong> kasutades<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Tahtaeg_nadal_3\"><\/span>T\u00e4htaeg: n\u00e4dal 3<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>\u00dclesanne:<\/strong> Toidukaalu programmi edasiarendus [W03-5]\n<p>V\u00f5ta aluseks oma teise n\u00e4dala teine tunnit\u00f6\u00f6, mille raames l\u00f5id toidukaalu rakenduse.<\/p>\n<p>Lisa rakendusele j\u00e4rgnev funktsionaalsus<\/p>\n<ul>\n<li>Kaalu lubatud m\u00f5\u00f5tevahemik on 0 &#8211; 50 kg<\/li>\n<li>Kaalu m\u00f5\u00f5tem\u00e4\u00e4ramatus on +-10 grammi + 1% lugemi v\u00e4\u00e4rtusest (massist).\n<ul>\n<li>N\u00e4iteks kui kaal n\u00e4itab massiks 2,00 kg, siis tegelik mass v\u00f5ib olla vahemikus 1,97 &#8211; 2,03 kg.<\/li>\n<\/ul>\n<\/li>\n<li>Men\u00fc\u00fc peab olema kahetasemeline\n<ul>\n<li>Esimese taseme men\u00fc\u00fcst valitakse toote kategooria (nt puuviljad, juurviljad). Sul peab olema v\u00e4hemalt 3 kategooriat.<\/li>\n<li>Teise taseme men\u00fc\u00fcst valitakse valitud kategooriasse kuuluv toode. Igas kategoorias peab olema v\u00e4hemalt 3 toodet.<\/li>\n<\/ul>\n<\/li>\n<li>Kasutajale pakutav hind peab arvestama kogu m\u00f5\u00f5tem\u00e4\u00e4ramatuse kasutaja kasuks &#8211; st mitte selle eest raha k\u00fcsima. N\u00e4iteks kui kaal n\u00e4itab massiks 2,00 kg, siis kasutajalt tohib k\u00fcsida raha 1,97 kg eest.<\/li>\n<li>Veateated peavad olema arusaadavad ja vastama veale, mis tekkis. Rakendus peab olema v\u00f5imeline tuvastama\n<ul>\n<li>Toode pole kaalu peal. Arvestada tuleb m\u00f5\u00f5tem\u00e4\u00e4ramatust m\u00f5lemas suunas (nt kui kaalul on -6 grammi v\u00f5i +3 grammi, siis m\u00f5lemal juhul puudub toode kaalult).<\/li>\n<li>Kaalu n\u00e4it vigane (nt kaalumisplaat t\u00f5stetud)<\/li>\n<li>\u00dclekaal (\u00fcle sertifitseeritud m\u00f5\u00f5tevahemiku)<\/li>\n<li>Tundmatu tootekategooria<\/li>\n<li>Toode puudub vastavas tootekategoorias \/ tundmatu toode<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Lahendus kaitstakse praktikumitunnis. Veendu, et sul on k\u00e4ttesaadav C-keelne l\u00e4htekood.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Tahtaeg_nadal_4\"><\/span>T\u00e4htaeg: n\u00e4dal 4<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>\u00dclesanne:\u00a0<\/strong>Modelleeri oma kolmanda n\u00e4dala teise tunnit\u00f6\u00f6 (poekassa koos ts\u00fcklitega sisendi kontrolliks) algoritm tegevusdiagrammina.<\/p>\n<p>Loodav diagramm peab olema \u00fcks-\u00fcheses vastavuses sinu tunnit\u00f6\u00f6ga.<\/p>\n<p>M\u00f5ned olulised kohad ja n\u00e4pun\u00e4ited<\/p>\n<ul>\n<li>Ts\u00fcklite modelleerimisel tuleb ts\u00fckkel komponentideks\n<ul>\n<li>algv\u00e4\u00e4rtus, tingimus, ts\u00fckli sisu jms, vastavalt mida konkreetne ts\u00fckkel realiseerimiseks vajab.<\/li>\n<li>tingimuse paigutamisel tuleb arvestada kas tegu on eel- v\u00f5i j\u00e4relkontrolliga ts\u00fckliga<\/li>\n<\/ul>\n<\/li>\n<li>Kui ts\u00fckli sees on <span class=\"lang:c highlight:0 decode:true crayon-inline\">if<\/span>\u00a0 lause, siis see t\u00e4hendab, et sul on antud kontekstis kaks tingimust vaja modelleerida &#8211; ts\u00fckli tingimus ning tingimuslause tingimus. Veendu, et paigutad need \u00f5igetesse asukohtadesse ja j\u00e4rjekorras. Kombineerida \u00fcheks neid \u00fcldjuhul ei tohi.<\/li>\n<li><span class=\"lang:c highlight:0 decode:true crayon-inline \">break<\/span>\u00a0 lauset ei modelleerita tegevusena (<em>action<\/em>), vaid tavalise noolena (<em>control flow),<\/em> vastavalt kus kohas programmivoog t\u00f6\u00f6d j\u00e4tkaks p\u00e4rast <span class=\"lang:c highlight:0 decode:true crayon-inline \">break<\/span>\u00a0 lauset.<br \/>\nM\u00f5ttek\u00e4ik: <span class=\"lang:c highlight:0 decode:true crayon-inline \">break<\/span>\u00a0 lause tulemusel ei tehta mitte midagi, vaid suundutakse j\u00e4rgnevate tegevuste juurde.<\/li>\n<li>\u00c4ra unusta koondumisi &#8211; kui kaks v\u00f5i enam voogu liituvad, peab enne seda olema koondumine (<em>merge node)<\/em>\n<ul>\n<li>Kui tekib olukord, kus \u00fcks nool tuleb sisse ja \u00fcks l\u00e4heb v\u00e4lja, siis koondumist ei kasutata &#8211; see &#8220;lihtsustub v\u00e4lja&#8221;<\/li>\n<\/ul>\n<\/li>\n<li>Algoritm on programmeerimiskeelest s\u00f5ltumatu. Selgitada tuleb tegevuste jada, mitte kopeerida 1:1 programmist lauseid algoritmi!\n<ul>\n<li>St see ei tohi sisaldada programmeerimiskeelseid lauseid &#8211; nt printf, scanf<\/li>\n<\/ul>\n<\/li>\n<li>Tingimuslausete ja matemaatiliste tehete juures v\u00f5ib olla abistav kirjutada see v\u00e4lja nii s\u00f5nadega kui koodilausena. N\u00e4iteks\n<ul>\n<li>Algv\u00e4\u00e4rtustan PIN kordade arvu loenduri kolmeks, st pinAttemptsleft = 3<\/li>\n<li>Suurendan loendurit i \u00fche v\u00f5rra, st i++<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Tegu on k\u00fcll keerukama n\u00e4itega, kuid m\u00f5ningast inspiratsiooni v\u00f5id leida <strong><a href=\"https:\/\/blue.pri.ee\/ttu\/ressursid\/sissejuhatus-algoritmidesse-ja-umli\/uml-naide-positiivsete-arvude-massiivi-salvestamine\/\">https:\/\/blue.pri.ee\/ttu\/ressursid\/sissejuhatus-algoritmidesse-ja-umli\/uml-naide-positiivsete-arvude-massiivi-salvestamine\/<\/a>.\u00a0<\/strong><\/p>\n<p>Lahendus kaitstakse praktikumitunnis. Veendu, et sul on ligip\u00e4\u00e4s nii diagrammile projekti kui pildi kujul.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Tahtaeg_nadal_5\"><\/span>T\u00e4htaeg: n\u00e4dal 5<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Kodut\u00f6\u00f6d selleks n\u00e4dalaks antud ei ole. Veendu, et sul poleks praktikumides v\u00f5lgu, vajadusel lahenda tagantj\u00e4rgi \u00fclesandeid ja kaitse need \u00e4ra.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Tahtaeg_nadal_6\"><\/span>T\u00e4htaeg: n\u00e4dal 6<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Kodut\u00f6\u00f6: <\/strong>Kirjutada programm vastavalt p\u00fcstitusele: <strong><a href=\"https:\/\/blue.pri.ee\/ttu\/kodutoo\/kodutoo-vanuselise-jaotuse-looja\/\">Vanuselise jaotuse looja<\/a><\/strong><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Tahtaeg_nadal_7\"><\/span>T\u00e4htaeg: n\u00e4dal 7<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u00dclesande eesm\u00e4rgiks on olemasoleva programmikoodi t\u00f5lgendamine ja algoritmina modelleerimine.<\/p>\n<ul>\n<li>Lae alla programmikood, mis tuleb modelleerida: <strong><a href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/programmikood\/post.c\">post.c<\/a><\/strong><\/li>\n<li>\u00dclesanne p\u00f5hineb 5. algoritmi\u00fclesandel (pakikaalude suhted): <a href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-i\/algoritmide-ulesanded\/\"><strong>algoritmimise \u00fclesanded<\/strong><\/a><\/li>\n<li>Igal algoritmi perspektiivist olulisele koodilausele peab vastama tegevus, mis on s\u00f5naliselt kirjutatud. Koodi kopeerimine algoritmi puhtal kujul ilma selgitusena ei ole piisav (nt minInd = i \u00fcksikuna ei selgita mida selle koodilausega soovitakse teha)<\/li>\n<li>Visuaalseid detaile ei modelleerita (nt mitu t\u00fchikut, mitu kohta p\u00e4rast koma, joondamine jne)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Jooksvaid kodut\u00f6id sellest hetkest edasi enam ei ole<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sellelt lehelt leiad v\u00e4ikesed kodut\u00f6\u00f6d, mis tuleb esitada vastava klassitunni ajal. Pane t\u00e4hele, et sarnaselt laboritega v\u00f5ivad ka kodut\u00f6\u00f6d uueneda jooksvalt semestri v\u00e4ltel &#8211; m\u00f5ned kodut\u00f6\u00f6d v\u00f5idakse lisada, m\u00f5ned eemaldada v\u00f5i nende sisu v\u00f5ib muutuda. K\u00fcll aga ei tee me sisulisi uuendusi juba m\u00f6\u00f6dunud kodut\u00f6\u00f6des ega siis, kui kodut\u00f6\u00f6 t\u00e4htajani on j\u00e4\u00e4nud v\u00e4hem kui n\u00e4dal &hellip; <a href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-i\/jooksvad-kodutood\/\" class=\"more-link\">Loe edasi <span class=\"screen-reader-text\">Jooksvad kodut\u00f6\u00f6d<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":12,"menu_order":4,"comment_status":"closed","ping_status":"closed","template":"page-templates\/code-width-wide.php","meta":{"footnotes":""},"class_list":["post-10295","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/10295","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/comments?post=10295"}],"version-history":[{"count":23,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/10295\/revisions"}],"predecessor-version":[{"id":10866,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/10295\/revisions\/10866"}],"up":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/12"}],"wp:attachment":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/media?parent=10295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}