{"id":5585,"date":"2020-11-15T22:41:27","date_gmt":"2020-11-15T20:41:27","guid":{"rendered":"https:\/\/blue.pri.ee\/ttu\/?p=5585"},"modified":"2026-06-19T15:13:28","modified_gmt":"2026-06-19T13:13:28","slug":"pr1et14-kasurea-argumendid","status":"publish","type":"post","link":"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/pr1et14-kasurea-argumendid\/","title":{"rendered":"PR1ET14: K\u00e4surea argumendid"},"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\/pr1et14-kasurea-argumendid\/#Praktikumi_sisu\" >Praktikumi sisu<\/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\/pr1et14-kasurea-argumendid\/#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\/pr1et14-kasurea-argumendid\/#Tunnitoo_W14-1_Kalkulaator\" >Tunnit\u00f6\u00f6 [W14-1]: Kalkulaator<\/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\/pr1et14-kasurea-argumendid\/#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\/pr1et14-kasurea-argumendid\/#Soovituslik_loetelu_funktsioonidest\" >Soovituslik loetelu funktsioonidest<\/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\/pr1et14-kasurea-argumendid\/#Naidis\" >N\u00e4idis<\/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\/pr1et14-kasurea-argumendid\/#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\/pr1et14-kasurea-argumendid\/#Lisaulesanne_1_W14-2_Reaalarvud\" >Lisa\u00fclesanne 1 [W14-2]: Reaalarvud<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/pr1et14-kasurea-argumendid\/#Lisaulesanne_2_W14-3_Laiendatud_funktsionaalsus\" >Lisa\u00fclesanne 2 [W14-3]: Laiendatud funktsionaalsus<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/pr1et14-kasurea-argumendid\/#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-11\" href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/pr1et14-kasurea-argumendid\/#Taiendav_materjal\" >T\u00e4iendav materjal<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Praktikumi_sisu\"><\/span><strong>Praktikumi sisu<\/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\/14_Kasurea_argumendid.pdf\"><strong>K\u00e4surea argumendid<\/strong><\/a><\/li>\n<li>N\u00e4idisprogramm\u00a0[<strong><a href=\"https:\/\/blue.pri.ee\/ttu\/files\/iax0583\/demoprogrammid\/calculator.zip\">linux<\/a><\/strong>]<\/li>\n<li>Koodin\u00e4idis: <strong><a href=\"https:\/\/blue.pri.ee\/ttu\/programmeerimine-i\/koodinaited\/parse-c\/\">K\u00e4surea argumentide poole p\u00f6\u00f6rdumine<\/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 tunnis on \u00fcks \u00fclesanne, mida laiendavad lisa\u00fclesanded.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Tunnitoo_W14-1_Kalkulaator\"><\/span>Tunnit\u00f6\u00f6 [W14-1]: Kalkulaator<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Selle tunnit\u00f6\u00f6 raames ehitad kalkulaatori, mis t\u00f6\u00f6tab kasutades k\u00e4surea argumente. Tunni alguses tehakse koos l\u00e4bi (v\u00f5i antakse) \u00fclesande lahenduse algkood, millele lahendus ehitada.<\/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>Loodavaks programmiks on lihtne kalkulaator, mis\n<ul>\n<li>teostab liitmist, lahutamist, korrutamist ja jagamist<\/li>\n<li>toetab positiivseid t\u00e4isarvulisi operande<\/li>\n<li>teeb vaid \u00fche tehte korraga (nt 3 + 6)<\/li>\n<\/ul>\n<\/li>\n<li>Tehte vastus antakse kahe komakohaga<\/li>\n<li>Nii operandid kui operaator loetakse k\u00e4surea argumentidena\n<ul>\n<li>N\u00e4ide liitmistehtest: <span class=\"lang:default decode:true crayon-inline \">.\/calculator 3 + 6<\/span><\/li>\n<\/ul>\n<\/li>\n<li>Programm ei tohi p\u00e4rast k\u00e4ivitumist kasutajalt sisestust k\u00fcsida<\/li>\n<li>Programm tuvastab \u00e4ra j\u00e4rgnevad veaolukorrad\n<ul>\n<li>Vale k\u00e4surealt loetud argumentide arv<\/li>\n<li>Tundmatu operaator (tehe)<\/li>\n<li>Mittenumbriline operand (arv)<\/li>\n<li>Nulliga jagamine<\/li>\n<\/ul>\n<\/li>\n<li>Vea tekkides kuvatakse kasutajale, mis viga tehti ning seej\u00e4rel programmi kasutusjuhend<\/li>\n<\/ul>\n<h5><span class=\"ez-toc-section\" id=\"Soovituslik_loetelu_funktsioonidest\"><\/span>Soovituslik loetelu funktsioonidest<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<ol>\n<li>Abiinfo kuvamine\n<ol>\n<li>Kuvab juhised, kuidas programmi kasutada<\/li>\n<\/ol>\n<\/li>\n<li>Argumentide kontroll\n<ol>\n<li>Kontrollib, mitu argumenti programmile anti<\/li>\n<li>Lisa\u00fclesande raames tuvastab <span class=\"lang:default highlight:0 decode:true crayon-inline \">&#8211;help<\/span>\u00a0 argumendi.<\/li>\n<\/ol>\n<\/li>\n<li>Veahalduse funktsioon\n<ol>\n<li>Kuvab, mis vea kasutaja tegi<\/li>\n<li>Kutsub abiinfo kuvamise funktsiooni<\/li>\n<\/ol>\n<\/li>\n<li>Operandi kontroll\n<ol>\n<li>Kontrollib, kas operand on numbriline<\/li>\n<li>Tagastab operandi, mis on teisendatud arvulisele kujule (nt int)<\/li>\n<\/ol>\n<\/li>\n<li>Arvutamine\n<ol>\n<li>Tuvastab kasutaja poolt soovitatud tehte ja arvutab v\u00e4lja vastuse<\/li>\n<li>Tagastab vastuse<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>Lisaks v\u00f5ib olla kasulik luua ka funktsioonid operaatori kontrollimiseks ja tuvastamiseks.<\/p>\n<h5><span class=\"ez-toc-section\" id=\"Naidis\"><\/span>N\u00e4idis<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Valmislahenduse testimiseks omal k\u00e4el soovitame alla laadida n\u00e4idisprogrammi ja katsetada, kuidas see t\u00f6\u00f6tab.<\/p>\n<p>K\u00f5ikide testjuhtudega, mida programm toetama peab vaata j\u00e4rgmist peat\u00fckki.<\/p>\n<p><strong>N\u00e4ide 1:<\/strong> Programmi sisend OK, programm annab vastuse<\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true\">risto@risto-lt3-tux:~$ .\/calculator 1 \/ 4\r\n&gt; 0.25<\/pre>\n<p><strong>N\u00e4ide 2:<\/strong> programm k\u00e4ivitatakse vale sisendiga ning kuvatakse veateade ja kasutamisjuhend<\/p>\n<pre class=\"theme:cisco-router toolbar:1 nums:false lang:default highlight:0 decode:true\">risto@risto-lt3-tux:~\/Desktop$ .\/calculator\r\nError 0! Invalid argument count or unknown argument(s)\r\n\r\nUsage: .\/calculator operand operation operand\r\n\r\nPossible operations:\r\n+ add\r\n- subtract\r\n* multiply\r\n\/ divide\r\n\r\nNote, that due to how shell works,\r\nthe multiplication operator has to be encased in quotes\r\ne.g. 2 \"*\" 3.5<\/pre>\n<h5><span class=\"ez-toc-section\" id=\"Testimine\"><\/span>Testimine<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>J\u00e4rgnevalt on v\u00e4lja toodud peamised testjuhud kalkulaatorile<\/p>\n<pre class=\"lang:sh highlight:0 decode:true\" title=\"kalkulaator.sh\"># ilma \u00fchegi argumendita ei tohi programm kokku joosta\r\n.\/kalkulaator\r\n\r\n# Baas\u00fclesande testimine, veaolukorrad\r\n.\/kalkulaator 1 + 1\r\n.\/kalkulaator 7 \/ 5\r\n\r\n# Baas\u00fclesande testimine, veaolukorrad\r\n.\/kalkulaator # vale argumentide arv\r\n.\/kalkulaator 1 2 3 4 5 # vale argumentide arv\r\n.\/kalkulaator 6 + a # mittenumbriline operand\r\n.\/kalkulaator 6 +- 5 # tundmatu operatsioon\r\n.\/kalkulaator 6 + 6a # mittenumbriline operand\r\n.\/kalkulaator 6 n 6 # tundmatu operatsioon\r\n.\/kalkulaator 6 \/ 0 # nulliga jagamine\r\n\r\n# Lisa\u00fclesande testimine, OK\r\n.\/kalkulaator 3.0 \/ 5.0 \r\n.\/kalkulaator -3.0 \/ 5.0 \r\n\r\n# Lisa\u00fclesande testimine, veaolukorrad\r\n.\/kalkulaator 5.5.5 \/ 5 \r\n.\/kalkulaator -5-5 \/ 5 \r\n.\/kalkulaator 5-5 \/ 5<\/pre>\n<h4><span class=\"ez-toc-section\" id=\"Lisaulesanne_1_W14-2_Reaalarvud\"><\/span>Lisa\u00fclesanne 1 [W14-2]: Reaalarvud<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Muuda oma programmi sedasi, et sisendina oleksid toetatud reaalarvud. St pead toetama negatiivseid ja murdosaga arve.<\/p>\n<p>Testi j\u00e4rgnevate sisenditega<\/p>\n<ul>\n<li>-3.3<\/li>\n<li>3-3<\/li>\n<li>-3-3<\/li>\n<li>3.3.3<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"Lisaulesanne_2_W14-3_Laiendatud_funktsionaalsus\"><\/span>Lisa\u00fclesanne 2 [W14-3]: Laiendatud funktsionaalsus<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Lisa oma programmi j\u00e4rgnevad funktsioonid:<\/p>\n<ul>\n<li>Ruutjuure v\u00f5tmine<\/li>\n<li>Astendamine<\/li>\n<li>Abiinfo kuvamine argumendiga <span class=\"lang:default highlight:0 decode:true crayon-inline \">&#8211;help<\/span>\u00a0. Abiinfo kuvades ei tohi tekkida veaolukord.<\/li>\n<\/ul>\n<p>K\u00f5ik lisatud funktsioonid peaksid olema kajastatud ka abiinfos!<\/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>Saama aru, mis asi on k\u00e4surea argument<\/li>\n<li>Teadma n\u00e4iteid teistest programmidest, mis kasutavad k\u00e4surea argumente ja kuidas<\/li>\n<li>Oskama ise programmile k\u00e4surea argumente anda<\/li>\n<li>Oskama C koodis k\u00e4surea argumente vastu v\u00f5tta<\/li>\n<li>Teadma, et main() funktsioonil on mitu kuju\n<ul>\n<li>M\u00f5istma, mis asi on argumentide arv (argc, argument count)<\/li>\n<li>M\u00f5istma, mis asi on argumentide vektor (argv, argument vector)<\/li>\n<\/ul>\n<\/li>\n<li>Teadma, mis on tavaliselt esimene kaasa antav argument<\/li>\n<li>M\u00f5istma, kuidas argumentide hulk muutub vastavalt palju argumente programmi k\u00e4ivitades kaasa antakse<\/li>\n<li>M\u00f5istma, et * ja [] t\u00e4histavad sisuliselt sama asja<\/li>\n<li>M\u00f5istma, mida * t\u00e4histab k\u00e4surealt programmi k\u00e4ivitades ja kuidas on seda s\u00fcmbolit v\u00f5imalik programmile anda argumendina<\/li>\n<li>Oskama anda edasi mitmest s\u00f5nast koosnevat argumenti \u00fche argumendina<\/li>\n<li>Oskama teisendada s\u00f5nesid t\u00e4isarvudeks, murdarvudeks<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Taiendav_materjal\"><\/span><strong>T\u00e4iendav materjal<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/www.geeksforgeeks.org\/command-line-arguments-in-c-cpp\/\">https:\/\/www.geeksforgeeks.org\/command-line-arguments-in-c-cpp\/<\/a><\/li>\n<li><a href=\"https:\/\/www.geeksforgeeks.org\/getopt-function-in-c-to-parse-command-line-arguments\/?ref=rp\">https:\/\/www.geeksforgeeks.org\/getopt-function-in-c-to-parse-command-line-arguments\/?ref=rp<\/a><\/li>\n<li>CS50 (command line arguments): <a href=\"https:\/\/www.youtube.com\/watch?v=AI6Ccfno6Pk\">https:\/\/www.youtube.com\/watch?v=AI6Ccfno6Pk<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Praktikumi sisu Slaidid: K\u00e4surea argumendid N\u00e4idisprogramm\u00a0[linux] Koodin\u00e4idis: K\u00e4surea argumentide poole p\u00f6\u00f6rdumine Esitamisele kuuluvad \u00fclesanded Selles tunnis on \u00fcks \u00fclesanne, mida laiendavad lisa\u00fclesanded. Tunnit\u00f6\u00f6 [W14-1]: Kalkulaator Selle tunnit\u00f6\u00f6 raames ehitad kalkulaatori, mis t\u00f6\u00f6tab kasutades k\u00e4surea argumente. Tunni alguses tehakse koos l\u00e4bi (v\u00f5i antakse) \u00fclesande lahenduse algkood, millele lahendus ehitada. N\u00f5uded Loodavaks programmiks on lihtne kalkulaator, mis &hellip; <a href=\"https:\/\/blue.pri.ee\/ttu\/laborid\/pr1-et\/pr1et14-kasurea-argumendid\/\" class=\"more-link\">Loe edasi <span class=\"screen-reader-text\">PR1ET14: K\u00e4surea argumendid<\/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-5585","post","type-post","status-publish","format-standard","hentry","category-pr1-et"],"_links":{"self":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/posts\/5585","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=5585"}],"version-history":[{"count":13,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/posts\/5585\/revisions"}],"predecessor-version":[{"id":11505,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/posts\/5585\/revisions\/11505"}],"wp:attachment":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/media?parent=5585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/categories?post=5585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/tags?post=5585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}