{"id":5510,"date":"2020-10-05T22:51:19","date_gmt":"2020-10-05T20:51:19","guid":{"rendered":"https:\/\/blue.pri.ee\/ttu\/?p=5510"},"modified":"2025-11-07T20:46:20","modified_gmt":"2025-11-07T18:46:20","slug":"pr1et9-maatriksid","status":"publish","type":"post","link":"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/pr1et9-maatriksid\/","title":{"rendered":"PR1ET9: maatriksid"},"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\/pr1et9-maatriksid\/#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\/pr1et9-maatriksid\/#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\/pr1et9-maatriksid\/#Ulesanne_1_W09-1_Maatriksist_tulemuste_leidmine\" >\u00dclesanne 1 [W09-1]: Maatriksist tulemuste leidmine<\/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\/pr1et9-maatriksid\/#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\/pr1et9-maatriksid\/#Too_kaik\" >T\u00f6\u00f6 k\u00e4ik<\/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\/pr1et9-maatriksid\/#Vihjeid\" >Vihjeid<\/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\/pr1et9-maatriksid\/#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-8\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/pr1et9-maatriksid\/#Ulesanne_2_W09-2_Kinosaal\" >\u00dclesanne 2 [W09-2]: Kinosaal<\/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\/pr1et9-maatriksid\/#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\/pr1et9-maatriksid\/#Toovoo_soovitus\" >T\u00f6\u00f6voo soovitus<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/pr1et9-maatriksid\/#Vihjeid-2\" >Vihjeid<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/pr1et9-maatriksid\/#Programmi_testimine_ja_naide\" >Programmi testimine ja n\u00e4ide<\/a><\/li><\/ul><\/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\/laborid\/pr1-et\/pr1et9-maatriksid\/#Lisaulesanne_1_W09-3_Mitmekesi_kinno\" >Lisa\u00fclesanne 1 [W09-3]: Mitmekesi kinno<\/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\/laborid\/pr1-et\/pr1et9-maatriksid\/#Lisaulesanne_2_W09-4_Ostukinnitus\" >Lisa\u00fclesanne 2 [W09-4]: Ostukinnitus<\/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\/pr1et9-maatriksid\/#Programmi_naide\" >Programmi n\u00e4ide<\/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-16\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/pr1et9-maatriksid\/#Parast_tundi_peaksid_oskama_jargmist\" >P\u00e4rast tundi peaksid oskama j\u00e4rgmist<\/a><\/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\/pr1et9-maatriksid\/#Taiendavat_materjali\" >T\u00e4iendavat materjali<\/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 href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/slaidid-et\/09_Maatriksid.pdf\"><strong>Maatriksid<\/strong><\/a><\/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. Teisele \u00fclesandele on pakutud kaks lisa\u00fclesannet.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Ulesanne_1_W09-1_Maatriksist_tulemuste_leidmine\"><\/span>\u00dclesanne 1 [W09-1]: Maatriksist tulemuste leidmine<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Selle \u00fclesande raames harjutame maatriksis nagiveerimist ja sealt tulemuste leidmist. Selleks tuleb lahendada kokku neli erinevat alam\u00fclesannet. \u00dclesanne tuleb ette n\u00e4idata kasutades voo suunamist etteantud sisendandmete failiga.<\/p>\n<p>\u00dclesandega alustamiseks lae alla j\u00e4rgnevad l\u00e4htefailid<\/p>\n<ul>\n<li>Aluskood: <strong><a href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/aluskoodid\/9_1_matrix_starter.c\">https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/aluskoodid\/9_1_matrix_starter.c<\/a><\/strong><\/li>\n<li>Sisendfail voo suunamisega kasutamiseks: <strong><a href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/aluskoodid\/9_1_matrix.txt\">https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/aluskoodid\/9_1_matrix.txt<\/a><\/strong><\/li>\n<\/ul>\n<h5><span class=\"ez-toc-section\" id=\"Nouded\"><\/span>N\u00f5uded<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<ul>\n<li>\u00dclesande jaoks on sulle antud aluskood ja tekstifail sisendiga<\/li>\n<li>Programmi jooksuta kasutades voo suunamist<\/li>\n<li>Lisa programmi algse maatriksi v\u00e4ljatr\u00fckk. V\u00e4ljatr\u00fckk peab olema joondatud samamoodi nagu n\u00e4idisel.<\/li>\n<li>Leia j\u00e4rgnevad tulemused\n<ul>\n<li>Sisestatud rea ja veeru asukohal asuv element<\/li>\n<li>Peadiagonaalil paiknevate negatiivsete arvude summa<\/li>\n<li>K\u00f5rvaldiagonaali kohal (k\u00f5rvaldiagonaalist k\u00f5rgemal) paiknevate positiivsete arvude korrutis<\/li>\n<li>Iga rea suurim arv<\/li>\n<\/ul>\n<\/li>\n<li>K\u00f5ik olulised andmed (maatriks, tulemused) tuleb salvestada t\u00e4isarvulistesse andmet\u00fc\u00fcpidesse.\u00a0 Reaalarvulised andmet\u00fc\u00fcbid nagu <span class=\"lang:c highlight:0 decode:true crayon-inline \">float<\/span> , <span class=\"lang:c highlight:0 decode:true crayon-inline\">double<\/span> \u00a0<strong>ei ole lubatud<\/strong>.<\/li>\n<li>K\u00f5ik t\u00e4isarvulised muutujad, mis sisaldavad andmeid v\u00f5i tulemusi, peavad olema m\u00e4\u00e4ratud biti t\u00e4psusega. Andmet\u00fc\u00fcbid nagu <span class=\"lang:c highlight:0 decode:true crayon-inline \">short<\/span> , <span class=\"lang:c highlight:0 decode:true crayon-inline \">int<\/span>\u00a0, <span class=\"lang:default highlight:0 decode:true crayon-inline \">long<\/span>\u00a0 ja <span class=\"lang:default highlight:0 decode:true crayon-inline \">long long<\/span>\u00a0 <strong>ei ole lubatud.<\/strong><\/li>\n<li>Lahendus peab olema \u00fchilduv erinevatel platvormidel. Formaadid nagu <span class=\"lang:c highlight:0 decode:true crayon-inline \">%hd<\/span>\u00a0,\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline \">%ld<\/span>\u00a0 ja <span class=\"lang:c highlight:0 decode:true crayon-inline \">%lld<\/span>\u00a0 <strong>ei ole lubatud<\/strong><\/li>\n<li>\u00dclesande raames tuleb sul luua n\u00f5utud funktsioonid. Loetelu nendest on kirjeldatud j\u00e4rgnevas punktis.<\/li>\n<\/ul>\n<h5><span class=\"ez-toc-section\" id=\"Too_kaik\"><\/span>T\u00f6\u00f6 k\u00e4ik<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<ol>\n<li>Alusta maatriksi lugemisest funktsioonis <span class=\"lang:c highlight:0 decode:true crayon-inline \">ReadMatrix()<\/span>\u00a0. Funktsioon on suuresti ette antud, sul tuleb vaid l\u00f5petada <span class=\"lang:c highlight:0 decode:true crayon-inline \">scanf()<\/span>\u00a0 lause, sisestades \u00f5ige andmeformaadi. Andmeformaat peab p\u00e4rinema <span class=\"lang:c highlight:0 decode:true crayon-inline \">inttypes.h<\/span>\u00a0 formaadist, st algama t\u00e4htedega.\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">SCN<\/span><\/li>\n<li>Veendumaks, et arvud said loetud, tr\u00fcki maatriks v\u00e4lja.\u00a0 Funktsiooni <span class=\"lang:c highlight:0 decode:true crayon-inline \">PrintMatrix()<\/span>\u00a0 protot\u00fc\u00fcp on antud, realiseeri see. \u00c4ra unusta kasutada sobilikku formaati joonduseks.<\/li>\n<li>Lisa andmefaili 2 numbrit, mis t\u00e4histavad rea ja veeru numbrit (vahemikus 1 &#8230; 7)<\/li>\n<li>K\u00fcsi kasutajalt rea ja veeru number. Selleks loo \u00fcks funktsioon, mis k\u00fcsib kasutajalt arvu lubatud vahemikus min &#8230; max. Nii min kui max peavad olema antud parameetritena. Korduvkasuta funktsiooni lugemaks nii rea kui veeru v\u00e4\u00e4rtus.<br \/>\nVihje: sul on selline funktsioon juba olemas varasemast praktikumist.<\/li>\n<li>Loo funktsioon, mis leiab ja tagastab peadiagonaalil olevate negatiivsete arvude summa. Funktsiooni <span class=\"lang:c highlight:0 decode:true crayon-inline\">GetMainDiagonalNegSum()<\/span>\u00a0\u00a0protot\u00fc\u00fcp on sulle juba antud. Tulemus tr\u00fcki v\u00e4lja <span class=\"lang:c highlight:0 decode:true crayon-inline \">main()<\/span>\u00a0 funktsioonis.<br \/>\n<strong>NB! Ettevaatust liiasustega!\u00a0<\/strong>Kirjuta endale \u00fcles mis indeksitel peadiagonaali arvud asuvad! Meie 7 x 7 maatriksi puhul on nendeks vaid 7 arvu &#8211; st k\u00e4ia l\u00e4bi k\u00f5ik 49 arvu ei ole sobilik. Kui see oleks nt 1000 x 1000 maatriks, oleks miljonist arvust vaid 1000 kasulik &#8211; st 99,9% t\u00fchja t\u00f6\u00f6d 0,1% oluliste arvude leidmiseks. Funktsioonil puuduvad k\u00f5rvalm\u00f5jud!<\/li>\n<li>Loo funktsioon, mis leiab ja tagastab k\u00f5rvaldiagonaali kohal (\u00fclevalpool k\u00f5rvaldiagonaalist) paiknevate positiivsete arvude korrutise. Korrutis tagasta <span class=\"lang:c highlight:0 decode:true crayon-inline \">main()<\/span>\u00a0 funktsiooni, kus selle ka v\u00e4ljastad. Funktsioonil puuduvad k\u00f5rvalm\u00f5jud!<\/li>\n<li>Leia rea-kaupa suurimad arvud. Disain on sinu enda otsustada. K\u00f5rvalm\u00f5jud on lubatud, tulemused v\u00f5ib v\u00e4ljastada soovi korral funktsiooni sees. V\u00f5id lisada ka m\u00f5ne t\u00e4iendava abifunktsiooni.<\/li>\n<\/ol>\n<h5><span class=\"ez-toc-section\" id=\"Vihjeid\"><\/span>Vihjeid<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<ul>\n<li>V\u00e4ljastusel saad kasutada sama ts\u00fcklite struktuuri nagu andmete lugemisel. Seal on 2 olulist n\u00fcanssi\n<ul>\n<li>T\u00e4isarvudele peab olema piisavalt ruumi, et need joonduksid ka negatiivsete arvude korral<\/li>\n<li>Reavahetus peab paikenam sobilikus kohas &#8211; m\u00f5tle mis eesm\u00e4rk on sisemisel ja mis v\u00e4limisel ts\u00fcklil. L\u00e4htuvalt sellest paiguta oma reavahetus.<\/li>\n<\/ul>\n<\/li>\n<li>Peadiagonaalil liikumisel vaata nii rea kui veeruindeksi v\u00e4\u00e4rtust. Need on samad! J\u00e4relikult topelt-ts\u00fckleid siin vaja ei ole! Ka tingimust <span class=\"lang:c highlight:0 decode:true crayon-inline \">(i == j)<\/span>\u00a0 pole vaja &#8211; isegi muutuja j oleks siinpuhul liiane! <strong>Massiivi indekseerimisel on vaid oluline, et muutuja v\u00e4\u00e4rtus oleks sobilik!<\/strong><\/li>\n<li>Kui korrutis pole ootusp\u00e4rane, siis alusta sellest, et tr\u00fckid v\u00e4lja j\u00e4rjest korrutise v\u00e4\u00e4rtuse p\u00e4rast igat korrutamist &#8211; st paned oma <span class=\"lang:c highlight:0 decode:true crayon-inline \">if<\/span>\u00a0 lause sisse ka <span class=\"lang:c highlight:0 decode:true crayon-inline \">printf()<\/span>\u00a0 lause, et n\u00e4ha jooksvat korrutise v\u00e4\u00e4rtust.<\/li>\n<li>Suurima v\u00e4\u00e4rtuse leidmiseks reas saad kasutada varasemas praktikumis tehtud funktsiooni. Pead seda vaid sobilikult v\u00e4lja kutsuma. Maatriksist \u00fche rea v\u00e4lja valimiseks saame defineerida maatriksi esimese ehk reaindeksi. Nt <span class=\"lang:c decode:true crayon-inline\">GetMaxValue(matrix[rowIndex], rowLength)<\/span><\/li>\n<\/ul>\n<h5><span class=\"ez-toc-section\" id=\"Testimine\"><\/span>Testimine<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>V\u00f5rdle oma tulemust allolevaga nende \u00f5igsuses veendumiseks!<\/p>\n<pre class=\"toolbar:2 lang:default highlight:0 decode:true\">Sisestatud maatriks:\r\n   10    9    8    0  -10    8    5\r\n    7    6    9    1   -7   -9    4\r\n   -5    5   -5    5   -5    5   -5\r\n    8    7    6    5    4    3    2\r\n    1    2    3    4    5    6    7\r\n   -1   -2   -3   -4   -3   -2   -1\r\n    0    0    0    0    0    0    0\r\n\r\nSisestatud rea v\u00e4\u00e4rtusel (2) ning veeru v\u00e4\u00e4rtusel (3) on arv 9\r\nPeadiagonaali negatiivsete elementide summa on -7\r\nKorvaldiagonaali kohal olevate positiivsete arvude korrutis on 36578304000\r\n1 rea suurim oli 10\r\n2 rea suurim oli 9\r\n3 rea suurim oli 5\r\n4 rea suurim oli 8\r\n5 rea suurim oli 7\r\n6 rea suurim oli -1\r\n7 rea suurim oli 0\r\n<\/pre>\n<h4><span class=\"ez-toc-section\" id=\"Ulesanne_2_W09-2_Kinosaal\"><\/span>\u00dclesanne 2 [W09-2]: Kinosaal<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Meile on antud kinosaali plaan, mis on kujutatud 2-m\u00f5\u00f5tmelise maatriksina. Sinu peamiseks \u00fclesandeks on v\u00e4\u00e4rtuste t\u00f5lgendamine antud maatriksist.<\/p>\n<p>K\u00f5ik istekohad on kodeeritud j\u00e4rgnevate t\u00e4isarvuliste numbritega:<\/p>\n<ul>\n<li>0 &#8211; istekoht puudub<\/li>\n<li>1 &#8211; istekoht on vaba<\/li>\n<li>2 &#8211; istekoht on h\u00f5ivatud<\/li>\n<\/ul>\n<p>Maatriksis positsioonil (0, 0) asub saali \u00fclemine vasak istekoht.<\/p>\n<p>Lae alla kinosaali algv\u00e4\u00e4rtustatud maatriks: <strong><a href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/aluskoodid\/9_2_cinema_starter.c\">https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/aluskoodid\/9_2_cinema_starter.c<\/a><\/strong><\/p>\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>Kuva saali plaan. Programmi v\u00e4ljund peab olema samasugune nagu etteantud n\u00e4idistel, sh\n<ul>\n<li>Vasakul \u00e4\u00e4res on rea numbrid.<\/li>\n<li>K\u00f5ik read algavad esimesest istekohast, kuid arvestada tuleb, et saal on eest kitsenev (vt n\u00e4ide)<\/li>\n<li>Ekraani asukoht on n\u00e4idatud<\/li>\n<li>Vabad istekohad kuvatakse numbritena<\/li>\n<li>H\u00f5ivatud istekohad kuvatakse suure X t\u00e4hena<\/li>\n<li>Puuduvaid istekohti ei kuvata<\/li>\n<\/ul>\n<\/li>\n<li>K\u00fcsi kasutajalt soovitud istekoht ning v\u00e4ljasta, kas koht eksisteerib, on vaba v\u00f5i on h\u00f5ivatud.<\/li>\n<li>Minimaalselt loo 2 funktsiooni peale main funktsiooni. \u00dcks saaliplaani kuvamiseks, teine istekoha saadavuse kontrolliks. V\u00f5id julgelt ka rohkem funktsioone luua.<\/li>\n<\/ul>\n<h5><span class=\"ez-toc-section\" id=\"Toovoo_soovitus\"><\/span>T\u00f6\u00f6voo soovitus<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<ol>\n<li>Prindi saaliplaan tavalise maatriksina. \u00c4ra veel v\u00e4ljundit kohandama hakka.\u00a0 Veendu, et saad numbrid k\u00e4tte ja vormindatud.<\/li>\n<li>N\u00fc\u00fcd hakka v\u00e4ljundit kohandama (t\u00f5lgendama maatriksis olevaid v\u00e4\u00e4rtusi korrektselt). Loo tingimuslause, mille abiga tuvastada, kui koht maatriksis puudub ja v\u00e4ljasta &#8220;t\u00fchjus&#8221; seal oleva numbri asemel.<\/li>\n<li>Seej\u00e4rel j\u00e4tka teiste kodeeritud v\u00e4\u00e4rtuste t\u00f5lgendamist ja visuaali loomist.<\/li>\n<li>Kui saaliplaan on valmis, prindi saaliplaani k\u00f5rvale rea numbrid.<\/li>\n<li>K\u00fcsi kasutajalt tema soovitud istekoha asukoht.\u00a0 Kontrolli, et v\u00e4\u00e4rtused oleksid &#8220;m\u00f5istusep\u00e4rased&#8221; (nn\u00a0<em>sanity check).<\/em><\/li>\n<li>Rea numbri maatriksis saad v\u00e4lja arvutada koheselt. Tulba numbri leidmiseks pead arvestama ka puuduvate istekohtadega.<\/li>\n<li><strong>V\u00e4ljasta maatriksis leitud indeksid veendumaks, et leidsid \u00f5ige asukoha!<\/strong><\/li>\n<li>N\u00fc\u00fcd l\u00f5peta \u00fclej\u00e4\u00e4nud programm.<\/li>\n<\/ol>\n<h5><span class=\"ez-toc-section\" id=\"Vihjeid-2\"><\/span>Vihjeid<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<ul>\n<li>Saali plaan on peegeldatud kujul v\u00f5rreldes massiivi tegelike indeksitega. Abiks v\u00f5ib olla, kui joonistad endale v\u00e4lja ja m\u00e4rgid \u00e4ra esimese ja viimase rea asukohad.\n<ul>\n<li>Rida 14 asub massiivis indeksiga 0<\/li>\n<li>Rida 1 asub massiivis indeksiga 13<\/li>\n<li>Istekoha kontrollis tr\u00fcki v\u00e4lja massiivi indeksite v\u00e4\u00e4rtused (pildil rida algusega DEBUG)<\/li>\n<\/ul>\n<\/li>\n<li>Kasuta istekohtade loendamiseks eraldi loendurit.<\/li>\n<li>Sellist kodeeritud t\u00e4isarvu on hea lahendada kasutades <span class=\"lang:default highlight:0 decode:true crayon-inline\">switch()<\/span>\u00a0 lauset.<\/li>\n<\/ul>\n<h5><span class=\"ez-toc-section\" id=\"Programmi_testimine_ja_naide\"><\/span><strong>Programmi testimine ja n\u00e4ide<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>NB! N\u00e4idistel on kasutatud ka v\u00e4rve, seda sinu lahenduses olema ei pea (kuid v\u00f5ib \ud83d\ude42 )<\/p>\n<p>N\u00e4idises on samuti lisatud silumiseks DEBUG rida, kus kuvatakse massiivi asukoht, kust istekohta otsiti. Sedasi on lihtsam oma programmi \u00f5igsust kontrollida.<\/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 pildi n\u00e4gemiseks<\/div><div class=\"su-spoiler-content su-u-clearfix su-u-trim\"><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2020\/10\/cinema_basic.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-7632 size-full\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2020\/10\/cinema_basic.png\" alt=\"\" width=\"670\" height=\"1229\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2020\/10\/cinema_basic.png 670w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2020\/10\/cinema_basic-164x300.png 164w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2020\/10\/cinema_basic-558x1024.png 558w\" sizes=\"auto, (max-width: 670px) 100vw, 670px\" \/><\/a><\/p>\n<\/div><\/div>\n<h4><span class=\"ez-toc-section\" id=\"Lisaulesanne_1_W09-3_Mitmekesi_kinno\"><\/span>Lisa\u00fclesanne 1 [W09-3]: Mitmekesi kinno<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Lisame v\u00f5imaluse kasutajal osta mitu piletit korraga.<\/p>\n<ul>\n<li>Kasutaja saab sisestada soovitud piletite arvu<\/li>\n<li>K\u00f5ik istekohad peavad paiknema k\u00f5rvuti, samas reas<\/li>\n<li>L\u00e4htepunktiks on kasutaja sisestatud istekoht. T\u00e4iendavad kohad v\u00f5ivad paikneda sellest nii vasakul kui paremal pool (sh m\u00f5lemal pool korraga).<\/li>\n<li>Kuva kasutajale pakutavad istekohad.<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"Lisaulesanne_2_W09-4_Ostukinnitus\"><\/span>Lisa\u00fclesanne 2 [W09-4]: Ostukinnitus<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Lisame kasutajale v\u00f5imaluse \u00fcmber m\u00f5elda oma piletiostu soovi.<\/p>\n<ul>\n<li>Selle \u00fclesande eelduseks on esimese lisa\u00fclesande lahendus.<\/li>\n<li>P\u00e4rast istekohtade pakkumist tuleb kasutajalt k\u00fcsida kinnitust, kas ta soovib pakutavaid istekohti.<\/li>\n<li>Kui kasutaja keeldub pakutavatest kohtadest v\u00f5i ei olnud v\u00f5imalik soovitud asukohas istekohti pakkuda, kuvatakse kasutajale uuesti saali plaan ning pakutakse talle v\u00f5imalust uuesti istekohti valida<\/li>\n<\/ul>\n<p><strong>Vihje:<\/strong> Algses maatriksis on pakutud v\u00e4lja 3 kodeeritud v\u00e4\u00e4rtust. V\u00f5id neid soovi korral lisada. Alternatiivina saad teha algsest maatriksist koopia.<\/p>\n<h5><span class=\"ez-toc-section\" id=\"Programmi_naide\"><\/span>Programmi n\u00e4ide<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>N\u00e4ide on koostatud p\u00e4rast m\u00f5lema lisa\u00fclesande lahendamist.<\/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 pildi n\u00e4gemiseks<\/div><div class=\"su-spoiler-content su-u-clearfix su-u-trim\">\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2020\/10\/cinema_adv.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7633\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2020\/10\/cinema_adv.png\" alt=\"\" width=\"677\" height=\"2198\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2020\/10\/cinema_adv.png 677w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2020\/10\/cinema_adv-92x300.png 92w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2020\/10\/cinema_adv-315x1024.png 315w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2020\/10\/cinema_adv-473x1536.png 473w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2020\/10\/cinema_adv-631x2048.png 631w\" sizes=\"auto, (max-width: 677px) 100vw, 677px\" \/><\/a><\/p>\n<\/div><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Parast_tundi_peaksid_oskama_jargmist\"><\/span><strong>P\u00e4rast tundi peaksid oskama j\u00e4rgmist<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Peaksid oskama erineva pikkusega arve kasutada koodis, sh 64-bitist t\u00e4isarvu.<\/li>\n<li>M\u00f5istma, mis hetkel t\u00e4isarvu \u00fclet\u00e4itumised juhtuvad koodis<\/li>\n<li>Olema suuteline visualiseerima kahedimensioonilist massiivi (maatriksit)<\/li>\n<li>Suutma deklareerida ja indekseerida kahedimensioonilist massiivi<\/li>\n<li>Suutma indekseerida kindlaid osi kahedimensioonilisest massiivist (nt esimene v\u00f5i viimane rida, kolm esimest rida, teine element kolmandast reast jne)<\/li>\n<li>M\u00f5istma ja olema suuteline kasutama maatriksi diagonaalide omadusi<\/li>\n<li>Suutma k\u00e4ia maatriksit l\u00e4bi nii rida-rea haaval kui ka veerg-veeru haaval.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Taiendavat_materjali\"><\/span><strong>T\u00e4iendavat materjali<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"http:\/\/www.cplusplus.com\/reference\/climits\/\">http:\/\/www.cplusplus.com\/reference\/climits\/<\/a><\/li>\n<li><a href=\"http:\/\/www.cplusplus.com\/reference\/cinttypes\/\">http:\/\/www.cplusplus.com\/reference\/cinttypes\/<\/a><\/li>\n<li><a href=\"http:\/\/www.cplusplus.com\/reference\/cstdint\/\">http:\/\/www.cplusplus.com\/reference\/cstdint\/<\/a><\/li>\n<li>Adding Color to Your Output From C<br \/>\n<a href=\"https:\/\/www.theurbanpenguin.com\/4184-2\/\">https:\/\/www.theurbanpenguin.com\/4184-2\/<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Praktikumi materjal Slaidid: Maatriksid Esitamisele kuuluvad \u00fclesanded Selles praktikumis on kaks \u00fclesannet. Teisele \u00fclesandele on pakutud kaks lisa\u00fclesannet. \u00dclesanne 1 [W09-1]: Maatriksist tulemuste leidmine Selle \u00fclesande raames harjutame maatriksis nagiveerimist ja sealt tulemuste leidmist. Selleks tuleb lahendada kokku neli erinevat alam\u00fclesannet. \u00dclesanne tuleb ette n\u00e4idata kasutades voo suunamist etteantud sisendandmete failiga. \u00dclesandega alustamiseks lae alla &hellip; <a href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/pr1et9-maatriksid\/\" class=\"more-link\">Loe edasi <span class=\"screen-reader-text\">PR1ET9: maatriksid<\/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-5510","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\/5510","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=5510"}],"version-history":[{"count":20,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/posts\/5510\/revisions"}],"predecessor-version":[{"id":10879,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/posts\/5510\/revisions\/10879"}],"wp:attachment":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/media?parent=5510"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/categories?post=5510"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/tags?post=5510"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}