{"id":19,"date":"2014-08-18T12:09:40","date_gmt":"2014-08-18T10:09:40","guid":{"rendered":"http:\/\/www.blue.pri.ee\/ttu\/?page_id=19"},"modified":"2026-03-22T23:28:01","modified_gmt":"2026-03-22T21:28:01","slug":"kodutoo-i","status":"publish","type":"page","link":"https:\/\/blue.pri.ee\/ttu\/programmeerimine-ii\/kodutoo-i\/","title":{"rendered":"Kodut\u00f6\u00f6 I"},"content":{"rendered":"<div class=\"su-tabs su-tabs-style-default su-tabs-mobile-stack\" data-active=\"1\" data-scroll-offset=\"0\" data-anchor-in-url=\"yes\"><div class=\"su-tabs-nav\"><span class=\"\" data-url=\"\" data-target=\"blank\" tabindex=\"0\" role=\"button\">N\u00f5uded<\/span><span class=\"\" data-url=\"\" data-target=\"blank\" tabindex=\"0\" role=\"button\">Variandi generaator<\/span><\/div><div class=\"su-tabs-panes\"><div class=\"su-tabs-pane su-u-clearfix su-u-trim\" data-title=\"N\u00f5uded\">Esimese kodut\u00f6\u00f6 raames tuleb luua programm vastavalt etteantud n\u00f5uetele ning koostada tehtud t\u00f6\u00f6 kohta aruanne. Kodut\u00f6\u00f6 fookuses on korrektne failide ja struktuuride kasutamine ning esmane koodi t\u00fckeldamine. T\u00e4iendavalt rakendame k\u00e4surea argumente ning olenevalt variandist esineb ka loendite kasutust.<\/p><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-ii\/kodutoo-i\/#Nouded_loodavale_rakendusele\" >N\u00f5uded loodavale rakendusele<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-ii\/kodutoo-i\/#Nouded_koodimisstandardile_ja_keskkonnale\" >N\u00f5uded koodimisstandardile ja keskkonnale<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-ii\/kodutoo-i\/#Lahenduse_uldised_nouded\" >Lahenduse \u00fcldised n\u00f5uded<\/a><\/li><\/ul><\/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-ii\/kodutoo-i\/#Sisendfaili_nouded\" >Sisendfaili n\u00f5uded<\/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-ii\/kodutoo-i\/#Aruande_mall\" >Aruande mall<\/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-ii\/kodutoo-i\/#Aruanne\" >Aruanne<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-ii\/kodutoo-i\/#Lisaulesanne_boonuspunktide_teenimiseks\" >Lisa\u00fclesanne boonuspunktide teenimiseks<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-ii\/kodutoo-i\/#Esitamine\" >Esitamine<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-ii\/kodutoo-i\/#Tulemused_ja_tagasiside\" >Tulemused ja tagasiside<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-ii\/kodutoo-i\/#Kodutoo_parandamine\" >Kodut\u00f6\u00f6 parandamine<\/a><\/li><\/ul><\/nav><\/div>\n\n<h3><span class=\"ez-toc-section\" id=\"Nouded_loodavale_rakendusele\"><\/span>N\u00f5uded loodavale rakendusele<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Loodav rakendus peab j\u00e4lgima k\u00f5iki parimaid praktikaid, mida on tutvustatud Programmeerimine 1 aines ning esimestel n\u00e4dalatel Programmeerimine 2 aines.<\/p>\n<p>Keerukamad lahendused ning \u00f5ppeaines katmata teemade rakendamine on lubatud, kui need on korrektselt dokumenteeritud ning aruandes on p\u00f5hjendatud motivatsioon nende kasutamiseks sedasi, et lugejale on ilmne t\u00f6\u00f6 autori kompetents nende teemade valdamises.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Nouded_koodimisstandardile_ja_keskkonnale\"><\/span>N\u00f5uded koodimisstandardile ja keskkonnale<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Loodav programm peab olema kirjutad C programmeerimiskeeles. Kasutada tohib C90 ja C99 koodistandardeid. Uuemate standardite (C11, C17, C23) kasutamine on lubatud, kui see pakub lisandv\u00e4\u00e4rtust (nt lihtsustab mingit tegevust). P\u00f5hjendus tuleb tuua v\u00e4lja aruandes.<\/p>\n<p>Lisaks C standardteekidele tohid kasutada ka C POSIX ja GNU C teeke ja laiendusi. Kolmanda osapoole teekide kasutamine v\u00e4ljaspool eelmainituid tuleb eelnevalt kokku leppida \u00f5ppej\u00f5uga!<\/p>\n<p>Esitatud lahendus kompileeritakse ja testitakse arvutiklassis oleva Linux seadistusega v\u00f5rdv\u00e4\u00e4rses keskkonnas (nt OpenSUSE SLED-15 SP5 ja GCC-12) v\u00f5i v\u00e4rskeima jooksva Ubuntu versiooniga (Ubuntu Linux 25.10 ja GCC 15 v\u00f5i v\u00e4rskem). \u00dchilduvus teiste operatsioonis\u00fcsteemidega (Windows, MacOS) ei ole vajalik.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Lahenduse_uldised_nouded\"><\/span><strong>Lahenduse \u00fcldised n\u00f5uded<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>Programmi l\u00e4htekood peab olema t\u00fckeldatud enamaks kui \u00fcheks failiks. T\u00e4pne failide arv ja jaotus on autori otsustada.\n<ul>\n<li>Minimaalselt peab olema rakendus t\u00fckeldatud koodi- ja p\u00e4isefailiks<\/li>\n<li>Mitme .c koodifaili puhul tuleb lisada Makefile oma lahenduse kompileerimiseks<\/li>\n<\/ul>\n<\/li>\n<li>Andmefaili nimi loetakse programmi k\u00e4surea argumendina\n<ul>\n<li>Programmi k\u00e4itumine olukorras, kus andmefaili nime ei anta, on t\u00f6\u00f6 autori otsustada. Valitud k\u00e4itumine peab olema dokumenteeritud!<\/li>\n<\/ul>\n<\/li>\n<li>Programmi t\u00f6\u00f6 tulemus kuvatakse nii ekraanil kui salvestatakse v\u00e4ljundfaili\n<ul>\n<li>V\u00e4ljundfailis kuvatakse vaid \u00fclesande tulemus<\/li>\n<li>Ekraanile tuleb kuvada \u00fclesande tulemus. T\u00e4iendavalt tohib ekraanile kuvada ka vahetulemusi ja muud vajalikku informatsiooni, sh k\u00fcsida kasutajalt vajaminevat sisendit.<\/li>\n<li>V\u00e4ljundfaili nimetus on arendaja otsustada.<\/li>\n<\/ul>\n<\/li>\n<li>Programm peab t\u00f6\u00f6tama sisendfailidega, mille kirjete arv ei ole kindlaks m\u00e4\u00e4ratud &#8211; st m\u00f5ne rea lisamise v\u00f5i kustutamise tulemusel peaks programm j\u00e4tkuvalt edukalt t\u00f6\u00f6tama.\n<ul>\n<li>Maksimaalse ridade arvu defineerimine on lubatud. Kui sisendfailis on rohkem andmeid, ei ole nende lugemine vajalik.<\/li>\n<li>D\u00fcnaamilise m\u00e4lu kasutamine ei ole n\u00f5utud &#8211; seda vaatame tulevikus. Kui oskad seda korrektselt teha, v\u00f5id seda kasutada (st vajaliku koguse k\u00fcsimine, kontroll, vabastamine jms).<\/li>\n<\/ul>\n<\/li>\n<li>Andmed loetakse failist ja hoiustatakse programmi sees struktuuridest (<span class=\"lang:c highlight:0 decode:true crayon-inline \">struct<\/span> ) koosnevas massiivis. \u00dclesandes v\u00f5ib olla n\u00f5utud ka pesastatud struktuuri kasutamine. Programmis kasutatavatesse struktuuridesse v\u00f5id lisada t\u00e4iendavad v\u00e4lju, sh truktuure. Samuti v\u00f5id luua t\u00e4iendavaid struktuure, kui see abistab \u00fclesande lahendusele kaasa.<\/li>\n<li>Juhul kui \u00fclesandes on kasutatakse kodeeritud v\u00e4\u00e4rtusi (nt olek, piletit\u00fc\u00fcp, &#8230;), mis on keerulisemad kui t\u00f5ene\/v\u00e4\u00e4r, tuleks need kodeerida kasutades loendeid (<span class=\"lang:c highlight:0 decode:true crayon-inline \">enum<\/span>\u00a0)<\/li>\n<li>Programm peab pakkuma m\u00f5istlikku kasutajakogemust (UX &#8211; <em>user experience<\/em>)\n<ul>\n<li>Programm peab teavitama kasutajat vigade esinemisel arusaadavalt. Vea kirjeldus peab olema v\u00f5imalikult t\u00e4pne (abistav probleemi lahendamisel). K\u00f5ik veateated kirjutatakse <span class=\"lang:c highlight:0 decode:true crayon-inline \">stderr<\/span>\u00a0 standardvoogu.<\/li>\n<li>Kui kasutajalt oodatakse t\u00e4iendavat sisendit, peab selle p\u00e4ring olema arusaadav. Kui sisend peab olema kindlalt vormindatud, tuleb kasutajale kuvada eelnevalt sobilik vorming. V\u00f5imalusel lisada ka n\u00e4ide oodatavast sisendist.<\/li>\n<li>Kui programm sisaldab otsingut, filtreerimist v\u00f5i grupeerimist, peab kriteeriumile vastavate tulemuste puudumine olema kasutajale arusaadavalt v\u00e4ljendatud konkreetse teateaga.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Sisendfaili_nouded\"><\/span>Sisendfaili n\u00f5uded<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Andmefailis peavad olema ainult \u00fclesande variandis kirjeldatud andmev\u00e4ljad.<\/li>\n<li>T\u00f6\u00f6 autor <strong>loob<\/strong> sisendfaili andmemudeli vastavalt enda parimatele oskustele ja teadmistele. Sinna hulka kuuluvad andmev\u00e4ljade eraldaja, j\u00e4rjekord, sisu, keerukus jne. T\u00f6\u00f6 autor <strong>dokumenteerib\u00a0<\/strong>andmemudeli ja selle loomisel tehtud otsused programmiga kaasa antavas dokumendis.<\/li>\n<li>T\u00f6\u00f6 autor koostab andmefaili vastavalt kirjeldatud andmemudelile. Loodud andmefail laetakse \u00fcles koos esitatava t\u00f6\u00f6ga. Andmefailis peab olema v\u00e4hemalt 10 kirjet. Kui autor esitab t\u00f6\u00f6ga mitu andmefaili erinevate olukordade n\u00e4itamiseks, kehtib pikkuse piirang vaid \u00fchele neist.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Aruande_mall\"><\/span>Aruande mall<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Aruande malliks kasuta Programmeerimine 1 kodut\u00f6\u00f6 1 raames v\u00e4lja toodud malli (<a href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-i\/kodutoo-i\/\">https:\/\/blue.pri.ee\/ttu\/programmeerimine-i\/kodutoo-i\/<\/a>) ning kohanda see ise sobivaks antud kodut\u00f6\u00f6le.<\/p>\n<h3 data-select-like-a-boss=\"1\"><span class=\"ez-toc-section\" id=\"Aruanne\"><\/span>Aruanne<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Aruande sisuline pool peaks j\u00e4\u00e4ma 3 &#8211; 6 A4 lehek\u00fclje vahele, lisandub jooniste maht.<\/p>\n<p><strong>R\u00f5hk on korralikult struktureeritud dokumentatsioonil!<\/strong> V\u00e4ldi jutustamist (erandina kokkuv\u00f5te).<\/p>\n<ul>\n<li>Tiitelleht<\/li>\n<li>Autorideklaratsioon<\/li>\n<li>L\u00fchendite ja m\u00f5istete s\u00f5nastik (vajadusel)<\/li>\n<li>Sisukord<\/li>\n<li>Jooniste loetelu<\/li>\n<li>Tabelite loetelu<\/li>\n<li>\u00dclesande p\u00fcstitus (variant)<\/li>\n<li>Lahenduse detailne kirjeldus (<strong>v\u00e4ldi tekstim\u00fc\u00fcre!<\/strong>)\n<ul>\n<li data-select-like-a-boss=\"1\">Programmi l\u00fchikirjeldus &#8211; st mida teeb?<\/li>\n<li><span style=\"font-style: inherit;\">Programmi t\u00f6\u00f6voog (<em>mis j\u00e4rjekorras mida tehakse, l\u00fchidalt ja \u00fcldistatult. V\u00e4ldi detailidesse minekut! Maksimaalselt pool lehek\u00fclge).<\/em><\/span><\/li>\n<li>Projekti struktuur &#8211; failide nimetused, l\u00fchike selgitus. Kui kood on jaotatud kaustadesse, selgitada t\u00fckeldust.<br \/>\nSoovituslik: lisada rakenduse <span class=\"lang:c highlight:0 decode:true crayon-inline \">tree<\/span>\u00a0 v\u00e4ljund<\/li>\n<li>Andmestruktuuride (<span class=\"lang:c highlight:0 decode:true crayon-inline\">struct<\/span> ) kirjeldus\n<ul>\n<li>Struktuuri l\u00fchikirjeldus (eesm\u00e4rk)<\/li>\n<li>Struktuuri detailid (v\u00e4lja nimi, andmet\u00fc\u00fcp, kirjeldus, n\u00e4idisv\u00e4\u00e4rtus), vormindatud tabelina<\/li>\n<\/ul>\n<\/li>\n<li>Loendite (<span class=\"lang:c highlight:0 decode:true crayon-inline \">enum<\/span> ) kirjeldus (kui esineb)\n<ul>\n<li>Loendi nimi, kirjeldus, v\u00f5imalikud v\u00e4\u00e4rtused<\/li>\n<\/ul>\n<\/li>\n<li><span style=\"font-style: inherit;\">Eriolukordade anal\u00fc\u00fcs ja lahendamin<\/span><span style=\"font-style: inherit;\">e<\/span>\n<ul>\n<li>Probleemi kirjeldus<\/li>\n<li>Probleemi seisukord (kas lahendatud, leitud alternatiivne v\u00f5imalus v\u00f5i on see j\u00e4tkuvalt aktuaalne)<\/li>\n<li>Kui probleem on lahendatud, siis kuidas selle lahendasid<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Andmefaili struktuuri kirjeldus\n<ul>\n<li>\u00dche kirje struktuur (andmev\u00e4ljade j\u00e4rjekord, andmev\u00e4lja ja andmekirje eraldajad, &#8230;)<\/li>\n<li>Iga andmev\u00e4lja kirjeldus &#8211; nimetus, andmet\u00fc\u00fcp, n\u00e4idisv\u00e4\u00e4rtus, kirjeldus, piirangud nende olemasolul (nt pikkus, vahemik, keelatud v\u00e4\u00e4rtused)<\/li>\n<li>\u00dche andmerea n\u00e4idis<\/li>\n<\/ul>\n<\/li>\n<li>Programmi kasutusjuhend. Kirjelda k\u00f5iki v\u00f5imalike k\u00e4sureaargumentide kombinatsioone ja k\u00e4ivitusv\u00f5imalusi, mis on toetatud.<\/li>\n<li>Lisa\u00fclesanne (kui lahendasid lisa\u00fclesande)<\/li>\n<li>Kokkuv\u00f5te\n<ul>\n<li data-select-like-a-boss=\"1\">Kirjuta m\u00f5ni lause oma l\u00e4henemisest \u00fclesandele ja t\u00f6\u00f6protsessi kohta.<\/li>\n<li data-select-like-a-boss=\"1\">Kirjuta m\u00f5ni lause \u00fclesandest ja selle keerukusest sinu jaoks.<\/li>\n<li data-select-like-a-boss=\"1\">Kui v\u00f5imalik, hinda \u00fclesande sooritamise ajalist mahtu.<\/li>\n<li data-select-like-a-boss=\"1\">Kas soovitad \u00fclesannet kasutada ka tulevikus? Kas ja mida muudaksid?<\/li>\n<li data-select-like-a-boss=\"1\">T\u00e4iendavad kommentaarid, emotsioonid, m\u00f5tted.<\/li>\n<\/ul>\n<\/li>\n<li>Kasutatud kirjandus (vajadusel)\n<ul>\n<li>Viitamiseks kasutatakse IEEE stiili<br \/>\nTalTechi juhend: <a href=\"https:\/\/haldus.taltech.ee\/sites\/default\/files\/2024-05\/IEEE_stiilis_viitamine_2024%20%281%29.pdf\">https:\/\/haldus.taltech.ee\/sites\/default\/files\/2024-05\/IEEE_stiilis_viitamine_2024%20%281%29.pdf<\/a><br \/>\nAmetlik juhend: <strong><a href=\"https:\/\/journals.ieeeauthorcenter.ieee.org\/wp-content\/uploads\/sites\/7\/IEEE_Reference_Guide.pdf\">https:\/\/journals.ieeeauthorcenter.ieee.org\/wp-content\/uploads\/sites\/7\/IEEE_Reference_Guide.pdf<\/a><\/strong><\/li>\n<li>K\u00f5ik mis ei olnud kaetud selle \u00f5ppeaine raames ja mida sa ei loonud iseseisvalt.<\/li>\n<li>Ka n\u00e4iteks s\u00f5bra v\u00f5i kursusekaaslase abi tuleks viidata:\u00a0<a href=\"https:\/\/libraryguides.vu.edu.au\/ieeereferencing\/personalcommunication\">https:\/\/libraryguides.vu.edu.au\/ieeereferencing\/personalcommunication<\/a><\/li>\n<li>Kui kasutasid tehisintellekti (nt ChatGPT), peab selle kasutus olema viidatud &#8211; mis ulatuses ja mille jaoks kasutasid<\/li>\n<li>Viited allikatele peavad olema t\u00e4psed.\u00a0<em>N\u00e4iteks viitena stackoverflow.com v\u00f5i google.com ei sobi. Viide peab olema konkreetsele lehek\u00fcljele kust informatsioon p\u00e4rineb.<\/em><\/li>\n<\/ul>\n<\/li>\n<li>Ekraanit\u00f5mmis(ed) t\u00f6\u00f6tavast programmist\n<ul>\n<li>Ekraanit\u00f5mmised v\u00f5ivad olla esitatud kas lisana v\u00f5i p\u00f5imituna lahenduse kirjelduse sisse<\/li>\n<li>Ekraanit\u00f5mmistel peab n\u00e4itama nii programmi t\u00f6\u00f6d tavaolukorras kui eriolukordades<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Lisaulesanne_boonuspunktide_teenimiseks\"><\/span>Lisa\u00fclesanne boonuspunktide teenimiseks<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Kodut\u00f6\u00f6 eest on v\u00f5imalik saada kuni 15 boonuspunkti. Boonuspunktide saamiseks peavad lisa\u00fclesande raames tehtud t\u00e4iendused olema aruandes kirjeldatud. Boonuspunkte on v\u00f5imalik ka saada osaliselt, kui k\u00f5ik n\u00f5uded ei ole t\u00e4idetud.<\/p>\n<p>Boonuspunktide saamiseks tuleb lisaks \u00fclesande baasn\u00f5uetele t\u00e4ita j\u00e4rgmised n\u00f5uded<\/p>\n<ul>\n<li>T\u00e4iendatud k\u00e4sureaargumentide tugi\n<ul>\n<li>Programmi peab saama kasutada ilma k\u00e4sureaargumente andmata, kasutades vaikev\u00e4\u00e4rtusi<\/li>\n<li>Peab toetama k\u00e4sureaargumendina erineva sisendfaili nime andmist<\/li>\n<li>Peab toetama k\u00e4sureaargumendina erineva v\u00e4ljundfaili nime andmist<\/li>\n<li>Peab toetama k\u00e4sureaargumendina ekraanile v\u00e4ljastuse v\u00e4lja l\u00fclitamist<\/li>\n<li>Peab toetama k\u00e4sureaargumendina faili v\u00e4ljastuse v\u00e4lja l\u00fclitamist<\/li>\n<li>Sinu \u00fclesanne on m\u00f5elda v\u00e4lja m\u00f5istlik viis kuidas toetada \u00fchte v\u00f5i enamat k\u00e4sureaargumenti korraga oma programmis m\u00f5istlikult (see v\u00f5ib t\u00e4hendada nt sisend ja v\u00e4ljundfaili m\u00e4\u00e4ramist ning ekraanile v\u00e4ljastuse v\u00e4lja l\u00fclitamist).<\/li>\n<li>K\u00e4surea argumentide haldamise v\u00f5id ise kirjutada v\u00f5i kasutada <span class=\"lang:c highlight:0 decode:true crayon-inline\">unistd.h<\/span>\u00a0 v\u00f5i <span class=\"lang:c highlight:0 decode:true crayon-inline\">argp.h<\/span>\u00a0 teeke.<\/li>\n<\/ul>\n<\/li>\n<li>Programmi vaikimisi seadistus peab olema hoiustatud eraldiseisvas seadefailis, mis antakse rakendusega kaasa. Rakenduse t\u00f6\u00f6 ajal hoiustatakse seadistusi eraldi struktuuri sees. Struktuur v\u00f5ib olla globaalmuutuja.\n<ul>\n<li>Seadefail sisaldab minimaalselt sisendfaili nime, v\u00e4ljundfaili nime, v\u00e4ljastuse seadistust. Seadistusi on lubatud lisada rakenduse paremini toetamiseks.<\/li>\n<li>Seadefail peab olema lahendatud nii, et kui selles olevate seadistuste j\u00e4rjekord on muutunud, loetakse seadefail ikkagi \u00f5igesti.<\/li>\n<li>Seadefaili v\u00e4\u00e4rtusi kasutatakse juhul kui k\u00e4sureaargumente ei edastatud<\/li>\n<li>Edastatud k\u00e4sureaargumendid kirjutavad \u00fcle seadefailis m\u00e4\u00e4ratud vaikimisi v\u00e4\u00e4rtused ainult konkreetsel rakenduse k\u00e4ivitamise korral, seadefaili \u00fcle ei kirjutata. N\u00e4iteks kui k\u00e4sureaargumendina edastatakse ainult uus sisendfaili nimetus, kasutatakse j\u00e4tkuvalt seadefailis olevat v\u00e4ljundfaili nimetust ning v\u00e4ljundi seadistusi. J\u00e4rgmisel korral kui programm k\u00e4ivitatakse argumentideta, kasutatakse algset sisendfaili nimetust.<\/li>\n<\/ul>\n<\/li>\n<li>Aruandesse tuleb lisada t\u00e4iendav esimese astme nummerdatud pealkiri \u201cLisa\u00fclesanded\u201d.\n<ul>\n<li>Kirjelda lisa\u00fclesande raames lisatud funktsionaalsus.<\/li>\n<li>Kirjuta kuidas l\u00e4henesid k\u00e4sureargumentide lisamisele ja kontrollile.<\/li>\n<li>Kirjelda kuidas seadefaili loomise p\u00f5him\u00f5tteid ning kuidas tagad selle, et kui seadefailis on j\u00e4rjekord muutunud, t\u00f6\u00f6tab rakendus ikkagi \u00f5igesti.<\/li>\n<li>Kirjuta seadefaili poolt toetatud seadistuste spetsifikatsioon.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\"><span style=\"font-size: 22px; font-weight: bold;\">T\u00e4htajad<\/span><\/li>\n<\/ul>\n<p><span style=\"color: #ff0000;\"><strong>Terviklik kodut\u00f6\u00f6 tuleb esitada hiljemalt 15.03.2026 23:59:59 (kohalik aeg)<\/strong><\/span><\/p>\n<p>Kodut\u00f6\u00f6 t\u00e4htaja \u00fcletamisel v\u00e4hendatakse t\u00f6\u00f6 eest saadavat l\u00f5pptulemust 1 punkti v\u00f5rra iga esitamist\u00e4htajast \u00fcle l\u00e4inud p\u00e4eva eest. Maksimaalselt v\u00e4hendatakse tulemust 30 punkti v\u00f5rra.<\/p>\n<p>Kui kodut\u00f6\u00f6 kohta tekib t\u00e4iendavaid k\u00fcsimusi v\u00f5i esineb kahtlusi autorluses, hinnatakse kodut\u00f6\u00f6 tulemusega 0 punkti. Sellisel juhul tuleb punktide saamiseks kodut\u00f6\u00f6 kaitsta.<\/p>\n<p>Vajadusel rakendatakse [<a href=\"https:\/\/haldus.taltech.ee\/sites\/default\/files\/2020-10\/Terviktekst_IT-teaduskonna%20%C3%B5ppuri%20akad%20tavade%20rikkumise%20ja%20v%C3%A4%C3%A4ritu%20k%C3%A4itumise%20menetlemise%20kord.pdf\">V\u00e4\u00e4ritu k\u00e4itumise menetlemise korda<\/a>].<\/p>\n<p><span style=\"color: #ff0000;\"><strong>Viimane p\u00e4ev kodut\u00f6\u00f6 esitamiseks ja kaitsmiseks on m\u00e4rgitud sissejuhatavatel slaididel. P\u00e4rast antud kuup\u00e4eva kodut\u00f6id esitada ei ole v\u00f5imalik!<\/strong><\/span><\/p>\n<h3 data-select-like-a-boss=\"1\"><span class=\"ez-toc-section\" id=\"Esitamine\"><\/span>Esitamine<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Kodut\u00f6\u00f6 esitatakse Moodle kursuses Kodut\u00f6\u00f6 1 \u00fclesande alla.<\/p>\n<p data-select-like-a-boss=\"1\">Esitada tuleb j\u00e4rgnevad failid<\/p>\n<ol>\n<li data-select-like-a-boss=\"1\">Dokumentatsioon Adobe PDF formaadis<\/li>\n<li data-select-like-a-boss=\"1\">K\u00f5ik vajalikud koodi- ja p\u00e4isefailid (.c ja .h) programmi kompileerimiseks<\/li>\n<li data-select-like-a-boss=\"1\">Sisendfailid rakenduse kasutamiseks<\/li>\n<\/ol>\n<p>Olenevalt loodud lahendusest\u00a0 v\u00f5ib olla vajalik esitada ka Makefile (mitu koodifaili, teine koodimisstandard, lisa\u00fclesanne, ..).<\/p>\n<p>Failide nimetamiskuju: <span class=\"lang:c highlight:0 decode:true crayon-inline\">HW1_&lt;lastname&gt;[_filename]<\/span><\/p>\n<p>M\u00e4rkus: Nimetamiskuju kehtib vaid Moodlesse otse laetavate failide kohta. Kui laed koodi \u00fcles zip arhiivina, siis arhiivi sees paiknevatele failidele nimekuju ei kehti. PDF peab olema \u00fcles laetud eraldi failina, olenemata kas rakenduse on esitatud kokku pakituna v\u00f5i mitte!<\/p>\n<p>N\u00e4ide (eraldi failid):<\/p>\n<p style=\"padding-left: 30px;\">HW1_Tamm.c<br \/>\nHW1_Tamm.h<br \/>\nHW1_Tamm_report.pdf<br \/>\nHW1_Tamm_data.txt<\/p>\n<p>N\u00e4ide (kokku pakituna):<\/p>\n<p style=\"padding-left: 30px;\">HW1_Tamm_project.zip<br \/>\nHW1_Tamm_report.pdf<\/p>\n<p><strong>NB! Kui sa muutsid failide nimesid vahetult enne \u00fcleslaadimist, siis veendu, et su rakendus on j\u00e4tkuvalt kompileeritav ja t\u00f6\u00f6tab!<\/strong><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Tulemused_ja_tagasiside\"><\/span>Tulemused ja tagasiside<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>P\u00e4rast t\u00f6\u00f6 kontrollimist leiad Moodlest oma punktid ning tagasiside (n\u00e4htav vaid hinnetelehet!).\u00a0 Korralikult tehtud t\u00f6\u00f6 korral v\u00f5ib tagasiside puududa.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Kodutoo_parandamine\"><\/span><span id=\"Kodutoo_parandamine\" class=\"ez-toc-section\"><\/span>Kodut\u00f6\u00f6 parandamine<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Kodut\u00f6\u00f6 tulemust on v\u00f5imalik parandada kuni kodut\u00f6\u00f6de lukustamise kuup\u00e4evani. Parandatud kodut\u00f6\u00f6d kuuluvad kaitsmisele.<\/p>\n<p>Kodut\u00f6\u00f6 parandamiseks vaata esmalt l\u00e4bi oma t\u00f6\u00f6 tagasiside. Seej\u00e4rel v\u00f5ta \u00fchendust \u00f5ppej\u00f5uga, et kokku leppida parandamise protsess.<\/p>\n<p>NB! Kui t\u00f6\u00f6 parandamise k\u00e4igus osutub vajalikuks enama kui poole t\u00f6\u00f6 muutmine, loetakse seda uue t\u00f6\u00f6 esitamiseks, millelt v\u00f5idakse arvestada maha miinuspunktid vastavalt esitamise ajale.<\/p>\n<\/div>\n<div class=\"su-tabs-pane su-u-clearfix su-u-trim\" data-title=\"Variandi generaator\">\n\n<!-- iframe plugin v.6.0 wordpress.org\/plugins\/iframe\/ -->\n<iframe loading=\"lazy\" src=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0584\/kodutoo1\/pr2_hw1_et.html\" width=\"100%\" height=\"700\" scrolling=\"yes\" class=\"iframe-class\" frameborder=\"0\"><\/iframe>\n\n<\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":17,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"page-templates\/code-width.php","meta":{"footnotes":""},"class_list":["post-19","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/19","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=19"}],"version-history":[{"count":45,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/19\/revisions"}],"predecessor-version":[{"id":11324,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/19\/revisions\/11324"}],"up":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/17"}],"wp:attachment":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/media?parent=19"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}