{"id":8975,"date":"2023-10-04T21:13:40","date_gmt":"2023-10-04T19:13:40","guid":{"rendered":"https:\/\/blue.pri.ee\/ttu\/?page_id=8975"},"modified":"2025-08-20T15:46:52","modified_gmt":"2025-08-20T13:46:52","slug":"distantsi-teisendaja-massiivid-ja-funktsioonid","status":"publish","type":"page","link":"https:\/\/blue.pri.ee\/ttu\/programmeerimine-i\/koodinaited\/distantsi-teisendaja-massiivid-ja-funktsioonid\/","title":{"rendered":"Distantsi teisendaja (massiivid ja 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-4'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-i\/koodinaited\/distantsi-teisendaja-massiivid-ja-funktsioonid\/#Lahendatav_ulesanne\" >Lahendatav \u00fclesanne<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-i\/koodinaited\/distantsi-teisendaja-massiivid-ja-funktsioonid\/#Marka_koodi_juures_jargnevat\" >M\u00e4rka koodi juures j\u00e4rgnevat<\/a><\/li><\/ul><\/nav><\/div>\n<h4><span class=\"ez-toc-section\" id=\"Lahendatav_ulesanne\"><\/span>Lahendatav \u00fclesanne<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>Loe N t\u00e4isarvu kasutajalt, mis t\u00e4histavad vahemaid kilomeetrites. Salvesta arvud massiivi.<\/li>\n<li>Teisenda antud vahemaad miilidesse.<\/li>\n<li>Vahemaad loetakse t\u00e4isarvudena. Miilidesse teisendatud vahemaad tuleb leida ja hoiustada ja kuvada k\u00fcmnendmurdudena.<\/li>\n<li>Leia ja kuva sisestatud vahemaade summa miilides.<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"Marka_koodi_juures_jargnevat\"><\/span>M\u00e4rka koodi juures j\u00e4rgnevat<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>Makrod antakse funktsioonidesse kaasa parameetritena. Selline k\u00e4itumine toetab funktsioonide korduvkasutamist.\n<ul>\n<li>Funktsioon ise ei hakka s\u00f5ltuma konkreetse makro nimest ja selle eksisteerimisest koodifailis.<\/li>\n<li>Funktsioonid on korduvkasutatavad \u00fcksk\u00f5ik kui suure massiivi korral.<\/li>\n<\/ul>\n<\/li>\n<li>Funktsioonidesse edastatakse vaid muutujad, mille v\u00e4\u00e4rtus on funktsioonile sisendiks ning massiivid. Ts\u00fckliloendurid ja alles leitavad tulemused deklareeritakse lokaalmuutujatena funktsiooni sees (neil ei ole olulist v\u00e4\u00e4rtust mida anda\u00a0<strong>sisendiks<\/strong>)<strong>.\u00a0 <\/strong>Nende edastamine muudaks vaid programmi aeglasemaks.<\/li>\n<li>K\u00f5ik funktsioonid on kommenteeritud.<\/li>\n<li>Summa leitakse eraldi funktsioonis ja tagastatakse. See aitab summa funktsiooni korduvalt kasutada j\u00e4rgnevates programmides\u00a0 kuna ei risusta programmi v\u00e4ljundit (nt kui on vaja leida mitme massiivi summa aga soovid v\u00e4lja printida summat, mis on neist k\u00f5igist suurim).<\/li>\n<li>Kasutaja sisestab vahemaad kilomeetrites t\u00e4isarvudest koosnevasse massiivi. Teisenduse tulemusena salvestatakse need massiivi, mille andmet\u00fc\u00fcp toetab reaalarve. Teisenduse k\u00e4igus teostatakse t\u00fc\u00fcbiteisendus t\u00e4isarvudele.<\/li>\n<li>Algne (sisestatud) massiiv s\u00e4ilitatakse. Seda v\u00f5ib olla vaja algsel kujul m\u00f5ne teise alam\u00fclesande jaoks.<\/li>\n<li>Kuna massiive ei saa tagastada, siis edastame algselt t\u00fchja massiiv funktsiooni ning funktsioon tegeleb andmete paigutamisega massiivi.<\/li>\n<\/ul>\n<pre class=\"toolbar:2 lang:c decode:true \">\/**\r\n * File:         dist_converter.c\r\n * Author:       Risto Heinsar\r\n * Created:      26.10.2020\r\n * Last edit:    20.06.2025\r\n *\r\n * Description:  Reads an array filled with integers (representing distances \r\n *               in kilometers) and converts it to miles. \r\n *               Prints the sum of all distances in miles.\r\n *\/\r\n#include &lt;stdio.h&gt;\r\n\r\n#define DIST_COUNT 4\r\n#define MILES_IN_KM 1.609f\r\n\r\nvoid ReadDistances(int dist[], int n);\r\nvoid ConvertArrToMiles(int distKm[], float distMi[], int n);\r\nvoid PrintDistances(float dist[], int n);\r\nfloat SumOfAllDist(float dist[], int n);\r\n\r\nint main(void)\r\n{\r\n    \/* Read distances to memory *\/\r\n    int distancesInKilometers[DIST_COUNT];\r\n    ReadDistances(distancesInKilometers, DIST_COUNT);\r\n    \r\n    \/* Convert to miles and print the converted distances *\/\r\n    float distancesInMiles[DIST_COUNT];\r\n    ConvertArrToMiles(distancesInKilometers, distancesInMiles, DIST_COUNT);\r\n    PrintDistances(distancesInMiles, DIST_COUNT);\r\n    \r\n    \/* Find the sum of all distances *\/\r\n    int totalDist = SumOfAllDist(distancesInMiles, DIST_COUNT);\r\n    printf(\"The sum of all distances is %.2f miles!\\n\", totalDist);\r\n\r\n    return 0;\r\n}\r\n\r\n\r\n\/**\r\n * Description:    Asks the user for n integers and stores them in an array.\r\n *\r\n * Parameters:     dist - array to store distances entered by the user\r\n *                 n - number of distances to read (also length of array)\r\n *\r\n * Return:         none\r\n *\/\r\nvoid ReadDistances(int dist[], int n)\r\n{\r\n    for (int i = 0; i &lt; n; i++)\r\n    {\r\n        printf(\"Enter distance %d in km (integer): \", i + 1);\r\n        scanf(\"%d\", &amp;dist[i]);\r\n    }\r\n}\r\n\r\n\r\n\/**\r\n * Description:    Converts an array filled with distances in kilometers to\r\n *                 miles and stores them in the second array.\r\n *\r\n * Parameters:     distKm - array with distances in kilometers\r\n *                 distMi - array to store calculated distances in miles\r\n *                 n - number of distances to convert (length of both arrays)\r\n *\r\n * Return:         none\r\n *\/\r\nvoid ConvertArrToMiles(int distKm[], float distMi[], int n)\r\n{\r\n    for (int i = 0; i &lt; n; i++)\r\n    {\r\n        distMi[i] = (float)distKm[i] \/ MILES_IN_KM;\r\n    }\r\n}\r\n\r\n\r\n\/**\r\n * Description:    Prints the given array of distances with 2 decimal places \r\n *                 after the comma.\r\n *\r\n * Parameters:     dist - array with distances as decimals\r\n *                 n - length of the array.\r\n *\r\n * Return:         none\r\n *\/\r\nvoid PrintDistances(float dist[], int n)\r\n{\r\n    printf(\"The converted distances are: \");\r\n\r\n    for (int i = 0; i &lt; n; i++)\r\n    {\r\n        printf(\"%.2f \", dist[i]);\r\n    }\r\n    printf(\"\\n\");\r\n}\r\n\r\n\/**\r\n * Description:    Sums up all the distances in the array, returns the sum\r\n *\r\n * Parameters:     dist - array with distances as decimals\r\n *                 n - length of the array.\r\n *\r\n * Return:         the sum of given array members (total distance)\r\n *\/\r\nfloat SumOfAllDist(float dist[], int n)\r\n{\r\n    float sum = 0.0f;\r\n\r\n    for (int i = 0; i &lt; n; i++)\r\n    {\r\n        sum += dist[i];\r\n    }\r\n\r\n    return sum;\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lahendatav \u00fclesanne Loe N t\u00e4isarvu kasutajalt, mis t\u00e4histavad vahemaid kilomeetrites. Salvesta arvud massiivi. Teisenda antud vahemaad miilidesse. Vahemaad loetakse t\u00e4isarvudena. Miilidesse teisendatud vahemaad tuleb leida ja hoiustada ja kuvada k\u00fcmnendmurdudena. Leia ja kuva sisestatud vahemaade summa miilides. M\u00e4rka koodi juures j\u00e4rgnevat Makrod antakse funktsioonidesse kaasa parameetritena. Selline k\u00e4itumine toetab funktsioonide korduvkasutamist. Funktsioon ise ei hakka &hellip; <a href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-i\/koodinaited\/distantsi-teisendaja-massiivid-ja-funktsioonid\/\" class=\"more-link\">Loe edasi <span class=\"screen-reader-text\">Distantsi teisendaja (massiivid ja funktsioonid)<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":32,"menu_order":8,"comment_status":"closed","ping_status":"closed","template":"page-templates\/code-width-wide.php","meta":{"footnotes":""},"class_list":["post-8975","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/8975","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/comments?post=8975"}],"version-history":[{"count":7,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/8975\/revisions"}],"predecessor-version":[{"id":10269,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/8975\/revisions\/10269"}],"up":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/32"}],"wp:attachment":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/media?parent=8975"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}