{"id":5393,"date":"2020-09-14T17:18:47","date_gmt":"2020-09-14T15:18:47","guid":{"rendered":"https:\/\/blue.pri.ee\/ttu\/?p=5393"},"modified":"2025-10-01T12:14:32","modified_gmt":"2025-10-01T10:14:32","slug":"pr1et5-massiivid","status":"publish","type":"post","link":"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/pr1et5-massiivid\/","title":{"rendered":"PR1ET5: Massiivid"},"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\/pr1et5-massiivid\/#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\/pr1et5-massiivid\/#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\/pr1et5-massiivid\/#Ulesanne_1_osa_1_W05-1_Ekstreemumite_leidmine\" >\u00dclesanne 1 osa 1 [W05-1]: Ekstreemumite 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\/pr1et5-massiivid\/#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\/pr1et5-massiivid\/#Ulesande_lahendamise_juhend\" >\u00dclesande lahendamise juhend<\/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\/pr1et5-massiivid\/#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-7\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/pr1et5-massiivid\/#Ulesanne_1_osa_2_W05-2_asukohtade_ja_korduste_arvu_leidmine\" >\u00dclesanne 1 osa 2 [W05-2]: asukohtade ja korduste arvu leidmine<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/pr1et5-massiivid\/#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-9\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/pr1et5-massiivid\/#Ulesande_lahendamise_juhend-2\" >\u00dclesande lahendamise juhend<\/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\/pr1et5-massiivid\/#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-11\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/pr1et5-massiivid\/#Lisaulesanne_1_W05-3_Tulemuste_leidmine_massiivist\" >Lisa\u00fclesanne 1 [W05-3]: Tulemuste leidmine massiivist<\/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\/pr1et5-massiivid\/#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\/pr1et5-massiivid\/#Testimine-3\" >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\/pr1et5-massiivid\/#Lisaulesanne_2_W05-4_n-arvu_sisestus\" >Lisa\u00fclesanne 2 [W05-4]: n-arvu sisestus<\/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\/pr1et5-massiivid\/#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\/pr1et5-massiivid\/#Testimine-4\" >Testimine<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/pr1et5-massiivid\/#Parast_tundi_peaksid\" >P\u00e4rast tundi peaksid<\/a><\/li><\/ul><\/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\/pr1et5-massiivid\/#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><strong><a href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-i\/koodinaited\/math-h-teek\/\">Math.h teegi tutvustus<\/a><\/strong>\n<ul>\n<li>T\u00fc\u00fcbiteisendused<\/li>\n<li>Ujukomaarvu t\u00e4psuse probleem<\/li>\n<\/ul>\n<\/li>\n<li>Slaidid: <a href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/slaidid-et\/05_Massiivid.pdf\"><strong>Massiivid<\/strong><\/a><\/li>\n<li>T\u00e4iendav n\u00e4ide: <strong><a href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-i\/koodinaited\/distantsi-teisendaja-massiivid-ja-funktsioonid\/\">distantsi teisendaja<\/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>Selle n\u00e4dala tunnit\u00f6\u00f6 on jupitatud kaheks osaks. Alguses lahenda esimene osa ja esita oma lahendus. Seej\u00e4rel laienda lahendust teise osaga ning esita oma lahendus uuesti.\u00a0 Baas\u00fclesandele on sel korral pakutud 2 laiendavat lisa\u00fclesannet.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Ulesanne_1_osa_1_W05-1_Ekstreemumite_leidmine\"><\/span><span id=\"Ulesanne_1_Paarsuse_kontroll_baasulesanne\" class=\"ez-toc-section\"><\/span>\u00dclesanne 1 osa 1 [W05-1]: Ekstreemumite leidmine<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u00dclesande esimene osa on tunnis tehtud UML tegevusdiagrammi realisatsioon C programmikoodina. Esimeses osas pead sa kokku looma 4 funktsiooni lisaks <span class=\"lang:c highlight:0 decode:true crayon-inline \">main()<\/span>\u00a0 funktsioonile!<\/p>\n<p><strong>Lae alla \u00fclesande aluskood: <a style=\"cursor: pointer !important; user-select: none !important;\" href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/aluskoodid\/5_minmax_template.c\">https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/aluskoodid\/5_minmax_template.c<\/a><\/strong><\/p>\n<h5><span class=\"ez-toc-section\" id=\"Nouded\"><\/span><strong>N\u00f5uded<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h5>\n<ul>\n<li>Esimene \u00fclesande osa peab loogilisel tasemel vastama tunnis tehtud UML tegevusdiagramile<\/li>\n<li>\u00dclesande lahendamiseks pead looma 4 funktsiooni. Funktsioonid on aluskoodis kirjeldatud kommentaaridena. Kirjuta oma funktsioon kohe kommentaari j\u00e4rgi. Lisa puuduvad elemendid nagu makrod, muutujate deklaratsioonid, funktsioonide protot\u00fc\u00fcbid ja v\u00e4ljakutsed.<\/li>\n<li>Klaviatuurilt loetakse 6 t\u00e4isarvu, mis salvestatakse massiivi.<\/li>\n<li>Sisestuse kulg peab olema kasutajale arusaadav, n\u00e4idates mitmendat arvu parasjagu sisestatakse ning mitu arvu kokku kasutajalt oodatakse<\/li>\n<li>Massiivist leitakse ja v\u00e4ljastatakse suurim sisestatud arv. Tulemus tuleb leida funktsioonis ning tagastada. Tulemuse v\u00e4ljastus toimub main() funktsioonis<\/li>\n<li>Massiivist leitakse ja v\u00e4ljastatakse v\u00e4him sisestatud arv. Tulemus tuleb leida funktsioonis ning tagastada. Tulemuse v\u00e4ljastus toimub main() funktsioonis<\/li>\n<li>V\u00e4ljasta eraldi funktsioonis k\u00f5ik sisestatud massiivi liikmed<\/li>\n<\/ul>\n<h5><span class=\"ez-toc-section\" id=\"Ulesande_lahendamise_juhend\"><\/span>\u00dclesande lahendamise juhend<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>NB! Enne funktsioonide loomist loe l\u00e4bi aluskoodis olev funktsiooni kirjeldus ja veendu, et saad sellest aru (st mida funktsioon teeb, mis on selle parameetrid ja kas ning mida see funktsioon tagastab). Iga funktsioon tuleb realiseerida ettekirjutatud funktsiooni kommentaari j\u00e4rel.<\/p>\n<ol>\n<li>Alusta funktsiooni\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">ReadIntArray()<\/span> \u00a0lahendamisest. See on esimene funktsioon kohe p\u00e4rast main() funktsiooni. Selleks kirjuta ts\u00fckkel, mille igal kordusel k\u00fcsitakse kasutajalt v\u00e4\u00e4rtus, mis salvestatakse massiivi.<\/li>\n<li>Testimaks, kas see t\u00f6\u00f6tab, pead selle funktsiooni v\u00e4lja kutsuma. Selleks pead esmalt deklareerima massiivi, kus arve hoida. Seej\u00e4rel kutsu funktsioon\u00a0 <span class=\"lang:c highlight:0 decode:true crayon-inline\">ReadIntArray()<\/span>\u00a0 v\u00e4lja, andes talle kaasa loodud massiiv ning selle pikkus.<br \/>\nEeldusel, et pikkust kirjeldav makro nimi on <span class=\"lang:c highlight:0 decode:true crayon-inline \">NUM_CNT<\/span> ja massiivi nimi on <span class=\"lang:c highlight:0 decode:true crayon-inline \">numbers<\/span>\u00a0, v\u00f5iks selle funktsiooni v\u00e4ljakutse n\u00e4ha v\u00e4lja midagi sarnast: <span class=\"lang:c highlight:0 decode:true crayon-inline\">ReadIntArray(numbers, NUM_CNT);<\/span> \u00a0Proovi n\u00fc\u00fcd, kas massiivi arvude lugemine toimis.<\/li>\n<li>Veendumaks, et numbrid ka korrektselt loetud said, peaksid massiivi sisu v\u00e4lja tr\u00fckkima. Selleks realiseeri funktsioon <span class=\"lang:c highlight:0 decode:true crayon-inline \">PrintArray()<\/span>\u00a0\u00a0 ja kutsu see v\u00e4lja main() funktsioonist. Sel korral pead tagastuse t\u00fc\u00fcbi ja parameetrid ise valima. Kui funktsioon tehtud ja v\u00e4lja kutsutud, peaksid n\u00e4gema oma massiivi sisestatud numbreid.<\/li>\n<li>N\u00fc\u00fcd tuleb sul veel viimased kaks funktsiooni l\u00f5petada. M\u00f5lemad on kirjeldatud kommentaaridena aluskoodis. L\u00f5peta funktsioonid ja v\u00e4ljasta tulemused.<br \/>\n<strong>NB! min ja max v\u00e4\u00e4rtusi leidvatel funktsioonidel ei tohi olla k\u00f5rvalm\u00f5jusid, tulemused v\u00e4ljasta main() funktsioonis.\u00a0<\/strong><\/li>\n<\/ol>\n<h5><span class=\"ez-toc-section\" id=\"Testimine\"><\/span>Testimine<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p><strong>Test 1:<\/strong> min esimene, max viimane<\/p>\n<pre class=\"theme:cisco-router toolbar:2 nums:false lang:default highlight:0 decode:true\" title=\"Sample 1: Min ind 0\">Enter number 1 \/ 6: 1\r\nEnter number 2 \/ 6: 2\r\nEnter number 3 \/ 6: 3\r\nEnter number 4 \/ 6: 4\r\nEnter number 5 \/ 6: 5\r\nEnter number 6 \/ 6: 6\r\n\r\nEntered numbers:\r\n1 2 3 4 5 6\r\n\r\nMin value is 1\r\nMax value is 6<\/pre>\n<p><strong>Test 2:<\/strong> min viimane, max esimene<\/p>\n<pre class=\"theme:cisco-router toolbar:2 nums:false lang:default highlight:0 decode:true\" title=\"Sample 2: max is ind 0\">Enter number 1 \/ 6: 6\r\nEnter number 2 \/ 6: 5\r\nEnter number 3 \/ 6: 4\r\nEnter number 4 \/ 6: 3\r\nEnter number 5 \/ 6: 2\r\nEnter number 6 \/ 6: 1\r\n\r\nEntered numbers:\r\n 6 5 4 3 2 1 \r\n\r\nMin value is 1\r\nMax value is 6<\/pre>\n<p><strong>Test 3:<\/strong> Negatiivne min. Min ja max on massiivi keskel.<\/p>\n<pre class=\"theme:cisco-router toolbar:2 nums:false lang:default highlight:0 decode:true\" title=\"Sample 2: min and max in the middle\">Enter number 1 \/ 6: 1\r\nEnter number 2 \/ 6: 2\r\nEnter number 3 \/ 6: 3\r\nEnter number 4 \/ 6: 4\r\nEnter number 5 \/ 6: -933\r\nEnter number 6 \/ 6: 1\r\n\r\nEntered numbers:\r\n1 2 3 4 -933 1\r\n\r\nMin value is -933\r\nMax value is 4<\/pre>\n<h4><span class=\"ez-toc-section\" id=\"Ulesanne_1_osa_2_W05-2_asukohtade_ja_korduste_arvu_leidmine\"><\/span>\u00dclesanne 1 osa 2 [W05-2]: asukohtade ja korduste arvu leidmine<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u00dclesande esimeses osas leidsid massiivist ekstreemv\u00e4\u00e4rtused. Teises osas tuleb leida nende positsioonid ning mitu korda v\u00e4\u00e4rtused massiivis esinesid.<\/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 k\u00f5ik positsioonid, kus asus massiivi suurim v\u00e4\u00e4rtus. Tulemus v\u00e4ljastatakse funktsiooni sees, mis positsioone leiab.<\/li>\n<li>Kuva k\u00f5ik positsioonid, kus asus massiivi v\u00e4him v\u00e4\u00e4rtus. Tulemus v\u00e4ljastatakse funktsiooni sees, mis positsioone leiab.<\/li>\n<li>Kuva, mitu korda suurim ja v\u00e4him v\u00e4\u00e4rtus massiivis eksisteerib. Tulemus tuleb leida eraldi funktsioonis, tagastada ning seej\u00e4rel v\u00e4ljastada <span class=\"lang:c highlight:0 decode:true crayon-inline \">main()<\/span>\u00a0 funktsioonis.<\/li>\n<li>Kuvatavad positsioonid peavad olema vastavuses sisestusega.<\/li>\n<li>K\u00f5igil funktsioonidel su koodis peavad olema funktsiooni kommentaarid (st funktsioonile eelnev kommentaar)<\/li>\n<\/ul>\n<h5><span class=\"ez-toc-section\" id=\"Ulesande_lahendamise_juhend-2\"><\/span>\u00dclesande lahendamise juhend<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Selle osa lahendamiseks pead looma kokku kaks funktsiooni. M\u00f5lemad funktsioonid on kirjeldatud funktsiooni kommentaaridena. Kopeeri funktsiooni kommentaar enda koodi ja kirjuta lahendus selle j\u00e4rel<\/p>\n<p>Esimene funktsioon v\u00e4ljastab eelnevalt leitud ekstreemumv\u00e4\u00e4rtuse k\u00f5ik asukohad massiivis. Selle lahendamiseks pead looma ts\u00fckli, mis k\u00e4ib l\u00e4bi k\u00f5ik massiivi liikmed. Iga kord, kui massiivi liikme v\u00e4\u00e4rtus on sama kui sinu otsitav (nt minimaalne v\u00e4\u00e4rtus massiivis), pead v\u00e4ljastama ekraanile oma praeguse asukoha ts\u00fcklis (ts\u00fckli praeguse korduse v\u00e4\u00e4rtus on seotud massiivi positsiooniga). St kogu funktsioon sisaldab \u00fchte ts\u00fcklit, \u00fchte tingimuslauset ja \u00fchte v\u00e4ljastuslauset &#8211; ongi k\u00f5ik.<\/p>\n<p><strong>Loodavat funktsiooni pead <span style=\"color: #ff0000;\">korduvkasutama<\/span> (st 2x v\u00e4lja kutsuma) nii minimaalse kui maksimaalse v\u00e4\u00e4rtuse asukohtade kuvamiseks!\u00a0<\/strong>Tulemustele eelnev tekst (nt &#8220;Min value position(s)&#8221;) tuleks v\u00e4ljastada main() funktsioonis, enne selle funktsiooni v\u00e4ljakutset.<\/p>\n<pre class=\"toolbar:2 lang:c highlight:0 decode:true\">\/**\r\n * Description:  Prints all positions of val in the array. Shows positions \r\n *               (starting from 1), instead of indexes. \r\n * \r\n * Parameters:   nums - values that are checked\r\n *               len - length of the array\r\n *               val - value for which the positions will be printed\r\n * \r\n * Return:       -\r\n *\/<\/pre>\n<p>Testi funktsiooni t\u00f6\u00f6d enne lahendamise j\u00e4tkamist!<\/p>\n<p>Teine funktsioon saab olema v\u00e4gagi sarnane eelmisele. Sel korral aga peame\u00a0<strong>loendama<\/strong> (st \u00fchte t\u00e4isarvulist muutujat suurendama sobilikul hetkel) v\u00e4ljastamise asemel. Funktsioon peab oma tulemuse tagastama. Tulemus v\u00e4ljastatakse main() funktsioonis.<\/p>\n<pre class=\"toolbar:2 lang:c highlight:0 decode:true\">\/**\r\n * Description:  Counts the number of times val is present in the array\r\n * \r\n * Parameters:   nums - values that are checked\r\n *               len - length of the array\r\n *               val - value to search for\r\n * \r\n * Return:       number of times val occurred in array\r\n *\/<\/pre>\n<h5><span class=\"ez-toc-section\" id=\"Testimine-2\"><\/span>Testimine<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p><strong>Test 1: min ja max on \u00fchekordsed<\/strong><\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true\" title=\"Sample: min and max single occurrence\">Enter number 1 \/ 6: 10\r\nEnter number 2 \/ 6: 11\r\nEnter number 3 \/ 6: 12\r\nEnter number 4 \/ 6: 13\r\nEnter number 5 \/ 6: 14\r\nEnter number 6 \/ 6: 15\r\n\r\nEntered numbers:\r\n10 11 12 13 14 15\r\n\r\nMin value is 10\r\nMin value position(s): 1\r\nMin value occurred 1 time\r\n\r\nMax value is 15\r\nMax value position(s): 6\r\nMax value occurred 1 time<\/pre>\n<p><strong>Test 2: min ja max korduvad<\/strong><\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true\" title=\"Sample: min and max multiple occurrence\">Enter number 1 \/ 6: 10\r\nEnter number 2 \/ 6: 13\r\nEnter number 3 \/ 6: 12\r\nEnter number 4 \/ 6: 10\r\nEnter number 5 \/ 6: 13\r\nEnter number 6 \/ 6: 13\r\n\r\nEntered numbers: \r\n10 13 12 10 13 13\r\n\r\nMin value is 10\r\nMin value position(s): 1 4\r\nMin value occurred 2 times \r\n\r\nMax value is 13\r\nMax value position(s): 2 5 6\r\nMax value occurred 3 times<\/pre>\n<h4><span class=\"ez-toc-section\" id=\"Lisaulesanne_1_W05-3_Tulemuste_leidmine_massiivist\"><\/span>Lisa\u00fclesanne 1 [W05-3]: Tulemuste leidmine massiivist<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Selles osas leiame kolm t\u00e4iendavat tulemust massiivist<\/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>Loo kolm funktsiooni, vastavalt summa, korrutise ja aritmeetilise keskmise leidmiseks<\/li>\n<li>Aritmeetilise keskmise funktsiooni sisuks ei tohiks olla koopia summa funktsioonist (v\u00e4ldi koodi kopeerimist!). Selle asemel kasuta summa leidmise funktsiooni keskmise leidmise osana.<\/li>\n<li>K\u00f5ik kolm funktsiooni saavad parameetriteks massiivi ja selle pikkuse ning peavad oma tulemused tagastama. Tulemused v\u00e4ljastatakse <span class=\"lang:c highlight:0 decode:true crayon-inline \">main()<\/span>\u00a0 funktsioonis.<\/li>\n<li>Kuva aritmeetiline keskmine kolme komakohaga<\/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>Selle \u00fclesande k\u00f5ige suuremaks komistuskiviks on \u00f5ige aritmeetilise keskmise leidine.<\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true \" title=\"Sample: precision test for avg\">Enter number 1 \/ 6: 1\r\nEnter number 2 \/ 6: 1\r\nEnter number 3 \/ 6: 1\r\nEnter number 4 \/ 6: 1\r\nEnter number 5 \/ 6: 1\r\nEnter number 6 \/ 6: 3\r\n\r\nEntered numbers: \r\n1 1 1 1 1 3\r\n\r\nMin value is 1\r\nMin value position(s): 1 2 3 4 5\r\nMin value occurred 5 times\r\n\r\nMax value is 3\r\nMax value position(s): 6\r\nMax value occurred 1 time\r\n\r\nSum is 8\r\nProduct is 3\r\nArithmetic mean is 1.333<\/pre>\n<h4><span class=\"ez-toc-section\" id=\"Lisaulesanne_2_W05-4_n-arvu_sisestus\"><\/span>Lisa\u00fclesanne 2 [W05-4]: n-arvu sisestus<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Pakkumaks kasutajale veidi kasulikumat programmi, peaks kasutaja saama otsustada mitme numbri pealt ta statistikat soovib leida. Pakume kasutajale v\u00f5imaluse sisestada sisestatavate arvude koguse.<\/p>\n<p>NB! Kuigi suur osa C keele kompilaatoritest toetab muutuva pikkusega massiivide (VLA &#8211; <em>variable length array<\/em>) kasutamist, ei ole see k\u00f5igi C standardite kohustusliku osana. St tugi v\u00f5ib kompilaatoris puududa t\u00e4ielikult)<\/p>\n<p>T\u00e4iendavalt on VLAde puhul ka teisi probleeme &#8211; nt on need sageli aeglasemad kui staatilise suurusega massiivid. VLAd kasutav kood sisaldab rohkem k\u00e4ske, mis omakorda vajab rohkem protsessori ts\u00fckleid (aega) rakenduse jooksutamiseks. Samuti kui \u00fchtegi rangelt n\u00f5utud piirangut ei ole, siis on \u00fcsna lihtne kogu programm kokku jooksutada, andes ette lihtsalt suurema numbri (nt tahan sisestada 1 000 000 numbrit).<\/p>\n<p>Seet\u00f5ttu ei ole sul sel korral lubatud kasutada massiive, mille pikkus on m\u00e4\u00e4ratud teise muutuja kaudu (nt <span class=\"lang:default decode:true crayon-inline\">int numbers[numberCount];<\/span> , kus <span class=\"lang:c highlight:0 decode:true crayon-inline \">numberCount<\/span>\u00a0 on t\u00e4isarvuline muutuja, mis saab oma v\u00e4\u00e4rtuse programmi t\u00f6\u00f6 ajal). Standardis toetatud universaalne lahendus on kasutada d\u00fcnaamilist m\u00e4lu, kuid seda vaatame Programmeerimine 2 aine raames.<\/p>\n<p>Selle \u00fclesande raames peaksid leidma ja m\u00e4\u00e4rama maksimaalse v\u00f5imaliku suuruse, millest kasutaja rohkem numbreid sisestada ei saa. See t\u00e4hendab, et suure t\u00f5en\u00e4osusega j\u00e4\u00e4b suur osa massiivi pesadest kasutama. \u00d5nneks on suurused v\u00e4ikesed, seega m\u00e4rkimisv\u00e4\u00e4rset probleemi see ei tekita meile.<\/p>\n<p>NB! Enamjaolt on selles aines VLAde kasutamine lubatud. Piirang on seatud \u00fclesandep\u00f5hiselt.<\/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>Luba kasutajal p\u00e4rast programmi k\u00e4ivitamist otsustada, mitme numbriga programm t\u00f6\u00f6tab<\/li>\n<li>Piira programmi poolt toetatud numbrite kogust vastavalt loodud massiivi suurusega<\/li>\n<li>Kasutaja poolt sisestuse k\u00fcsimine peab olema teostatud eraldi funktsioonis, mille pead looma selle \u00fclesande jaoks. Funktsioon tohib alles siis tagastada, kui sisestatud number on sobilik\n<ul>\n<li>Kasuta funktsiooni parameetreid lubatud sisestuse vahemiku m\u00e4\u00e4ramiseks<\/li>\n<li>Funktsioon, mille lood, peab olema korduvkasutatav teistes sarnastes situatsioonides (erinev lubatud numbrivahemik)<\/li>\n<\/ul>\n<\/li>\n<li>Numbrite vahemiku v\u00f5id ise otsustada m\u00f5istlikus vahemikus (nt kuni 50 numbrit).<\/li>\n<li>Ebasobiva numbrite arvu korral loo veak\u00e4itumine.<\/li>\n<li>Muutuva pikkusega massiivi (VLA &#8211; <em>variable length array<\/em>) kasutada ei tohi<\/li>\n<li>NB! Vaata \u00fcle ka koodimisstiil! Muutuja ei tohi olla kirjutatud samas stiilis nagu makro (t\u00fc\u00fcpviga)<\/li>\n<\/ul>\n<h5><span class=\"ez-toc-section\" id=\"Testimine-4\"><\/span>Testimine<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Testi hoolikalt kindlasti j\u00e4rgmist<\/p>\n<ul>\n<li>Minimaalne lubatud numbrite arv<\/li>\n<li>Maksimaalne lubatud numbrite arv<\/li>\n<li>Numbrite arv, mis on erinev algsest<\/li>\n<\/ul>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true\" title=\"Sample: testing of user entered n\">Enter number count (up to 50): 127\r\nError! Invalid number count!\r\nEnter number count (up to 50): 3\r\n\r\nEnter number 1 \/ 3: 5\r\nEnter number 2 \/ 3: 1\r\nEnter number 3 \/ 3: 2\r\n\r\nEntered numbers: \r\n5 1 2\r\n\r\nMin value is 1\r\nMin value position(s): 2\r\nMin value occurred 1 time\r\n\r\nMax value is 5\r\nMax value position(s): 1\r\nMax value occurred 1 time\r\n\r\nSum is 8\r\nProduct is 10\r\nArithmetic mean is 2.667<\/pre>\n<h4><span class=\"ez-toc-section\" id=\"Parast_tundi_peaksid\"><\/span><span id=\"After_the_class,_you_should_be_able_to\" class=\"ez-toc-section\"><\/span><strong>P\u00e4rast tundi peaksid<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>Teadma, mida t\u00e4hendab t\u00fc\u00fcbiteisendus ning kuidas seda kasutada (<em>type casting<\/em>)<\/li>\n<li>Teadma, mis asi on murdarvude esitust\u00e4psus ning mis probleeme sellega esineda v\u00f5ib<\/li>\n<li>Teadma, mis asi on p\u00fcsikomaarv (<em>fixed point notation<\/em>) ja mis on ujukomaarv (<em>floating point notation<\/em>).<\/li>\n<li>Teadma, mis asi on matemaatika teek (math.h), kuidas seda kasutada, mis seal sees on ning kuidas lisada kompilaatorile t\u00e4iendav lipp, et see ka kompileeruks.<\/li>\n<li>Teadma, mis asi on massiiv<\/li>\n<li>Oskama massiivi deklareerida<\/li>\n<li>Oskama massiivi algv\u00e4\u00e4rtustada<\/li>\n<li>Oskama indekseerida igat massiivi liiget<\/li>\n<li>Oskama indekseerida massiive kasutades ts\u00fckleid<\/li>\n<li>Oskama leida ekstreemv\u00e4\u00e4rtusi arvujadast<\/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>C math library:<br \/>\n<strong><a href=\"http:\/\/www.cplusplus.com\/reference\/cmath\/\">http:\/\/www.cplusplus.com\/reference\/cmath\/<\/a><\/strong><\/li>\n<li>0.1 + 0.2 in various programming languages:<br \/>\n<strong><a href=\"https:\/\/0.30000000000000004.com\/\">https:\/\/0.30000000000000004.com<\/a><\/strong><\/li>\n<li>Floating Point Numbers \u2013 Computerphile<br \/>\n<strong><a href=\"https:\/\/www.youtube.com\/watch?v=PZRI1IfStY0\">https:\/\/www.youtube.com\/watch?v=PZRI1IfStY0<\/a><\/strong><\/li>\n<li>Floating point and fixed point representation<br \/>\n<strong><a href=\"https:\/\/www.tutorialspoint.com\/fixed-point-and-floating-point-number-representations\">https:\/\/www.tutorialspoint.com\/fixed-point-and-floating-point-number-representations<\/a><\/strong><\/li>\n<li>Type casting (conversion)<br \/>\n<strong><a href=\"https:\/\/www.geeksforgeeks.org\/type-conversion-c\/\">https:\/\/www.geeksforgeeks.org\/type-conversion-c\/<\/a><\/strong><\/li>\n<li>Arrays in C, C++<br \/>\n<strong><a href=\"https:\/\/www.geeksforgeeks.org\/arrays-in-c-cpp\/\">https:\/\/www.geeksforgeeks.org\/arrays-in-c-cpp\/<\/a><\/strong><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Praktikumi materjal Math.h teegi tutvustus T\u00fc\u00fcbiteisendused Ujukomaarvu t\u00e4psuse probleem Slaidid: Massiivid T\u00e4iendav n\u00e4ide: distantsi teisendaja Esitamisele kuuluvad \u00fclesanded Selle n\u00e4dala tunnit\u00f6\u00f6 on jupitatud kaheks osaks. Alguses lahenda esimene osa ja esita oma lahendus. Seej\u00e4rel laienda lahendust teise osaga ning esita oma lahendus uuesti.\u00a0 Baas\u00fclesandele on sel korral pakutud 2 laiendavat lisa\u00fclesannet. \u00dclesanne 1 osa 1 &hellip; <a href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/pr1et5-massiivid\/\" class=\"more-link\">Loe edasi <span class=\"screen-reader-text\">PR1ET5: Massiivid<\/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":[94],"tags":[],"class_list":["post-5393","post","type-post","status-publish","format-standard","hentry","category-pr1-et"],"_links":{"self":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/posts\/5393","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=5393"}],"version-history":[{"count":23,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/posts\/5393\/revisions"}],"predecessor-version":[{"id":10753,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/posts\/5393\/revisions\/10753"}],"wp:attachment":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/media?parent=5393"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/categories?post=5393"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/tags?post=5393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}