{"id":8892,"date":"2023-09-25T11:15:30","date_gmt":"2023-09-25T09:15:30","guid":{"rendered":"https:\/\/blue.pri.ee\/ttu\/?p=8892"},"modified":"2026-06-19T10:55:43","modified_gmt":"2026-06-19T08:55:43","slug":"pr1et4-funktsioonid","status":"publish","type":"post","link":"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/","title":{"rendered":"PR1ET4: Funktsioonid"},"content":{"rendered":"<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-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Praktikumi_materjal\" >Praktikumi materjal<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Esitamisele_kuuluvad_ulesanded\" >Esitamisele kuuluvad \u00fclesanded<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Ulesanne_1_W04-1_Elektri_hinna_kalkulaator\" >\u00dclesanne 1 [W04-1]: Elektri hinna kalkulaator<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Nouded\" >N\u00f5uded<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Vihjeid_ja_soovitusi\" >Vihjeid ja soovitusi<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Testimine\" >Testimine<\/a><\/li><\/ul><\/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\/uncategorized\/pr1et4-funktsioonid\/#Ulesanne_2_W04-2_Arvujadade_generaator\" >\u00dclesanne 2 [W04-2]: Arvujadade generaator<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Nouded-2\" >N\u00f5uded<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Samm-sammuline_juhend\" >Samm-sammuline juhend<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Testimine-2\" >Testimine<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Ulesanne_3_W04-3_Vastuvotuaegade_planeerimine\" >\u00dclesanne 3 [W04-3]: Vastuv\u00f5tuaegade planeerimine<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Nouded-3\" >N\u00f5uded<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Algoritm\" >Algoritm<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Lahenemine\" >L\u00e4henemine<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Testimine-3\" >Testimine<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Lisaulesanded\" >Lisa\u00fclesanded<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Lisaulesanne_1_W04-4_Algarvude_generaator_ja_rea_pikkuse_piiramine\" >Lisa\u00fclesanne 1 [W04-4]: Algarvude generaator ja rea pikkuse piiramine<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Nouded-4\" >N\u00f5uded<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Funktsioon_algarvude_tuvastamiseks\" >Funktsioon algarvude tuvastamiseks<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Lisaulesanne_2_W04-5_Lisa_puhkepausid_ja_mitmele_paevale_ulatuv_planeerimine\" >Lisa\u00fclesanne 2 [W04-5]: Lisa puhkepausid ja mitmele p\u00e4evale ulatuv planeerimine<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Nouded-5\" >N\u00f5uded<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Testimine-4\" >Testimine<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Parased_tundi_peaksid\" >P\u00e4rased tundi peaksid<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/#Taiendav_materjal\" >T\u00e4iendav materjal<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Praktikumi_materjal\"><\/span><strong>Praktikumi materjal<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><a href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/printf-kasutamine\/\"><strong>Polsterdamine ja joondamine<\/strong><\/a><\/li>\n<li>Slaidid: <a href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/slaidid-et\/04_Funktsioonid.pdf\"><strong>Funktsioonid<\/strong><\/a><\/li>\n<li>Tunni n\u00e4idiskoodid: <strong><a href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/programmikood\/wk4_samples.zip\">https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/programmikood\/wk4_samples.zip<\/a><\/strong><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Esitamisele_kuuluvad_ulesanded\"><\/span>Esitamisele kuuluvad \u00fclesanded<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Selles praktikumis on kokku kolm \u00fclesannet. K\u00f5igil \u00fclesannetel on antud koodip\u00f5hi, mis m\u00e4\u00e4rab \u00e4ra \u00fclesande \u00fcldise struktuuri ja annab sulle ettem\u00e4\u00e4ratud t\u00f6\u00f6voo. T\u00f6\u00f6voog on antud samm-sammuliste juhenditena, alguses t\u00e4psemalt, l\u00f5pupoole \u00fcldisemalt.<\/p>\n<p>\u00dclesandeid 2 ja 3 on v\u00f5imalik laiendada lisa\u00fclesannetega.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Ulesanne_1_W04-1_Elektri_hinna_kalkulaator\"><\/span>\u00dclesanne 1 [W04-1]: Elektri hinna kalkulaator<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Antud \u00fclesandes on sinu eest juba kogu programmi loogika valmis tehtud. St kogu <span class=\"lang:default highlight:0 decode:true crayon-inline \">main()<\/span>\u00a0 funktsiooni sisu on juba valmis ja seda muuta ei ole p\u00f5hjust.<\/p>\n<p>Tegemata on j\u00e4etud aga enda loodavate (<em>user-defined<\/em>) funktsioonide sisud ning need on vastavalt asendatud k\u00f5ik tagastama 0 v\u00e4\u00e4rtust (selleks, et programm kompileeruks). Sinu \u00fclesandeks t\u00e4ita k\u00f5igi funktsioonide deklaratiivne osa (keha) vastavalt funktsioonile eelnevale kommentaarile.<\/p>\n<p><strong>Lae alla \u00fclesande aluskood; <a href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/aluskoodid\/4_1_electricity_template.c\">https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/aluskoodid\/4_1_electricity_template.c<\/a><\/strong><\/p>\n<h4><span class=\"ez-toc-section\" id=\"Nouded\"><\/span>N\u00f5uded<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>\u00dclesande lahendamist alusta baaskoodiga tutvumisest. Sinu lahendus peab olema ehitatud ette antud baaskoodile.<\/li>\n<li>Sinu \u00fclesandeks on kirjutada funktsioonide kehad seitsmele funktsioonile. Funktsiooni eesm\u00e4rk on kirjeldatud selle ees kommentaarina.<\/li>\n<li><span class=\"lang:default highlight:0 decode:true crayon-inline \">main()<\/span>\u00a0 funktsiooni sisu ja koodi struktuuri muuta ei tohi. Soovitav on v\u00e4ltida ka funktsioonide ja muutujate \u00fcmbernimetamist.<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"Vihjeid_ja_soovitusi\"><\/span>Vihjeid ja soovitusi<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>Alusta tutvumist koodi \u00fclesehitusest. Vaata, kus on makrod, kus protot\u00fc\u00fcbid, kus main() ja kus funktsioonid. Vaata, kuidas main() funktsioonist teisi funktsioone v\u00e4lja kutsutakse, mis kaasa antakse jne. \u00c4ra muuda midagi alguses!<\/li>\n<li>\u00dcldine pilt selge, hakka j\u00e4rjest funktsioonide sisusid t\u00e4itma.\u00a0\u00a0<strong>Lahenda 1 funktsioon korraga, kompileeri ja testi, enne kui j\u00e4rgmise juurde l\u00e4hed!<\/strong><\/li>\n<li>Sisestuse funktsioonides on soovitatav struktuur do while ts\u00fckkel, mille sees on if lause veateate v\u00e4ljastamiseks.<\/li>\n<li>K\u00f5ik \u00fclej\u00e4\u00e4nud funktsioonid on lahendatavad \u00fche reaga, asendades olemasoleva <span class=\"lang:default highlight:0 decode:true crayon-inline \">return 0<\/span>\u00a0 asemel \u00f5ige valemi<\/li>\n<li>Ettevaatust \u00fchikutega. Erinevates kohtades on kord kasutusel vatt-tunnid, kord kilovatt-tunnid, kord megavatt-tunnid! Juhindu funktsiooni kommentaaridest.<\/li>\n<li>VAT &#8211;\u00a0<em>value added tax<strong>\u00a0<\/strong><\/em>t\u00e4hendab k\u00e4ibemaksu (Eestis 24%)<\/li>\n<li>Jooksev b\u00f6rsihind MWh kohta (enne makse) on leitav <strong><a href=\"https:\/\/dashboard.elering.ee\/et\">https:\/\/dashboard.elering.ee\/et<\/a><\/strong><\/li>\n<li>Jooksvat b\u00f6rsihinda kWh kohta sentides koos maksudega n\u00e4itab <strong><a href=\"https:\/\/www.elektrikell.ee\">https:\/\/www.elektrikell.ee<\/a><\/strong><\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"Testimine\"><\/span>Testimine<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>Test 1: veavaba sisend<\/strong><\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true\">Enter the market price for electricity in MWh: 412.65\r\n\r\nMarket cost of electricity is 412.65 EUR \/ MWh.\r\nThis is 0.4126 EUR per kWh before taxes.\r\nThe government takes 0.0990 EUR in taxes.\r\nWith taxes, the cost for you is 0.5117 EUR \/ kWh\r\n\r\nLets do a rough savings estimate when switching from incandescent bulbs to LEDs\r\n\r\nNumber of E27 lightbulbs in use: 9\r\nAverage hours per day the bulbs are turned on for: 6\r\n\r\nResults are calculated for a 30-day month.\r\n\r\nUsing 60 W incandescent bulbs consumes 97200 W, costing 49.74 EUR\r\nUsing 9 W LED bulbs consumes 14580 W, costing 7.46 EUR\r\nThat's a saving of 42.28 EUR.\r\nAt the price of 0.69, you could buy 61 instant noodles with that money!\r\n<\/pre>\n<p><strong>Test 2: vigadega sisend<\/strong><\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true \">Enter the market price for electricity in MWh: -5\r\nRetry! Must be &gt; 0\r\n&gt; 125\r\n\r\nMarket cost of electricity is 125.00 EUR \/ MWh.\r\nThis is 0.1250 EUR per kWh before taxes.\r\nThe government takes 0.0300 EUR in taxes.\r\nWith taxes, the cost for you is 0.1550 EUR \/ kWh\r\n\r\nLets do a rough savings estimate when switching from incandescent bulbs to LEDs\r\n\r\nNumber of E27 lightbulbs in use: -1\r\nRetry! Must be &gt; 0\r\n&gt; -3\r\nRetry! Must be &gt; 0\r\n&gt; -5\r\nRetry! Must be &gt; 0\r\n&gt; 8\r\nAverage hours per day the bulbs are turned on for: 7\r\n\r\nResults are calculated for a 30-day month.\r\n\r\nUsing 60 W incandescent bulbs consumes 100800 W, costing 15.62 EUR\r\nUsing 9 W LED bulbs consumes 15120 W, costing 2.34 EUR\r\nThat's a saving of 13.28 EUR.\r\nAt the price of 0.69, you could buy 19 packs of instant noodles with that money!<\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Ulesanne_2_W04-2_Arvujadade_generaator\"><\/span><span style=\"font-size: 22px; font-weight: bold;\">\u00dclesanne 2 [W04-2]: Arvujadade generaator<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Selle \u00fclesande raames tuleb koostada programm, mis sisaldab endas kahte arvujada generaatorit, aritmeetilise ja geomeetrilise jada genereerimiseks. \u00dclesannet laiendab lisa\u00fclesanne, mille raames lisatakse algarvude generaator ja muudetakse programmi v\u00e4ljundit kenamaks.<\/p>\n<p>J\u00e4lgi \u00fclesande lahendamisel samm-sammulist juhendit.<\/p>\n<p><strong>Lae alla \u00fclesande aluskood: <a href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/aluskoodid\/4_2_sequence_gen_template.c\">https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/aluskoodid\/4_2_sequence_gen_template.c<\/a><\/strong><\/p>\n<h4><span class=\"ez-toc-section\" id=\"Nouded-2\"><\/span>N\u00f5uded<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>Funktsioonide lahendamisel juhindu funktsiooni kommentaarist ja siin lehel olevast samm-sammulisest juhendist.<\/li>\n<li>Programm peab suutma genereerida aritmeetilist ja geomeetrilist jada vastavalt etteantud sisenditele.<\/li>\n<li>Kasutaja peab saama valida kumba generaatorit kasutada ning sisestada sellele parameetrid (algv\u00e4\u00e4rtus, vahe v\u00f5i tegur ja sammude arv).<\/li>\n<li>Jada algv\u00e4\u00e4rtus, geomeetrilise jada tegur ja aritmeetilise jada tegur sisestatakse k\u00fcmnendmurruna.<\/li>\n<li>Jada liikmed kuva kahe komakohaga.<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"Samm-sammuline_juhend\"><\/span>Samm-sammuline juhend<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ol>\n<li>Kompileeri aluskood. Proovi seda, vaata mis ta teeb. Loe kood l\u00e4bi.<\/li>\n<li>Lisa <span class=\"lang:c highlight:0 decode:true crayon-inline \">main()<\/span>\u00a0 funktsiooni v\u00e4ljakutse funktsioonile\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">PrintMenu()<\/span> . V\u00e4ljakutse asukoht on m\u00e4rgistatud <strong>TODO<\/strong> kommentaarina. Kirjuta v\u00e4ljakutse kommentaarist j\u00e4rgmisele reale. Proovi &#8211; kui t\u00f6\u00f6tab, kustuta TODO kommentaar \u00e4ra.<br \/>\n<strong>KOMPILEERI JA TESTI, ET TEHTU T\u00d6\u00d6TAB <span style=\"color: #ff0000;\">ENNE<\/span> EDASI LIIKUMIST!<\/strong><\/li>\n<li>Kirjuta funktsiooni\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">PrintSeparator()<\/span>\u00a0 sisu. Selleks <strong>pead kirjutama ts\u00fckli<\/strong>,\u00a0 mis tr\u00fckib\u00a0\u00a0<span class=\"lang:c highlight:0 decode:true crayon-inline\">#<\/span>\u00a0 s\u00fcmbolit\u00a0 t\u00e4pselt nii mitu korda,\u00a0 kui oli ette antud funktsiooni parameetriga.<br \/>\n<strong>KOMPILEERI JA TESTI, ET TEHTU T\u00d6\u00d6TAB <span style=\"color: #ff0000;\">ENNE<\/span> EDASI LIIKUMIST!<\/strong><\/li>\n<li>L\u00f5peta funktsioon\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline \">PrintAsciiWelcomeMsg()<\/span>\u00a0 , pannes see v\u00e4ljastama endale meelp\u00e4rast ASCII kunsti (pilt, tekst, &#8230;). V\u00f5id n\u00e4iteks kasutada ka pildi teisendajaid ASCII kunstiks v\u00f5i kasutada m\u00f5nda teost internetis olevatest galeriidest.<br \/>\n<strong>KOMPILEERI JA TESTI, ET TEHTU T\u00d6\u00d6TAB <span style=\"color: #ff0000;\">ENNE<\/span> EDASI LIIKUMIST!<\/strong><br \/>\n<strong>Vihje<\/strong>: Internetis on mitmeid ASCII galeriisid ja teisendajaid. \u00dcks nest on k\u00e4ttesaadav siit: <strong><a href=\"https:\/\/www.asciiart.eu\">https:\/\/www.asciiart.eu<\/a><\/strong><br \/>\n<span style=\"color: #ff0000;\"><strong>NB!<\/strong> <\/span>Osad t\u00e4hem\u00e4rgid omavad erilist t\u00e4hendust ja neid ei saa niisama lihtsalt ekraanile manada<em>. <\/em>Sellisteks on n\u00e4iteks\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">\\<\/span>\u00a0 (<em>escape sequence<\/em>) ja\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">%<\/span>\u00a0 (formaat ehk <em>format specifiers<\/em>). Nende v\u00e4ljastamiseks peame\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">\\<\/span>\u00a0 asemel kirjutama\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">\\\\<\/span>\u00a0 ja\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">%<\/span>\u00a0 asemel\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">%%<\/span>. K\u00f5ige lihtsam viis (kui selliseid s\u00fcmboleid on palju) on teha Geanys uus fail, panna oma kunstiteos sinna ja kasutada kogu dokumendi ulatuses asendust (kiirklahv ctrl+h avab men\u00fc\u00fc, valik <em>replace all in document<\/em>).<\/li>\n<li>N\u00fc\u00fcd mine <span class=\"lang:c highlight:0 decode:true crayon-inline \">ArithmeticSequence()<\/span>\u00a0 funktsiooni juurde.\n<ol>\n<li>Deklareeri puuduvad muutujad (3 tk kokku, ettevaatust andmet\u00fc\u00fcpidega!)<\/li>\n<li>Lisa kasutajale p\u00e4ringud ja loe v\u00e4\u00e4rtused loodud muutujatesse.<\/li>\n<li>Lisa funktsiooni\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">ArithmeticSequenceGenerator()<\/span>\u00a0 v\u00e4ljakutse koos vajaminevate parameetritega.<br \/>\n<strong>NB!<\/strong> M\u00e4rka, et funktsioon <span class=\"lang:c highlight:0 decode:true crayon-inline\">ArithmeticSequenceGenerator()<\/span>\u00a0 on koodist v\u00e4lja kommenteeritud! Seda tegime selleks, et v\u00e4hendada liigseid kompilaatori hoiatusi, mis v\u00f5ivad summutada muud olulised hoiatused ja veateated sinu jaoks. Kuniks sa seda funktsiooni sisse ei kommenteeri, annab kompilaator sulle\u00a0 &#8220;<em>undefined reference<\/em>&#8221; veateate ja programm ei kompileeru. Kommenteeri see funktsioon sisse, et saaksid testimise l\u00e4bi viia (hetkel veel tulemusteta)!<br \/>\n<strong>KOMPILEERI JA TESTI, ET TEHTU T\u00d6\u00d6TAB <span style=\"color: #ff0000;\">ENNE<\/span> EDASI LIIKUMIST!<\/strong><\/li>\n<\/ol>\n<\/li>\n<li>Liigu edasi funktsiooni <span class=\"lang:c highlight:0 decode:true crayon-inline\">ArithmeticSequenceGenerator()<\/span>\u00a0 juurde ja l\u00f5peta see. Sul on vaja kirjutada \u00fcks ts\u00fckkel, mille sisse tuleb paigutada 2 lauset\n<ol>\n<li>V\u00e4ljasta <strong>praeguse jada liikme v\u00e4\u00e4rtus<\/strong>.<\/li>\n<li>Arvuta <strong>j\u00e4rgmise jada liikme v\u00e4\u00e4rtus<\/strong>.<br \/>\nNB! <strong>J\u00e4rjekord on oluline!<\/strong><br \/>\nVihje 1: <span class=\"lang:c highlight:0 decode:true crayon-inline \">j\u00e4rgmine_v\u00e4\u00e4rtus = praegune_v\u00e4\u00e4rtus + vahe<\/span><br \/>\nVihje 2: Sul ei ole tegelikult vaja siin funktsioonis \u00fchtegi uut muutujat deklareerida peale ts\u00fckliloenduri. <strong>Kindlast v\u00e4ldi massiivide kasutamist (teema j\u00e4rgnevateks n\u00e4dalateks).<\/strong><br \/>\n<strong>KOMPILEERI JA TESTI, ET TEHTU T\u00d6\u00d6TAB <span style=\"color: #ff0000;\">ENNE<\/span> EDASI LIIKUMIST!<\/strong><\/li>\n<\/ol>\n<\/li>\n<li>Men\u00fc\u00fcs, mis on realiseeritud\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">switch ()<\/span>\u00a0 lausena, on valmis kirjutatud vaid \u00fcks <span class=\"lang:c highlight:0 decode:true crayon-inline \">case<\/span> . Lisa veel 2 puuduolevat men\u00fc\u00fc valikut ja nendele vajaminevad laused. Vajaminevad k\u00e4sud on kirjeldatud men\u00fc\u00fcs ( <span class=\"lang:c highlight:0 decode:true crayon-inline \">PrintMenu()<\/span>\u00a0 funktsioonis)<\/li>\n<li>Samal viisil nagu lahendasid aritmeetilise jada genereerimise funktsioonid, tuleb n\u00fc\u00fcd lahendada ka geomeetrilise jada genereerimiseks vajaminevad funktsioonid.<\/li>\n<\/ol>\n<p>N\u00fc\u00fcd peaks \u00fclesanne lahendatud olema. V\u00f5rdle oma v\u00e4ljundit etteantud testjuhtudega!<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Testimine-2\"><\/span>Testimine<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Testi kindlasti k\u00f5iki kolme men\u00fc\u00fc valikut ning ka tundmatut sisendit!<\/p>\n<p><strong>Testime aritmeetilist jada<\/strong><\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true\">  ________                                   __\r\n \/  _____\/  ____   ____   ________________ _\/  |_  ___________\r\n\/   \\  ____\/ __ \\ \/    \\_\/ __ \\_  __ \\__  \\\\   __\\\/  _ \\_  __ \\\r\n\\    \\_\\  \\  ___\/|   |  \\  ___\/|  | \\\/\/ __ \\|  | (  &lt;_&gt; )  | \\\/\r\n \\______  \/\\___  &gt;___|  \/\\___  &gt;__|  (____  \/__|  \\____\/|__|\r\n        \\\/     \\\/     \\\/     \\\/           \\\/\r\n\r\n#################################################################\r\n#  1 - Arithmetic sequence generator                            #\r\n#  2 - Geometric sequence generator                             #\r\n#  0 - exit                                                     #\r\n#################################################################\r\nEnter selection\r\n&gt; 1\r\n#################################################################\r\nArithmetic sequence generator\r\n#################################################################\r\nEnter number of result: 8\r\nEnter starting value: 1.5\r\nEnter common difference: 2.25\r\n#################################################################\r\nResults\r\n1.50 3.75 6.00 8.25 10.50 12.75 15.00 17.25\r\n#################################################################<\/pre>\n<p><strong>Testime geomeetrilist jada<\/strong><\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true\">  ________                                   __\r\n \/  _____\/  ____   ____   ________________ _\/  |_  ___________\r\n\/   \\  ____\/ __ \\ \/    \\_\/ __ \\_  __ \\__  \\\\   __\\\/  _ \\_  __ \\\r\n\\    \\_\\  \\  ___\/|   |  \\  ___\/|  | \\\/\/ __ \\|  | (  &lt;_&gt; )  | \\\/\r\n \\______  \/\\___  &gt;___|  \/\\___  &gt;__|  (____  \/__|  \\____\/|__|\r\n        \\\/     \\\/     \\\/     \\\/           \\\/\r\n\r\n#################################################################\r\n#  1 - Arithmetic sequence generator                            #\r\n#  2 - Geometric sequence generator                             #\r\n#  0 - exit                                                     #\r\n#################################################################\r\nEnter selection\r\n&gt; 2\r\n#################################################################\r\nGeometric sequence generator\r\n#################################################################\r\nEnter number of result: 10\r\nEnter starting value: 1\r\nEnter common ratio: 1.5\r\n#################################################################\r\nResults\r\n1.00 1.50 2.25 3.38 5.06 7.59 11.39 17.09 25.63 38.44\r\n#################################################################<\/pre>\n<p><strong>Lahkume ilma jada genereerimata<\/strong><\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true\">  ________                                   __\r\n \/  _____\/  ____   ____   ________________ _\/  |_  ___________\r\n\/   \\  ____\/ __ \\ \/    \\_\/ __ \\_  __ \\__  \\\\   __\\\/  _ \\_  __ \\\r\n\\    \\_\\  \\  ___\/|   |  \\  ___\/|  | \\\/\/ __ \\|  | (  &lt;_&gt; )  | \\\/\r\n \\______  \/\\___  &gt;___|  \/\\___  &gt;__|  (____  \/__|  \\____\/|__|\r\n        \\\/     \\\/     \\\/     \\\/           \\\/\r\n\r\n#################################################################\r\n#  1 - Arithmetic sequence generator                            #\r\n#  2 - Geometric sequence generator                             #\r\n#  0 - exit                                                     #\r\n#################################################################\r\nEnter selection\r\n&gt; 0\r\n#################################################################\r\nExiting ...\r\n#################################################################<\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Ulesanne_3_W04-3_Vastuvotuaegade_planeerimine\"><\/span>\u00dclesanne 3 [W04-3]: Vastuv\u00f5tuaegade planeerimine<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Selles \u00fclesandes lood lihtsa generaatori, millega saab luua ajavahemike vastuv\u00f5tuaegade planeerimiseks<\/p>\n<p><strong>Lae alla aluskood: <a href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/aluskoodid\/4_3_timetable_template.c\">https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/aluskoodid\/4_3_timetable_template.c<\/a><\/strong><\/p>\n<p><strong>Soovitus: Enne \u00fclesande lahendamist loe l\u00e4bi ja m\u00f5testa enda jaoks\u00a0 lahti etteantud algoritm (p\u00e4rast n\u00f5udeid)! Kui tekib segadus, soovitan piiluda sisse l\u00e4henemise peat\u00fckki.<\/strong><\/p>\n<h4><span class=\"ez-toc-section\" id=\"Nouded-3\"><\/span>N\u00f5uded<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>T\u00f6\u00f6p\u00e4eva algus on m\u00e4\u00e4ratud makrona<\/li>\n<li>Kasutaja sisestab klientide arvu ning \u00fche kliendikohtumise kestvuse<\/li>\n<li>Programm genereerib kliendikohtumiste kellaajad. Ajad on j\u00e4rjestikused.<\/li>\n<li>Minimaalselt peavad olema realiseeritud ja kasutatud aluskoodis antud funktsioonid. Funktsioone v\u00f5id juurde luua.<\/li>\n<li>Genereeritud ajad peavad olema reaalsed<\/li>\n<li>V\u00e4ljund peab olema visuaalselt joondus<\/li>\n<li>Aluskoodis on k\u00f5igi funktsioonide kohta on antud vaid nende nimed. Sa pead m\u00e4\u00e4rama nende tagastatava andmet\u00fc\u00fcbi ja parameetrid. Kui parameetrid puuduvad, siis tuleb sulgudesse kirjutada <span class=\"lang:c highlight:0 decode:true crayon-inline \">void<\/span> .<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"Algoritm\"><\/span>Algoritm<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2023\/09\/appointments.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-8879\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2023\/09\/appointments.png\" alt=\"\" width=\"999\" height=\"772\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2023\/09\/appointments.png 999w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2023\/09\/appointments-300x232.png 300w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2023\/09\/appointments-768x593.png 768w\" sizes=\"auto, (max-width: 999px) 100vw, 999px\" \/><\/a><\/p>\n<h4><span class=\"ez-toc-section\" id=\"Lahenemine\"><\/span>L\u00e4henemine<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Sel korral on l\u00e4htekood juba \u00fcsna \u00f5huke, kuid sisaldab siiski struktuuri, kuidas oleks m\u00f5istlik see programm funktsioonideks t\u00fckeldada.<\/p>\n<p>Iga funktsiooni puhul, mida lahendad, alusta selle tagastuse andmet\u00fc\u00fcbi ja parameetrite loetelu m\u00e4\u00e4ramisest. Need on sulle ette antud funktsiooni kommentaarina. Kui see on tehtud, lisa funktsiooni protot\u00fc\u00fcp enne main() funktsiooni. Seej\u00e4rel kirjuta funktsiooni keha ning lisa funktsiooni v\u00e4ljakutse sobilikku kohta.<\/p>\n<div class=\"su-spoiler su-spoiler-style-fancy su-spoiler-icon-chevron su-spoiler-closed\" data-scroll-offset=\"0\" data-anchor-in-url=\"no\"><div class=\"su-spoiler-title\" tabindex=\"0\" role=\"button\"><span class=\"su-spoiler-icon\"><\/span>Ava mind vihjete n\u00e4gemiseks<\/div><div class=\"su-spoiler-content su-u-clearfix su-u-trim\">\n<ul>\n<li>Alusta koodi kirjutamist kohtadest, mis on juba koodis kasutusel ja\/v\u00f5i poolikult realiseeritud. Sellisteks funktsioonideks on\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">PrintTime()<\/span>\u00a0 ja <span class=\"lang:c highlight:0 decode:true crayon-inline\">PrintTimeInterval()<\/span> . Need peaksid olema \u00fcsna lihtsad realiseerida ja saad m\u00f5ned h\u00e4irivad hoiatused eest \u00e4ra.<\/li>\n<li>N\u00fc\u00fcd realiseeri <span class=\"lang:c highlight:0 decode:true crayon-inline\">GetPositiveInt()<\/span>\u00a0 funktsioon. Selle funktsiooni oled juba eelnevate tunnit\u00f6\u00f6de raames teinud. M\u00e4\u00e4ra tagastuse t\u00fc\u00fcp ja funktsiooni parameetrid ning kopeeri eelnevast \u00fclesandest kood sisse. Seej\u00e4rel saad funktsiooni kasutada nii klientide arvu kui kliendikohtumise kestvuse lugemiseks.<\/li>\n<li>J\u00e4rgmisena tuleks alustada t\u00f6\u00f6d funktsiooni\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">PrintTimetable()<\/span>\u00a0 kallal. Kutsu see funktsioon <span class=\"lang:c highlight:0 decode:true crayon-inline \">main()<\/span> -ist v\u00e4lja. Funktsiooni sisse loo ts\u00fckkel klientide ja nende kellaaegade v\u00e4ljastamiseks. \u00c4ra kellaaegade peale veel m\u00f5tle, veendu lihtsalt, et klientide loetelu kuvataks korrektselt.<\/li>\n<li>Kellaaegade saamiseks tuleb lahendada funktsioonid\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">CalcNextHour()<\/span>\u00a0 ja <span class=\"lang:c highlight:0 decode:true crayon-inline\">CalcNextMin()<\/span> . M\u00f5lemad funktsioonid on lahendatavad \u00fche reaga, pead vaid piisavalt t\u00e4pse matemaatilise tehte v\u00e4lja m\u00f5tlema ja tulemuse tagastama.<br \/>\nVihje: Sa saad nende funktsioonide t\u00f6\u00f6tamist testida ka eraldiseisvalt \u00fclej\u00e4\u00e4nud koodist. N\u00e4iteks kutsudes funktsioon v\u00e4lja<br \/>\n<span class=\"lang:c highlight:0 decode:true crayon-inline\">CalcNextHour(8, 0, 50)<\/span>\u00a0 peab tagastatavaks v\u00e4\u00e4rtuseks olema 8 ning <span class=\"lang:c highlight:0 decode:true crayon-inline\">CalcNextHour(8, 0, 70)<\/span>\u00a0 puhul 9. Sarnaselt peab teise funktsiooni korral <span class=\"lang:c highlight:0 decode:true crayon-inline\">CalcNextmin(0, 50)<\/span>\u00a0 tagastama 50 ja\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline \">CalcNextmin(0, 70)<\/span>\u00a0 korral 10.<\/li>\n<li>N\u00fc\u00fcd mine tagasi funktsiooni\u00a0\u00a0<span class=\"lang:c highlight:0 decode:true crayon-inline\">PrintTimetable()<\/span>\u00a0 ja hakka sinna kirjutatud ts\u00fcklit sisustama. Vaata kindlasti algoritmi v\u00f5rdluseks.<br \/>\nNB! Funktsiooni korrektseks t\u00f6\u00f6ks on sul vaja teada nii kohtumise alguskellaaega (m\u00e4rgitud kui hetkeaeg &#8211; <em>current time<\/em>) kui l\u00f5pukellaaega. Kui need 4 v\u00e4\u00e4rtust on teada, kasuta neid funktsiooni <span class=\"lang:c highlight:0 decode:true crayon-inline\">PrintTimeInterval()<\/span>\u00a0 v\u00e4ljakutses.<\/li>\n<li>N\u00fc\u00fcd on aeg testimiseks ja vajadusel silumiseks. K\u00f5ik jupid koodist on valmis. Veendu, et need t\u00f6\u00f6tavad ootusp\u00e4raselt.<\/li>\n<\/ul>\n<\/div><\/div>\n<h4><span class=\"ez-toc-section\" id=\"Testimine-3\"><\/span>Testimine<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>Testime vaid minuti \u00fclet\u00e4itumisega<\/strong><\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true\">&gt;Workday starts at 8:00\r\n\r\nEnter num of clients\r\n10\r\nEnter client session length\r\n45\r\n\r\nClient  1:  8:00 -  8:45\r\nClient  2:  8:45 -  9:30\r\nClient  3:  9:30 - 10:15\r\nClient  4: 10:15 - 11:00\r\nClient  5: 11:00 - 11:45\r\nClient  6: 11:45 - 12:30\r\nClient  7: 12:30 - 13:15\r\nClient  8: 13:15 - 14:00\r\nClient  9: 14:00 - 14:45\r\nClient 10: 14:45 - 15:30<\/pre>\n<p><strong>Testime tundide \u00fclet\u00e4itumist<\/strong><\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true\">Workday starts at 8:00\r\n\r\nEnter num of clients\r\n25\r\nEnter client session length\r\n45\r\n\r\nClient  1:  8:00 -  8:45\r\nClient  2:  8:45 -  9:30\r\nClient  3:  9:30 - 10:15\r\nClient  4: 10:15 - 11:00\r\nClient  5: 11:00 - 11:45\r\nClient  6: 11:45 - 12:30\r\nClient  7: 12:30 - 13:15\r\nClient  8: 13:15 - 14:00\r\nClient  9: 14:00 - 14:45\r\nClient 10: 14:45 - 15:30\r\nClient 11: 15:30 - 16:15\r\nClient 12: 16:15 - 17:00\r\nClient 13: 17:00 - 17:45\r\nClient 14: 17:45 - 18:30\r\nClient 15: 18:30 - 19:15\r\nClient 16: 19:15 - 20:00\r\nClient 17: 20:00 - 20:45\r\nClient 18: 20:45 - 21:30\r\nClient 19: 21:30 - 22:15\r\nClient 20: 22:15 - 23:00\r\nClient 21: 23:00 - 23:45\r\nClient 22: 23:45 -  0:30\r\nClient 23:  0:30 -  1:15\r\nClient 24:  1:15 -  2:00\r\nClient 25:  2:00 -  2:45<\/pre>\n<p><strong>Testime k\u00f5iki \u00fclet\u00e4itumisi korraga ja mitmekordselt<\/strong><\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true\">Using basic version of the task\r\nWorkday starts at  8:00\r\n\r\nEnter num of clients\r\n8\r\nEnter client session length\r\n145\r\n\r\nClient  1:  8:00 - 10:25\r\nClient  2: 10:25 - 12:50\r\nClient  3: 12:50 - 15:15\r\nClient  4: 15:15 - 17:40\r\nClient  5: 17:40 - 20:05\r\nClient  6: 20:05 - 22:30\r\nClient  7: 22:30 -  0:55\r\nClient  8:  0:55 -  3:20\r\n<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Lisaulesanded\"><\/span>Lisa\u00fclesanded<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Selles praktikumis on kaks lisa\u00fclesannet, mis lisavad funktsionaalsust vastavalt teisele ja kolmandale baas\u00fclesandele.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Lisaulesanne_1_W04-4_Algarvude_generaator_ja_rea_pikkuse_piiramine\"><\/span>Lisa\u00fclesanne 1 [W04-4]: Algarvude generaator ja rea pikkuse piiramine<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Tegu on laiendusega baas\u00fclesandele.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Nouded-4\"><\/span>N\u00f5uded<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>Kasuta juba lahendatud baas\u00fclesannet selle t\u00f6\u00f6 p\u00f5hjaks<\/li>\n<li>Lisa algarvude generaator. Kasuta j\u00e4rgmises punktis etteantud funktsiooni enda lahenduse koostamisel.<\/li>\n<li>Lisa rea pikkuse limiit, et tulemused kuvataks viisakamalt. Selleks on kaks lubatud lahendust, vali endale meelep\u00e4rane\n<ul>\n<li>Lihtsam: piira rea pikkus tulemuste arvu p\u00f5hiselt. Seda oskad lahendada oma teadmiste p\u00f5hiselt, n\u00e4eb veidi kehvem v\u00e4lja alguses.<\/li>\n<li>Keerukam: piira rea pikkust t\u00e4hem\u00e4rkide arvu p\u00f5hiselt (vihje:\u00fcks v\u00f5imalik lahendus p\u00f5hineb <span class=\"lang:c highlight:0 decode:true  crayon-inline \">snprintf()<\/span>\u00a0 funtktsiooni tagastusel).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"Funktsioon_algarvude_tuvastamiseks\"><\/span>Funktsioon algarvude tuvastamiseks<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Kasuta j\u00e4rgnevat funktsiooni testimaks, kas tegu on algarvuga v\u00f5i mitte. NB! M\u00e4rka, et pead lisama enda koodi ka <span class=\"lang:c highlight:0 decode:true  crayon-inline \">IS_PRIME<\/span>\u00a0 makro!<\/p>\n<p>Vihje: Funktsiooni tagastust saad kontrollida otse <span class=\"lang:c highlight:0 decode:true crayon-inline \">if<\/span>\u00a0 lause tingimuses.\u00a0 <strong><a href=\"https:\/\/blue.pri.ee\/ttu\/coding-guides\/conditional-statements\/#Function_calls_in_conditionals\">https:\/\/blue.pri.ee\/ttu\/coding-guides\/conditional-statements\/#Function_calls_in_conditionals<\/a><\/strong><\/p>\n<pre class=\"toolbar:2 lang:c decode:true\">\/**\r\n * Description:    Checks if a number is a prime or not.\r\n *\r\n * Parameters:     num - number to test for\r\n *\r\n * Return:         IS_PRIME (defined 1) when num is a prime, !IS_PRIME (0) \r\n *                 if it was not.\r\n *\/\r\nint IsPrime(int num)\r\n{\r\n    \/* Sanity check to avoid misuse of this function *\/\r\n    if (num &lt;= 0)\r\n    {\r\n        return !IS_PRIME;\r\n    }\r\n    \r\n    \/* Check divisibility from 2 until 1 below the test value itself *\/\r\n    for (int i = 2; i &lt; num; i++)\r\n    {\r\n        \/* If it's divisible, it's not a prime *\/\r\n        if (num % i == 0)\r\n        {\r\n            return !IS_PRIME;\r\n        }\r\n    }\r\n    \r\n    \/* Number is only divisible by itself and 1, so it's a prime *\/\r\n    return IS_PRIME;\r\n}<\/pre>\n<p><strong>Testimine<\/strong><\/p>\n<p>NB! M\u00e4rka, et sel korral on n\u00e4idatud kahte erinevat lahendust. M\u00f5lemad on korrektsed ja aktsepteeritavad lahendused sellele \u00fclesandele. Sa pead n\u00e4itama neist vaid \u00fche.<\/p>\n<p>Teine \u00fclesanne on antud inspiratsiooniks, kui soovid v\u00e4heke rohkem pead murda ja teha v\u00e4ljund veelgi kenamaks.<\/p>\n<p><strong>Test: V\u00e4ljundis piiratud tulemuste arv<\/strong><\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true \">  ________                                   __\r\n \/  _____\/  ____   ____   ________________ _\/  |_  ___________\r\n\/   \\  ____\/ __ \\ \/    \\_\/ __ \\_  __ \\__  \\\\   __\\\/  _ \\_  __ \\\r\n\\    \\_\\  \\  ___\/|   |  \\  ___\/|  | \\\/\/ __ \\|  | (  &lt;_&gt; )  | \\\/\r\n \\______  \/\\___  &gt;___|  \/\\___  &gt;__|  (____  \/__|  \\____\/|__|\r\n        \\\/     \\\/     \\\/     \\\/           \\\/\r\n\r\n#################################################################\r\n#  1 - Arithmetic sequence generator                            #\r\n#  2 - Geometric sequence generator                             #\r\n#  3 - Prime number generator (result count)                    #\r\n#  4 - Prime number generator (line length)                     #\r\n#  0 - exit                                                     #\r\n#################################################################\r\nEnter selection\r\n&gt; 3\r\n#################################################################\r\nPrime numbers generator\r\n#################################################################\r\nInsert upper bound: 550\r\n#################################################################\r\nResults\r\n\r\n1 2 3 5 7 11 13 17 19 23 29\r\n31 37 41 43 47 53 59 61 67 71 73\r\n79 83 89 97 101 103 107 109 113 127 131\r\n137 139 149 151 157 163 167 173 179 181 191\r\n193 197 199 211 223 227 229 233 239 241 251\r\n257 263 269 271 277 281 283 293 307 311 313\r\n317 331 337 347 349 353 359 367 373 379 383\r\n389 397 401 409 419 421 431 433 439 443 449\r\n457 461 463 467 479 487 491 499 503 509 521\r\n523 541 547\r\n#################################################################<\/pre>\n<p><strong>Test: v\u00e4ljundis piiratud t\u00e4hem\u00e4rkide arv<\/strong><\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true\">  ________                                   __\r\n \/  _____\/  ____   ____   ________________ _\/  |_  ___________\r\n\/   \\  ____\/ __ \\ \/    \\_\/ __ \\_  __ \\__  \\\\   __\\\/  _ \\_  __ \\\r\n\\    \\_\\  \\  ___\/|   |  \\  ___\/|  | \\\/\/ __ \\|  | (  &lt;_&gt; )  | \\\/\r\n \\______  \/\\___  &gt;___|  \/\\___  &gt;__|  (____  \/__|  \\____\/|__|\r\n        \\\/     \\\/     \\\/     \\\/           \\\/\r\n\r\n#################################################################\r\n#  1 - Arithmetic sequence generator                            #\r\n#  2 - Geometric sequence generator                             #\r\n#  3 - Prime number generator (result count)                    #\r\n#  4 - Prime number generator (line length)                     #\r\n#  0 - exit                                                     #\r\n#################################################################\r\nEnter selection\r\n&gt; 4\r\n#################################################################\r\nPrime numbers generator\r\n#################################################################\r\nInsert upper bound: 525\r\n#################################################################\r\nResults\r\n\r\n1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79\r\n83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167\r\n173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257\r\n263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353\r\n359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449\r\n457 461 463 467 479 487 491 499 503 509 521 523\r\n#################################################################<\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Lisaulesanne_2_W04-5_Lisa_puhkepausid_ja_mitmele_paevale_ulatuv_planeerimine\"><\/span>Lisa\u00fclesanne 2 [W04-5]: Lisa puhkepausid ja mitmele p\u00e4evale ulatuv planeerimine<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Tegu on laiendusega baas\u00fclesandele.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Nouded-5\"><\/span>N\u00f5uded<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>Kasuta lahendatud baas\u00fclesannet selle t\u00f6\u00f6 p\u00f5hjaks<\/li>\n<li>Lisa kasutaja poolt seadistatav paus iga kliendikohtumise vahele (nt 10 minutit).<\/li>\n<li>Lisa t\u00f6\u00f6p\u00e4eva l\u00f5pu kellaaeg. Kui kliendikohtumine \u00fcletaks seda aega, siis planeeri kohtumine hoopis j\u00e4rgmisse p\u00e4eva. Kui kohtumiste plaan osutub mitmep\u00e4evaseks, n\u00e4ita iga p\u00e4eva ees ka p\u00e4eva numbrit.<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"Testimine-4\"><\/span>Testimine<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>N\u00e4ide oodatavast v\u00e4ljundist kui broneering l\u00e4heb mitmep\u00e4evaseks koos pausidega.<\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true\">Using advanced version of the task\r\nWorkday starts at  8:00\r\nWorkday ends at 16:00\r\n\r\nEnter num of clients\r\n25\r\nEnter client session length\r\n35\r\nEnter break length\r\n10\r\n\r\nDay 1\r\n        Client  1:       8:00 -  8:35\r\n        Client  2:       8:45 -  9:20\r\n        Client  3:       9:30 - 10:05\r\n        Client  4:      10:15 - 10:50\r\n        Client  5:      11:00 - 11:35\r\n        Client  6:      11:45 - 12:20\r\n        Client  7:      12:30 - 13:05\r\n        Client  8:      13:15 - 13:50\r\n        Client  9:      14:00 - 14:35\r\n        Client 10:      14:45 - 15:20\r\nDay 2\r\n        Client 11:       8:00 -  8:35\r\n        Client 12:       8:45 -  9:20\r\n        Client 13:       9:30 - 10:05\r\n        Client 14:      10:15 - 10:50\r\n        Client 15:      11:00 - 11:35\r\n        Client 16:      11:45 - 12:20\r\n        Client 17:      12:30 - 13:05\r\n        Client 18:      13:15 - 13:50\r\n        Client 19:      14:00 - 14:35\r\n        Client 20:      14:45 - 15:20\r\nDay 3\r\n        Client 21:       8:00 -  8:35\r\n        Client 22:       8:45 -  9:20\r\n        Client 23:       9:30 - 10:05\r\n        Client 24:      10:15 - 10:50\r\n        Client 25:      11:00 - 11:35<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Parased_tundi_peaksid\"><\/span>P\u00e4rased tundi peaksid<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>Teadma lihtsamaid polsterdamise ja joondamise v\u00f5imalusi\n<ul>\n<li>T\u00e4isarvude polsterdamine nullide v\u00f5i t\u00fchikutega<\/li>\n<li>K\u00fcmnendmurdude polsterdamine<\/li>\n<li>S\u00f5nede polsterdamine ja joondamine<\/li>\n<li>Liigpikkade s\u00f5nel\u00f5ppude \u00e4ra l\u00f5ikamine<\/li>\n<\/ul>\n<\/li>\n<li>Teadma, mis erinevus on lokaal- ja globaalmuutujal<\/li>\n<li>Teadma, mis on funktsioon ja mis on nende olulisus programmeerimisel<\/li>\n<li>Saama aru, et tegelikult kasutasime juba esimesest n\u00e4dalast peale funktsioone.<\/li>\n<li>M\u00f5istma j\u00e4rgmisi m\u00f5isteid\n<ul>\n<li>Funktsiooni protot\u00fc\u00fcp<\/li>\n<li>Funktsiooni tagastuse t\u00fc\u00fcp<\/li>\n<li>Funktsiooni argumendid<\/li>\n<li>Funktsiooni parameetrid<\/li>\n<li>Funktsiooni p\u00e4is<\/li>\n<li>Funktsiooni keha<\/li>\n<\/ul>\n<\/li>\n<li>Oskama ise koostada funktsioone (kasutaja-defineeritud funktsioonid)<\/li>\n<li>Oskama v\u00e4\u00e4rtusi (konstandid, makrod) muutujate kaudu edastada funktsioonidesse<\/li>\n<li>Oskama salvestada funktsioonist tagastatavat v\u00e4\u00e4rtust<\/li>\n<li>Oskama oma koodi t\u00fckeldada funktsioonideks<\/li>\n<li><strong>Omama v\u00e4ikest kogust universaalseid funktsioone, mida saad kasutada tulevikus j\u00e4rgnevate programmide koostamisel! See loetelu hakkab iga n\u00e4dalaga laienema.<\/strong><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Taiendav_materjal\"><\/span><strong>T\u00e4iendav materjal<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>Lihtsustatud printf spetsifikatsioon<br \/>\n<strong><a href=\"https:\/\/cplusplus.com\/reference\/cstdio\/printf\/\">https:\/\/cplusplus.com\/reference\/cstdio\/printf\/<\/a><\/strong><\/li>\n<li>P\u00f5hjalik printf spetsifikatsioon<br \/>\n<strong><a href=\"https:\/\/en.cppreference.com\/w\/c\/io\/fprintf\">https:\/\/en.cppreference.com\/w\/c\/io\/fprintf<\/a><\/strong><\/li>\n<li>Funktsioonid C keeles<br \/>\n<a href=\"https:\/\/www.studytonight.com\/c\/user-defined-functions-in-c.php\"><strong>https:\/\/www.studytonight.com\/c\/user-defined-functions-in-c.php<\/strong><\/a><\/li>\n<li>Funktsioonid C keeles<br \/>\n<strong><a href=\"https:\/\/www.geeksforgeeks.org\/c-functions\/\">https:\/\/www.geeksforgeeks.org\/c-functions\/<\/a><\/strong><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Praktikumi materjal Polsterdamine ja joondamine Slaidid: Funktsioonid Tunni n\u00e4idiskoodid: https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/programmikood\/wk4_samples.zip Esitamisele kuuluvad \u00fclesanded Selles praktikumis on kokku kolm \u00fclesannet. K\u00f5igil \u00fclesannetel on antud koodip\u00f5hi, mis m\u00e4\u00e4rab \u00e4ra \u00fclesande \u00fcldise struktuuri ja annab sulle ettem\u00e4\u00e4ratud t\u00f6\u00f6voo. T\u00f6\u00f6voog on antud samm-sammuliste juhenditena, alguses t\u00e4psemalt, l\u00f5pupoole \u00fcldisemalt. \u00dclesandeid 2 ja 3 on v\u00f5imalik laiendada lisa\u00fclesannetega. \u00dclesanne 1 [W04-1]: &hellip; <a href=\"https:\/\/blue.pri.ee\/ttu\/uncategorized\/pr1et4-funktsioonid\/\" class=\"more-link\">Loe edasi <span class=\"screen-reader-text\">PR1ET4: Funktsioonid<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-8892","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/posts\/8892","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/types\/post"}],"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=8892"}],"version-history":[{"count":30,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/posts\/8892\/revisions"}],"predecessor-version":[{"id":11501,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/posts\/8892\/revisions\/11501"}],"wp:attachment":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/media?parent=8892"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/categories?post=8892"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/tags?post=8892"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}