{"id":6424,"date":"2021-11-03T21:13:33","date_gmt":"2021-11-03T19:13:33","guid":{"rendered":"https:\/\/blue.pri.ee\/ttu\/?p=6424"},"modified":"2025-11-04T16:16:16","modified_gmt":"2025-11-04T14:16:16","slug":"8-voo-suunamine","status":"publish","type":"post","link":"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/8-voo-suunamine\/","title":{"rendered":"PR1ET8: Voo suunamine ja pseudo-juhuarvud"},"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-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/8-voo-suunamine\/#Praktikumi_materjal\" >Praktikumi materjal<\/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\/laborid\/pr1-et\/8-voo-suunamine\/#Esitamisele_kuuluvad_ulesanded\" >Esitamisele kuuluvad \u00fclesanded<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/8-voo-suunamine\/#Ulesanne_1_W08-1_Kuupaeva_kontroll\" >\u00dclesanne 1 [W08-1]: Kuup\u00e4eva kontroll<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/8-voo-suunamine\/#Nouded\" >N\u00f5uded<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/8-voo-suunamine\/#Algoritm\" >Algoritm<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/8-voo-suunamine\/#Samm-sammuline_lahendamisjuhend\" >Samm-sammuline lahendamisjuhend<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/8-voo-suunamine\/#Testimine_valmislahendus\" >Testimine: valmislahendus<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/8-voo-suunamine\/#Ulesanne_2_W8-02_Loto\" >\u00dclesanne 2 [W8-02]: Loto<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/8-voo-suunamine\/#Nouded-2\" >N\u00f5uded<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/8-voo-suunamine\/#Testimine\" >Testimine<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/8-voo-suunamine\/#Lisaulesanne_1_W8-3_Mittekorrektse_kuupaeva_pohjendus\" >Lisa\u00fclesanne 1 [W8-3]: Mittekorrektse kuup\u00e4eva p\u00f5hjendus<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/8-voo-suunamine\/#Nouded-3\" >N\u00f5uded<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/8-voo-suunamine\/#Testimine-2\" >Testimine<\/a><\/li><\/ul><\/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\/laborid\/pr1-et\/8-voo-suunamine\/#Lisaulesanne_2_W8-4_Lototronis_vaid_unikaalsed_arvud\" >Lisa\u00fclesanne 2 [W8-4]: Lototronis vaid unikaalsed arvud<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/8-voo-suunamine\/#Nouded-4\" >N\u00f5uded<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/8-voo-suunamine\/#Testimine-3\" >Testimine<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/8-voo-suunamine\/#Parast_tundi_peaksid\" >P\u00e4rast tundi peaksid<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/8-voo-suunamine\/#Taiendav_materjal\" >T\u00e4iendav materjal<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Praktikumi_materjal\"><\/span><strong>Praktikumi materjal<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Slaidid: <a style=\"cursor: pointer !important; user-select: none !important;\" href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/slaidid-et\/08_Voogude_suunamine.pdf\"><strong>Standardvood<\/strong><\/a><\/li>\n<li>Slaidid: <a href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/slaidid-et\/08_pseudojuhuarvud.pdf\"><strong>Pseudojuhuarvud<\/strong><\/a><\/li>\n<li>T\u00e4iendav: <strong><a href=\"https:\/\/blue.pri.ee\/ttu\/koodimisjuhendid\/voo-suunamine\/\">voo suunamise juhend<\/a><\/strong><\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Esitamisele_kuuluvad_ulesanded\"><\/span>Esitamisele kuuluvad \u00fclesanded<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Selles praktikumis on kaks \u00fclesannet, millest m\u00f5lemale on laiendusena pakutud v\u00e4lja lisa\u00fclesanne.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Ulesanne_1_W08-1_Kuupaeva_kontroll\"><\/span>\u00dclesanne 1 [W08-1]: Kuup\u00e4eva kontroll<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u00dclesande eesm\u00e4rgiks on tuvastada, kas sisestatud kuup\u00e4ev on realistlik v\u00f5i mitte. \u00dclesande raames tutvume ka voo suunamise kasutamisega. \u00dclesande algus tehakse klassis koos l\u00e4bi (andmete lugemise ja v\u00e4ljastamine).<\/p>\n<p>Lae alla \u00fclesande aluskood: <strong><a href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/aluskoodid\/8_1_date_base.c\">https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/aluskoodid\/8_1_date_base.c<\/a><\/strong><\/p>\n<h5><span class=\"ez-toc-section\" id=\"Nouded\"><\/span>N\u00f5uded<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<ul>\n<li>Programm kuvab iga kuup\u00e4eva j\u00e4rel, kas tegu on reaalse v\u00f5i vigase kuup\u00e4evaga<\/li>\n<li>Aastate vahemik on piiratud 1900 \u2013 2099<\/li>\n<li>Programmis on rakendatud liigaasta kontroll<\/li>\n<li>Maksimaalselt t\u00f6\u00f6deldakse 100 kuup\u00e4eva<\/li>\n<li>Sisestatavad kuup\u00e4evad vastavad k\u00f5ik formaadile <span class=\"lang:default highlight:0 decode:true crayon-inline \">DDMMYYYY<\/span>\u00a0.\n<ul>\n<li>NB! Kuup\u00e4evade formaadid on konkreetselt m\u00e4\u00e4ratletud.<br \/>\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/Date_format_by_country\">https:\/\/en.wikipedia.org\/wiki\/Date_format_by_country<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Baas\u00fclesande raames tuleb lahendada funktsioonid sellisel kujul nagu nad antud on.\u00a0 Kohustuslike funktsioonide loetelu ja kommentaarid leiad aluskoodist.<\/li>\n<li>Programmi esitades pead seda tegema kasutades sisendvoo \u00fcmbersuunamist. Sisendiks on fail testkuup\u00e4evadega (testandmed antud allpool)<\/li>\n<\/ul>\n<h5><span class=\"ez-toc-section\" id=\"Algoritm\"><\/span>Algoritm<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>NB! Algoritm on sel korral piiritletud kuup\u00e4eva valideerimisega. \u00dclesande aluskoodis olev massiivide kasutamine ei ole algoritmis kajastatud, mist\u00f5ttu erineb ka tegevuste j\u00e4rjekord.<\/p>\n<p>Meeldetuletuseks: tegevusdiagrammid ei kajasta funktsioonide vahelist andmevahetust ega ka nende v\u00e4ljakutseid.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/algoritmid\/kp.svg\" width=\"988\" height=\"468\" \/><\/p>\n<h5><span class=\"ez-toc-section\" id=\"Samm-sammuline_lahendamisjuhend\"><\/span>Samm-sammuline lahendamisjuhend<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p data-select-like-a-boss=\"1\">Alususeks tuleb luua andmefail, milleks on tavaline tekstifail. Sinna kirjutame samad andmed, mida muidu tr\u00fckiksime klaviatuurilt, kusjuures ka samas j\u00e4rjekorras. Iga sisendi vahel on kas reavahetus v\u00f5i t\u00fchik (l\u00e4htuvalt scanf funktsiooni iseloomust). Nii saame oma testandmed \u00fchekordselt kirja panna ning korduvalt testida programmi kiirelt samadel tingimustel. M\u00f5nel \u00fclesandel v\u00f5ib taolisi testfaile olla mitu, m\u00f5nel piisab \u00fchest.<\/p>\n<p data-select-like-a-boss=\"1\">Sisendfaili kirjutades tuleks arvestada, et testitud saaks k\u00f5ik v\u00f5imalikud olukorrad programmi t\u00f6\u00f6s. Kindlasti tuleb testida nii realistlike kui ka ebareaalseid kuup\u00e4evi. N\u00e4iteks 11. detsember 1981; 51. detsember; kuu nr 22; kuu &#8220;abc&#8221; jne. <strong>Eriti olulised on piirjuhud &#8211; nt 29. veebruar. <\/strong>Oleme koostanud testsisendi sinu eest. Kui soovid testandmeid lisada, pane need k\u00f5ige l\u00f5ppu!<\/p>\n<p data-select-like-a-boss=\"1\"><strong>Salvesta j\u00e4rgnev testsisend tekstifailina samasse kausta kuhu oma programmi paned!<\/strong><\/p>\n<pre class=\"toolbar:2 lang:tsql highlight:0 decode:true\">14041805\r\n26052100\r\n31012015\r\n30092011\r\n01012001\r\n31062011\r\n32011999\r\n00012011\r\n01002023\r\n01132033\r\n29022022\r\n28022022\r\n28022000\r\n29022000\r\n29022004\r\n29021900<\/pre>\n<p>J\u00e4rgmiseks oleks meil vaja programmi, mis neid kontrollima hakkaks.<\/p>\n<p><b>N\u00fc\u00fcd hakkame t\u00f6\u00f6tama ette antud aluskoodiga. <\/b><strong>Esimesed kaks funktsiooni teeme tunnis koos \u00e4ra!<\/strong> Kui tunnis polnud, vaata loengusalvestust!<\/p>\n<p>Selle tulemusena peaks meil olema 2 faili, m\u00f5lemad samas kaustas:<\/p>\n<ol>\n<li>Programmikood (nt <span class=\"lang:default highlight:0 decode:true crayon-inline\">date.c<\/span>\u00a0)<\/li>\n<li>Tekstifail sisendandmetega (nt <span class=\"lang:default highlight:0 decode:true crayon-inline\">input<\/span> v\u00f5i <span class=\"lang:default highlight:0 decode:true crayon-inline \">input.txt<\/span>\u00a0)<\/li>\n<\/ol>\n<p>J\u00e4rgmisena on meil vaja l\u00e4htekoodist kompileerida programm. \u00dcks valik programmi loomiseks on see kompileerida l\u00e4bi Geany v\u00f5i m\u00f5ne teise rakenduse, mida oled senimaani kasutanud. V\u00f5id seda julgelt teha, kui end sedasi mugavamalt tunned. <strong>\u00c4ra vaid p\u00e4rast igat muudatust koodi kompileerida!<\/strong><\/p>\n<div class=\"su-spoiler su-spoiler-style-simple su-spoiler-icon-plus 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, et n\u00e4ha kuidas seda teha k\u00e4surealt<\/div><div class=\"su-spoiler-content su-u-clearfix su-u-trim\">\n<p>Kompileerida v\u00f5id ka k\u00e4surealt. T\u00e4pselt sama asi juhtub tegelikult kui nt Geany sees vajutad build nuppu. Selleks on \u00fcldine struktuur <span class=\"lang:default highlight:0 decode:true crayon-inline\">kompilaatori_nimi -o programmi_nimi koodifaili_nimi.c<\/span> .<strong> Oluline on, et -o j\u00e4rel on alati soovitav programmi nimi (v\u00e4ljund). K\u00f5ige l\u00f5ppu paneme me l\u00e4htekoodi faili nimetuse. <\/strong>Lisaks kasutame tavaliselt t\u00e4iendavaid lippusid, et lihtsustada vigade leidmist. N\u00e4iteks <span class=\"lang:default highlight:0 decode:true crayon-inline\">-Wall<\/span> ,\u00a0<span class=\"lang:default highlight:0 decode:true crayon-inline\">-Wextra<\/span> ja <span class=\"lang:c highlight:0 decode:true crayon-inline \">-Wconversion<\/span>\u00a0.<\/p>\n<p>N\u00fc\u00fcd paneme selle k\u00f5ik kokku. Olles saanud k\u00e4suakna \u00f5igesse kausta, kus asuvad su teised failid, saad teha j\u00e4rgmist:<\/p>\n<p><span class=\"lang:default decode:true crayon-inline\">gcc -o date -Wall -Wextra -Wconversion date.c<\/span><\/p>\n<p>Selle reaga kompileeritakse l\u00e4htekoodi fail <span class=\"lang:default highlight:0 decode:true crayon-inline\">date.c<\/span>\u00a0 programmiks nimega <span class=\"lang:default highlight:0 decode:true crayon-inline\">date<\/span>\u00a0.<\/p>\n<\/div><\/div>\n<p>Veendume, et failid on olemas ja samas kaustas kasutades k\u00e4sku <span class=\"lang:default highlight:0 decode:true crayon-inline \">ls -l<\/span>\u00a0:<\/p>\n<pre class=\"theme:cisco-router toolbar:2 nums:false lang:sh decode:true\">INTRA\\risto.heinsar@lx27:~\/P\/date&gt; ls -l\r\ntotal 18\r\n-rwxr-xr-x 1 INTRA\\risto.heinsar INTRA\\domain users 12732 Oct  6 14:11 date\r\n-rwxr-xr-x 1 INTRA\\risto.heinsar INTRA\\domain users   536 Oct  5 15:50 date.c\r\n-rwxr-xr-x 1 INTRA\\risto.heinsar INTRA\\domain users    73 Oct  6 14:11 input.txt\r\n<\/pre>\n<p>Kui varem oli meil 2 faili, siis n\u00fc\u00fcd peaks neid olema 3:<\/p>\n<ul>\n<li><span class=\"lang:default highlight:0 decode:true crayon-inline\">date<\/span>\u00a0 &#8211; nn binaarfail ehk programm, mis loodi l\u00e4htekoodi kompileerimise tulemusena.\u00a0<strong>K\u00e4ivitatav!<\/strong><\/li>\n<li><span class=\"lang:default highlight:0 decode:true crayon-inline \">date.c<\/span>\u00a0 &#8211; l\u00e4htekoodi fail. Siia kirjutame me tekstiredaktoriga koodi,\u00a0<strong>ei ole k\u00e4ivitatav programmina!<\/strong><\/li>\n<li><span class=\"lang:default highlight:0 decode:true crayon-inline\">input.txt<\/span>\u00a0 &#8211; tekstifail, mis sisaldab kuup\u00e4evi ehk testandmed.<\/li>\n<\/ul>\n<p>N\u00fc\u00fcd k\u00e4ivitame programmi sedasi, et klaviatuurilt tr\u00fckkimise asemel suuname sisendvoo \u00fcmber operatsioonis\u00fcsteemi tasandil (<strong>meie programm ei loe faili ega oskagi seda teha!<\/strong>). Selleks saame kasutada j\u00e4rgmist k\u00e4sustruktuuri, asendades failid \u00f5igete nimedega: <span class=\"lang:sh decode:true crayon-inline\">.\/programminimi &lt; andmefailinimi<\/span><\/p>\n<p style=\"padding-left: 30px;\"><strong>.\/programminimi<\/strong> &#8211; sedasi saad programmi k\u00e4ima Linuxis ja Maci k\u00e4surealt<br \/>\n<strong>&lt;<\/strong> &#8211; t\u00e4histab sisendvoo \u00fcmbersuunamist &#8211; operatsioonis\u00fcsteem asendab sisendvoo klaviatuurilt sellele j\u00e4rgneva failinimega<br \/>\n<strong>andmefailinimi<\/strong> &#8211;\u00a0 fail, kus paikneb soovitud sisend<\/p>\n<p>Siin l\u00f5ppeb tunnis koos tehtav osa ning algab iseseisev t\u00f6\u00f6. Selleks hetkeks peaks programmi v\u00e4ljund olema j\u00e4rgmine<\/p>\n<pre class=\"theme:cisco-router toolbar:2 nums:false lang:sh highlight:0 decode:true\">INTRA\\risto.heinsar@lx27:~\/P\/date&gt; .\/date &lt; input\r\nDates read: 16\r\n\r\n14.04.1805\r\n26.05.2100\r\n31.01.2015\r\n30.09.2011\r\n01.01.2001\r\n31.06.2011\r\n32.01.1999\r\n00.01.2011\r\n01.00.2023\r\n01.13.2033\r\n29.02.2022\r\n28.02.2022\r\n28.02.2000\r\n29.02.2000\r\n29.02.2004\r\n29.02.1900<\/pre>\n<h5><span class=\"ez-toc-section\" id=\"Testimine_valmislahendus\"><\/span>Testimine: valmislahendus<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>P\u00e4rast programmi valmimist peaks su v\u00e4ljundis olema j\u00e4rgnevad vastavused.<\/p>\n<pre class=\"theme:cisco-router toolbar:2 nums:false lang:c highlight:0 decode:true\">INTRA\\risto.heinsar@lx27:~\/P\/kp&gt; .\/date &lt; input\r\nDates read: 16\r\n\r\n14.04.1805 &lt; Invalid date!\r\n26.05.2100 &lt; Invalid date!\r\n31.01.2015 &lt; OK\r\n30.09.2011 &lt; OK\r\n01.01.2001 &lt; OK\r\n31.06.2011 &lt; Invalid date!\r\n32.01.1999 &lt; Invalid date!\r\n00.01.2011 &lt; Invalid date!\r\n01.00.2023 &lt; Invalid date!\r\n01.13.2033 &lt; Invalid date!\r\n29.02.2022 &lt; Invalid date!\r\n28.02.2022 &lt; OK\r\n28.02.2000 &lt; OK\r\n29.02.2000 &lt; OK\r\n29.02.2004 &lt; OK\r\n29.02.1900 &lt; Invalid date!<\/pre>\n<h4><span class=\"ez-toc-section\" id=\"Ulesanne_2_W8-02_Loto\"><\/span>\u00dclesanne 2 [W8-02]: Loto<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Lae alla \u00fclesande aluskood:<\/p>\n<ul>\n<li>Eestikeelsete kommentaaridega: <strong><a href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/aluskoodid\/8_2_loto_base.c\">https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/aluskoodid\/8_2_loto_base.c<\/a><\/strong><\/li>\n<li>Ingliskeelsete kommentaaridega: <strong><a href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/aluskoodid\/8_2_loto_base_en.c\">https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/aluskoodid\/8_2_loto_base_en.c<\/a><\/strong><\/li>\n<\/ul>\n<h5><span class=\"ez-toc-section\" id=\"Nouded-2\"><\/span>N\u00f5uded<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<ul>\n<li>Tunnit\u00f6\u00f6 tuleb ehitada ette antud aluskoodile, realiseerides ja kasutades selles ettem\u00e4\u00e4ratud funktsioone<\/li>\n<li>Lotonumbrid genereeritakse vahemikus 1 &#8230; 25 (otspunktid kaasaarvatud)<\/li>\n<li>Kasutajalt k\u00fcsitakse 6 arvu (lotonumbrid)<\/li>\n<li>Programm genereerib juhuarvudena 10 arvu (v\u00f5idunumbrid)<\/li>\n<li>Programm kuvab genereeritud v\u00f5idunumbrid<\/li>\n<li>Kontrolli ja n\u00e4ita\u00a0<strong>mitu<\/strong> ja\u00a0<strong>millised<\/strong> numbrid kattusid\n<ul>\n<li>Baas\u00fclesandes pole n\u00f5utud numbrite unikaalsus<\/li>\n<li>Iga lotonumber tohib kattuda v\u00f5idunumbriga vaid \u00fchel korral<\/li>\n<\/ul>\n<\/li>\n<li>Kui k\u00f5ik numbrid kattusid, \u00f5nnitle peav\u00f5idu puhul. Kui \u00fckski ei kattunud, avalda kaastunnet.<\/li>\n<\/ul>\n<h5><span class=\"ez-toc-section\" id=\"Testimine\"><\/span>Testimine<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>NB! Kuna loterii nagu nimigi \u00fctleb on juhuslik, selle testimine teadmata sisendit ei ole m\u00f5istlik. Testimise jaoks m\u00e4\u00e4ra juhuarvude alguspunkt konstandiks ning kirjuta genereeritavad arvud \u00fcles &#8211; nii saad testimiseks korratavad tulemused.<\/p>\n<p><strong>Test 1: <\/strong>Juhuslikud arvud, m\u00f5ni v\u00f5idunumber, sisestus OK.<\/p>\n<pre class=\"theme:cisco-router toolbar:2 nums:false lang:default highlight:0 decode:true\">Enter lottery number [1 ... 25] (1 \/ 6): 1\r\nEnter lottery number [1 ... 25] (2 \/ 6): 3\r\nEnter lottery number [1 ... 25] (3 \/ 6): 5\r\nEnter lottery number [1 ... 25] (4 \/ 6): 13\r\nEnter lottery number [1 ... 25] (5 \/ 6): 14\r\nEnter lottery number [1 ... 25] (6 \/ 6): 15\r\n\r\nUser numbers are\r\n1 3 5 13 14 15\r\n\r\nLottery numbers are\r\n17 18 10 1 20 25 4 9 13 15\r\n\r\nWinning number: 1\r\nWinning number: 13\r\nWinning number: 15\r\n\r\nMatched 3 out of 6!<\/pre>\n<p><strong>Test 2: <\/strong>V\u00f5idunumbrid puuduvad<\/p>\n<pre class=\"theme:cisco-router toolbar:2 nums:false lang:default highlight:0 decode:true\">Enter lottery number [1 ... 25] (1 \/ 6): 11\r\nEnter lottery number [1 ... 25] (2 \/ 6): 12\r\nEnter lottery number [1 ... 25] (3 \/ 6): 14\r\nEnter lottery number [1 ... 25] (4 \/ 6): 21\r\nEnter lottery number [1 ... 25] (5 \/ 6): 22\r\nEnter lottery number [1 ... 25] (6 \/ 6): 23\r\n\r\nUser numbers are\r\n11 12 14 21 22 23\r\n\r\nLottery numbers are\r\n17 18 10 1 20 25 4 9 13 15\r\n\r\nMatched 0 out of 6!\r\n\r\nNone of the numbers matched. Better luck next time!<\/pre>\n<p><strong>Test 3: <\/strong>Jackpot<\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true\">Enter lottery number [1 ... 25] (1 \/ 6): 17\r\nEnter lottery number [1 ... 25] (2 \/ 6): 18\r\nEnter lottery number [1 ... 25] (3 \/ 6): 10\r\nEnter lottery number [1 ... 25] (4 \/ 6): 1\r\nEnter lottery number [1 ... 25] (5 \/ 6): 20\r\nEnter lottery number [1 ... 25] (6 \/ 6): 25\r\n\r\nUser numbers are\r\n17 18 10 1 20 25\r\n\r\nLottery numbers are\r\n17 18 10 1 20 25 4 9 13 15\r\n\r\nWinning number: 17\r\nWinning number: 18\r\nWinning number: 10\r\nWinning number: 1\r\nWinning number: 20\r\nWinning number: 25\r\n\r\nMatched 6 out of 6!\r\n\r\nCongratulations! You won the jackpot!<\/pre>\n<p><strong>Test 4: <\/strong>Vigane sisestus<\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true\">Enter lottery number [1 ... 25] (1 \/ 6): -5\r\nInvalid number! \r\nRetry: 5\r\nEnter lottery number [1 ... 25] (2 \/ 6): 26\r\nInvalid number! \r\nRetry: 27\r\nInvalid number! \r\nRetry: -4\r\nInvalid number! \r\nRetry: 6\r\nEnter lottery number [1 ... 25] (3 \/ 6): 7\r\nEnter lottery number [1 ... 25] (4 \/ 6): 8\r\nEnter lottery number [1 ... 25] (5 \/ 6): 9\r\nEnter lottery number [1 ... 25] (6 \/ 6): 10\r\n\r\nUser numbers are\r\n5 6 7 8 9 10\r\n\r\nLottery numbers are\r\n17 18 10 1 20 25 4 9 13 15\r\n\r\nWinning number: 9\r\nWinning number: 10\r\n\r\nMatched 2 out of 6!<\/pre>\n<p><strong>Test 5:<\/strong> Iga number v\u00f5idab vaid korra (absurdsed olukorrad &#8211;\u00a0<em>sanity check)<\/em><\/p>\n<p>Selle testi v\u00e4ltel teeme ajutise muudatuse, mis l\u00e4heb vastuollu \u00fclesande \u00fcldiste n\u00f5uetega, et testida, mitu korda \u00fcks lotonumber v\u00f5ita saab. Kaine m\u00f5istus \u00fctleb, et iga number saab v\u00f5ita vaid korra.<\/p>\n<p><strong>NB! See test t\u00f6\u00f6tab selliselt vaid siis, kui unikaalsuse n\u00f5ue ei ole t\u00e4idetud (st pole tehtud lisa\u00fclesanne). Korduvad numbrid on seega lubatud.<\/strong><\/p>\n<pre class=\"toolbar:2 lang:default highlight:0 decode:true\">#define MAX_LOTTO 1<\/pre>\n<p>St k\u00f5ik lototroni numbrid peaksid tulema \u00fched ning sisestame ka enda numbrid k\u00f5ik \u00fchtedena.<\/p>\n<p>Testi raames j\u00e4lgime kahte asja<\/p>\n<ol>\n<li>J\u00e4lgi v\u00f5idunumbrite arvu &#8211; iga meie sisestatud number saab v\u00f5ita \u00fche korra! St v\u00e4ljundis peaksime n\u00e4gema <span class=\"lang:default highlight:0 decode:true crayon-inline\">Matched 6 out of 6!)<\/span><\/li>\n<li>J\u00e4lgi lototroni genereeritud numbreid. Need tohivad olla vaid \u00fched! (0 v\u00f5i 2 esinemine t\u00e4hendab, et sul on viga juharvude valemi koostamisel!)<\/li>\n<\/ol>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true\">Enter lottery number [1 ... 1] (1 \/ 6): 1\r\nEnter lottery number [1 ... 1] (2 \/ 6): 1\r\nEnter lottery number [1 ... 1] (3 \/ 6): 1\r\nEnter lottery number [1 ... 1] (4 \/ 6): 1\r\nEnter lottery number [1 ... 1] (5 \/ 6): 1\r\nEnter lottery number [1 ... 1] (6 \/ 6): 1\r\n\r\nUser numbers are\r\n1 1 1 1 1 1\r\n\r\nLottery numbers are\r\n1 1 1 1 1 1 1 1 1 1\r\n\r\nWinning number: 1\r\nWinning number: 1\r\nWinning number: 1\r\nWinning number: 1\r\nWinning number: 1\r\nWinning number: 1\r\n\r\nMatched 6 out of 6!\r\nCongratulations! You won the jackpot!<\/pre>\n<p><em><strong>M\u00e4rkus:<\/strong> Tunnit\u00f6\u00f6 baas\u00fclesandes vaatleme vaid lihtsat juhtu, kus kasutaja arv saab v\u00f5ita \u00fchekordselt. N\u00e4iteks kui kasutaja sisestab numbrid &#8220;1, 1, 1, 1, 1, 1&#8221; ja lototron genereerib &#8220;1, 2, 3, 4, 5, 6, 7, 8, 9, 10&#8221;, siis baas\u00fclesande raames piisab, kui loeme, et kokku tuli 6 tabamust. Kui aga kasutaja numbrid oleksid &#8220;1, 2, 3, 4, 5, 6&#8221; ja lototron genereeriks &#8220;1, 1, 1, 1, 1, 1, 1, 1, 1, 1&#8221;, siis oleks olnud vaid 1 tabamus.<\/em><\/p>\n<h4><span class=\"ez-toc-section\" id=\"Lisaulesanne_1_W8-3_Mittekorrektse_kuupaeva_pohjendus\"><\/span>Lisa\u00fclesanne 1 [W8-3]: Mittekorrektse kuup\u00e4eva p\u00f5hjendus<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Algse lahenduse puuduj\u00e4\u00e4giks oli, et me ei p\u00f5hjendanud miks kuup\u00e4ev oli ebarealistlik. T\u00e4iendame oma programmi sedasi, et ka p\u00f5hjus oleks kasutajale n\u00e4htav.<\/p>\n<h5><span class=\"ez-toc-section\" id=\"Nouded-3\"><\/span>N\u00f5uded<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<ul>\n<li>Laienda oma programmi nii, et programm p\u00f5hjendaks, miks kuup\u00e4ev reaalseks ei osutu<\/li>\n<li>Minimaalselt pead eristama\n<ul>\n<li>Ebasobivat aasta v\u00e4\u00e4rtust<\/li>\n<li>Ebasobivat kuu v\u00e4\u00e4rtust<\/li>\n<li>Ebasobivat p\u00e4evade arvu, eristades sealjuures v\u00e4iksemat ja suuremat kui lubatud v\u00e4\u00e4rtust<\/li>\n<li>Mitte-liigaastal olevat 29ndat veebruari<\/li>\n<\/ul>\n<\/li>\n<li>Lahenduses v\u00f5id lisada t\u00e4iendavaid funktsioone ja muuta m\u00f5istuse piires ka senist programmi struktuuri.<\/li>\n<li>Meeldetuletus! V\u00e4ldi maagilisi arve! Soovituslik on kodeerida oma veakoodid<\/li>\n<\/ul>\n<h5><span class=\"ez-toc-section\" id=\"Testimine-2\"><\/span><b>Testimine<\/b><span class=\"ez-toc-section-end\"><\/span><\/h5>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:c highlight:0 decode:true \">INTRA\\risto.heinsar@lx27:~\/P\/kp&gt; .\/date_adv &lt; input\r\nDates read: 16\r\n\r\n14.04.1805 &lt; Year out of range!\r\n26.05.2100 &lt; Year out of range!\r\n31.01.2015 &lt; OK\r\n30.09.2011 &lt; OK\r\n01.01.2001 &lt; OK\r\n31.06.2011 &lt; Day exceeds maximum days for given month!\r\n32.01.1999 &lt; Day exceeds maximum days for given month!\r\n00.01.2011 &lt; Day before first of month!\r\n01.00.2023 &lt; No such month exists!\r\n01.13.2033 &lt; No such month exists!\r\n29.02.2022 &lt; 29th of February only exists on leap year! \r\n28.02.2022 &lt; OK\r\n28.02.2000 &lt; OK\r\n29.02.2000 &lt; OK\r\n29.02.2004 &lt; OK\r\n29.02.1900 &lt; 29th of February only exists on leap year!<\/pre>\n<h4><span class=\"ez-toc-section\" id=\"Lisaulesanne_2_W8-4_Lototronis_vaid_unikaalsed_arvud\"><\/span>Lisa\u00fclesanne 2 [W8-4]: Lototronis vaid unikaalsed arvud<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Selle \u00fclesande eesm\u00e4rk on muuta \u00fclesanne t\u00e4isv\u00e4\u00e4rtuslikuks. Selleks on meil vaja lahendada vaid \u00fcks funktsioon <span class=\"lang:default highlight:0 decode:true crayon-inline \">FindMatchCount()<\/span>\u00a0 ning seda \u00f5igetes kohtades kasutusele v\u00f5tta.<\/p>\n<h5><span class=\"ez-toc-section\" id=\"Nouded-4\"><\/span>N\u00f5uded<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<ul>\n<li>Kasutaja poolt sisestatavatele numbritele tuleb rakendada unikaalsuse n\u00f5ue. Kui kasutaja sisestab korduva numbri, tuleb see sama number uuesti k\u00fcsida.<\/li>\n<li>Lototronile tuleb rakendada unikaalsuse n\u00f5ue. Lototroni poolt genereeritavad v\u00f5idunumbrid ei tohi korduda.<\/li>\n<li>Lahenduse k\u00e4igus ei tohiks muuta <span class=\"lang:default highlight:0 decode:true crayon-inline\">GetUserNumbInRange()<\/span>\u00a0 ja <span class=\"lang:default highlight:0 decode:true crayon-inline \">GenerateRandomNum()<\/span>\u00a0 funktsioone, otsi selleks sobilikum koht.<\/li>\n<li>Kommenteeri aluskoodist sisse ja lahenda \u00e4ra funktsioon <span class=\"lang:default highlight:0 decode:true crayon-inline\">IsNumInArray()<\/span>\u00a0. V\u00f5ta see funktsioon kasutusele\u00a0<strong>kolmes kohas<\/strong>\n<ol>\n<li>Kasutaja lotonumbrite unikaalsuse kontrolliks<\/li>\n<li>Lototroni genereeritud v\u00f5idunumbrite unikaalsuse kontrolliks<\/li>\n<li>Kasutaja ja lotoarvude kattuvuse leidmise funktsioonis <span class=\"lang:default highlight:0 decode:true crayon-inline \">FindMatchCount()<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<h5><span class=\"ez-toc-section\" id=\"Testimine-3\"><\/span>Testimine<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p><strong>Test 1: Kontrollime unikaalsuse n\u00f5uet kasutajale<\/strong><\/p>\n<p>NB! Kontrolli kindlasti kasutades sama jada!<\/p>\n<pre class=\"theme:cisco-router toolbar:2 nums:false lang:default highlight:0 decode:true\">Enter lottery number [1 ... 25] (1 \/ 6): 1\r\nEnter lottery number [1 ... 25] (2 \/ 6): 2\r\nEnter lottery number [1 ... 25] (3 \/ 6): 3\r\nEnter lottery number [1 ... 25] (4 \/ 6): 4\r\nEnter lottery number [1 ... 25] (5 \/ 6): 3\r\nYou've already entered this number! Retry: 2\r\nYou've already entered this number! Retry: 1\r\nYou've already entered this number! Retry: 5\r\nEnter lottery number [1 ... 25] (6 \/ 6): 6\r\n\r\nUser numbers are\r\n1 2 3 4 5 6\r\n\r\nLottery numbers are\r\n17 18 10 1 20 25 4 9 13 15\r\n\r\nWinning number: 1\r\nWinning number: 4\r\n\r\nMatched 2 out of 6!<\/pre>\n<p><strong>Test 2: Kontrollime unikaalsuse t\u00f6\u00f6tamist lototroni poolt<\/strong><\/p>\n<p>Selleks, et kontrollida lototroni t\u00f6\u00f6d, peame me j\u00e4llegi manipuleerima konstante.<\/p>\n<pre class=\"toolbar:2 lang:default highlight:0 decode:true\">#define MAX_LOTTO 10<\/pre>\n<p>Selle testiga on meil arvuti poolt genereeritud numbrite arv t\u00e4pselt sama suur kui maksimaalne unikaalsete numbrite arv. St k\u00f5ik numbrid 1 &#8211; 10 peavad saama genereeritud ning \u00fckski neist korduda ei tohi.<\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true \">Enter lottery number [1 ... 10] (1 \/ 6): 1\r\nEnter lottery number [1 ... 10] (2 \/ 6): 2\r\nEnter lottery number [1 ... 10] (3 \/ 6): 3\r\nEnter lottery number [1 ... 10] (4 \/ 6): 4\r\nEnter lottery number [1 ... 10] (5 \/ 6): 5\r\nEnter lottery number [1 ... 10] (6 \/ 6): 6\r\n\r\nUser numbers are\r\n1 3 4 5 6\r\n\r\nLottery numbers are\r\n2 8 5 1 10 9 3 6 7 4\r\n\r\nWinning number: 1\r\nWinning number: 2\r\nWinning number: 3\r\nWinning number: 4\r\nWinning number: 5\r\nWinning number: 6\r\n\r\nMatched 6 out of 6!\r\nCongratulations! You won the jackpot!<\/pre>\n<p><strong>M\u00f5tle ja vasta ka k\u00fcsimusele, mis juhtuks, kui oleksime konstandi pannud 9 peale?<\/strong><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Parast_tundi_peaksid\"><\/span><strong>P\u00e4rast tundi peaksid<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Teadma, millised standardvood eksisteerivad<\/li>\n<li>Oskama kasutada voo suunamist erinevatel platvormidel<\/li>\n<li>Oskama k\u00e4ivitada enda kompileeritud programme Linuxi k\u00e4surealt<\/li>\n<li>Oskama kasutada t\u00f5ev\u00e4\u00e4rtusi (boolean andmet\u00fc\u00fcp)<\/li>\n<li>Oskama t\u00fckeldada sisestust vajadusel t\u00e4hem\u00e4rkhaaval<\/li>\n<li>Oskama kasutada scanf poolt taastatavat v\u00e4\u00e4rtust<\/li>\n<li>Oskama kasutada \u00fcherealisi tingimuslauseid ja ts\u00fckleid<\/li>\n<li>Oskama genereerida pseudojuhuarve\n<ul>\n<li>.. pannes need alati algama samast arvust<\/li>\n<li>.. pannes need kellaajast s\u00f5ltuvaks<\/li>\n<\/ul>\n<\/li>\n<li>Teadma, mis vahe on pseudojuhuarvul ja juhuarvul<\/li>\n<li>Oskama piirata juhuarvude genereerimise vahemikku<\/li>\n<li>Teadma, mis on ning kuidas t\u00f6\u00f6tab UNIXi kellaaeg, sh mis t\u00e4htsus on 1. jaanuaril 1970.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Taiendav_materjal\"><\/span><span id=\"Additional_content\" class=\"ez-toc-section\"><\/span><strong>T\u00e4iendav materjal<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Boolean type support library<br \/>\n<a href=\"https:\/\/en.cppreference.com\/w\/c\/types\/boolean\">https:\/\/en.cppreference.com\/w\/c\/types\/boolean<\/a><\/li>\n<li>What is a leap year<br \/>\n<a href=\"https:\/\/www.timeanddate.com\/date\/leapyear.html\">https:\/\/www.timeanddate.com\/date\/leapyear.html<\/a><\/li>\n<li>Standard streams<br \/>\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/Standard_streams\">https:\/\/en.wikipedia.org\/wiki\/Standard_streams<\/a><\/li>\n<li>Redirection<br \/>\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/Redirection_(computing)\">https:\/\/en.wikipedia.org\/wiki\/Redirection_(computing)<\/a><\/li>\n<li>Pseudorandomness<br \/>\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/Pseudorandomness\">https:\/\/en.wikipedia.org\/wiki\/Pseudorandomness<\/a><\/li>\n<li>Why does Cloudflare use lava lamps to help with encryption? (\u00fcks v\u00f5imalik lahendus pseudojuhuslikkuse probleemile)<br \/>\n<a href=\"https:\/\/www.cloudflare.com\/learning\/ssl\/lava-lamp-encryption\/\">https:\/\/www.cloudflare.com\/learning\/ssl\/lava-lamp-encryption\/<\/a><\/li>\n<li>Unix time<br \/>\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/Unix_time\">https:\/\/en.wikipedia.org\/wiki\/Unix_time<\/a><\/li>\n<li>Unixi praegune kellaaeg ja selle teisendi<br \/>\n<a href=\"https:\/\/www.unixtimestamp.com\">https:\/\/www.unixtimestamp.com<\/a><\/li>\n<li>rand() and srand() in C\/C++<br \/>\n<a href=\"https:\/\/www.geeksforgeeks.org\/rand-and-srand-in-ccpp\/\">https:\/\/www.geeksforgeeks.org\/rand-and-srand-in-ccpp\/<\/a><\/li>\n<li>time.h library in C<br \/>\n<a href=\"https:\/\/www.cplusplus.com\/reference\/ctime\/\">https:\/\/www.cplusplus.com\/reference\/ctime\/<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Praktikumi materjal Slaidid: Standardvood Slaidid: Pseudojuhuarvud T\u00e4iendav: voo suunamise juhend Esitamisele kuuluvad \u00fclesanded Selles praktikumis on kaks \u00fclesannet, millest m\u00f5lemale on laiendusena pakutud v\u00e4lja lisa\u00fclesanne. \u00dclesanne 1 [W08-1]: Kuup\u00e4eva kontroll \u00dclesande eesm\u00e4rgiks on tuvastada, kas sisestatud kuup\u00e4ev on realistlik v\u00f5i mitte. \u00dclesande raames tutvume ka voo suunamise kasutamisega. \u00dclesande algus tehakse klassis koos l\u00e4bi (andmete &hellip; <a href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/8-voo-suunamine\/\" class=\"more-link\">Loe edasi <span class=\"screen-reader-text\">PR1ET8: Voo suunamine ja pseudo-juhuarvud<\/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":[97,94],"tags":[],"class_list":["post-6424","post","type-post","status-publish","format-standard","hentry","category-laborid","category-pr1-et"],"_links":{"self":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/posts\/6424","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=6424"}],"version-history":[{"count":17,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/posts\/6424\/revisions"}],"predecessor-version":[{"id":10867,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/posts\/6424\/revisions\/10867"}],"wp:attachment":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/media?parent=6424"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/categories?post=6424"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/tags?post=6424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}