{"id":7,"date":"2024-04-04T08:01:20","date_gmt":"2024-04-04T05:01:20","guid":{"rendered":"https:\/\/sisu.ut.ee\/rosak\/vajalikud-programmeerimisteadmised\/"},"modified":"2024-04-04T08:03:59","modified_gmt":"2024-04-04T05:03:59","slug":"vajalikud-programmeerimisteadmised","status":"publish","type":"page","link":"https:\/\/sisu.ut.ee\/rosak\/vajalikud-programmeerimisteadmised\/","title":{"rendered":"3. Vajalikud programmeerimisteadmised"},"content":{"rendered":"<blockquote>\n<p>\n\t\t<strong><span id=\"docs-internal-guid-b409ae0b-7fff-dd61-1dc4-6272a676da4a\">Selles moodulis hakkame kirjutama koodi Pythoni programmeerimiskeeles. Selle jaoks on vaja natuke osata Pythoni koodi kirjutada.<\/span><\/strong>\n\t<\/p>\n<\/blockquote>\n<p>\n\t\u00d5nneks ei ole teemade nimekiri, mida programmeerimise koha pealt vaja l\u00e4heb, v\u00e4ga pikk.\n<\/p>\n<p>\n\tKui sul vastavad teadmised juba olemas on, siis v\u00f5id selle osa vahele j\u00e4tta.\n<\/p>\n<p>\n\t<\/p><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d166f63c1fb-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d166f63c1fb-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d166f63c1fb-collapse\"><strong>Muutujad<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d166f63c1fb-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d166f63c1fb-heading\">\n            <div class=\"accordion-body\">Muutujad on nimed, mida saame anda erinevatele v\u00e4\u00e4rtustele. N\u00e4iteks:\n\n<pre>x = 5<\/pre>\n<p>\n\tMuutujale antakse v\u00e4\u00e4rtus alati \u00fclalkirjeldatud s\u00fcntaksiga: keskel on \u00fcks v\u00f5rdusm\u00e4rk, sellest vasakul pool on muutujanimi ja paremal pool v\u00e4\u00e4rtus, mida talle anda tahame. N\u00fc\u00fcd, kui viitame kusagil v\u00e4\u00e4rtusele <span style=\"font-family:Courier New,Courier,monospace\">x<\/span>, siis k\u00e4sitletakse seda kui arvu <span style=\"font-family:Courier New,Courier,monospace\">5<\/span>. N\u00e4iteks:\n<\/p>\n<pre>y = x + 2<\/pre>\n<p>\n\tSiin m\u00e4\u00e4ratakse y v\u00e4\u00e4rtuseks <span style=\"font-family:Courier New,Courier,monospace\">x<\/span>-ist kahe v\u00f5rra suurem arv ehk <span style=\"font-family:Courier New,Courier,monospace\">7<\/span>.\n<\/p>\n<blockquote class=\"os-kollane\">\n<h4>\n\t\tAritmeetilised tehted<br>\n\t<\/h4>\n<p>\n\t\t<span id=\"docs-internal-guid-6aed9477-7fff-4b2f-ac4f-fdf76126253e\">Arvuti saab h\u00e4sti aru aritmeetilistest tehetest <span style=\"font-family:Courier New,Courier,monospace\">+<\/span>, <span style=\"font-family:Courier New,Courier,monospace\">\u2013<\/span>, <span style=\"font-family:Courier New,Courier,monospace\">*<\/span> ja <span style=\"font-family:Courier New,Courier,monospace\">\/<\/span>. Tehete j\u00e4rjekorda saab m\u00e4\u00e4rata sulgudega. Lisaks on Pythonis veel v\u00f5imalik teha mitmeid aritmeetilisi operatsioone, nagu n\u00e4iteks astendamine (seda tehakse kahe j\u00e4rjest pandud korrutusm\u00e4rgiga <span style=\"font-family:Courier New,Courier,monospace\">**<\/span>, n\u00e4iteks <span style=\"font-family:Courier New,Courier,monospace\">2**4<\/span> v\u00f5tab <span style=\"font-family:Courier New,Courier,monospace\">2<\/span> astmesse <span style=\"font-family:Courier New,Courier,monospace\">4<\/span>) ja j\u00e4\u00e4gi leidmine mingi arvuga jagamisel (seda tehakse m\u00e4rgiga <span style=\"font-family:Courier New,Courier,monospace\">%<\/span>, n\u00e4iteks <span style=\"font-family:Courier New,Courier,monospace\">100%7<\/span> leiab j\u00e4\u00e4gi, mille saame arvu <span style=\"font-family:Courier New,Courier,monospace\">100<\/span> jagamisel arvuga <span style=\"font-family:Courier New,Courier,monospace\">7<\/span>).<\/span>\n\t<\/p>\n<\/blockquote>\n<p>\n\tMuutujanimed v\u00f5ivad olla ka pikemad kui lihtsalt \u00fchet\u00e4helised, n\u00e4iteks v\u00f5ib muutujaks olla <span style=\"font-family:Courier New,Courier,monospace\">roboti_rataste_arv<\/span>.\n<\/p>\n<pre>roboti_rataste_arv = 3<\/pre>\n<p>\n\tMuutuja v\u00e4\u00e4rtust v\u00f5ib ka muuta. Seda saab muuhulgas teha teistele muutujatele v\u00f5i isegi muutujale endale viidates. N\u00e4iteks:\n<\/p>\n<pre>roboti_rataste_arv = roboti_rataste_arv - 1<\/pre>\n<p>\n\tSellel real vaatab arvuti k\u00f5igepealt parempoolset osa. Muutuja <span style=\"font-family:Courier New,Courier,monospace\">roboti_rataste_arv<\/span> v\u00e4\u00e4rtus on alguses <span style=\"font-family:Courier New,Courier,monospace\">3<\/span>, selles lahutatakse <span style=\"font-family:Courier New,Courier,monospace\">1<\/span> ja tulemus (<span style=\"font-family:Courier New,Courier,monospace\">2<\/span>) pannakse tagasi muutujasse <span style=\"font-family:Courier New,Courier,monospace\">roboti_rataste_arv<\/span> (\u201ckirjutatakse \u00fcle\u201d). Selle tulemusena on muutuja <span style=\"font-family:Courier New,Courier,monospace\">roboti_rataste_arv<\/span> v\u00e4\u00e4rtus n\u00fc\u00fcd hoopis <span style=\"font-family:Courier New,Courier,monospace\">2<\/span>.\n<\/p>\n<p>\n\tMuutujate kohta saad rohkem \u00f5ppida n\u00e4iteks siit: <a data-url=\"https:\/\/courses.cs.ut.ee\/2023\/progmaa\/spring\/Main\/PARTIIMuutujad\" href=\"https:\/\/courses.cs.ut.ee\/2023\/progmaa\/spring\/Main\/PARTIIMuutujad\" target=\"_blank\" title=\"\" rel=\"noopener\">https:\/\/courses.cs.ut.ee\/2023\/progmaa\/spring\/Main\/PARTIIMuutujad<\/a>\n<\/p>\n<p>\n\t<\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div>\n\n<p>\n\t<\/p><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d166f63c21b-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d166f63c21b-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d166f63c21b-collapse\"><strong>Valikulaused<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d166f63c21b-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d166f63c21b-heading\">\n            <div class=\"accordion-body\">Programmi k\u00e4ivitades j\u00e4rgib arvuti juhiseid \u00fcldjuhul j\u00e4rgem\u00f6\u00f6da \u00fclalt alla. N\u00e4iteks:\n\n<pre>x = 1\r\nx = 2<\/pre>\n<p>\n\tNendel kahel real m\u00e4\u00e4ratakse muutuja <span style=\"font-family:Courier New,Courier,monospace\">x<\/span> v\u00e4\u00e4rtuseks k\u00f5igepealt <span style=\"font-family:Courier New,Courier,monospace\">1<\/span> ja seej\u00e4rel <span style=\"font-family:Courier New,Courier,monospace\">2<\/span>. Programmi k\u00e4ivitamise l\u00f5puks on <span style=\"font-family:Courier New,Courier,monospace\">x<\/span> v\u00e4\u00e4rtus <span style=\"font-family:Courier New,Courier,monospace\">2<\/span> ning see, et see oli vahepeal ka <span style=\"font-family:Courier New,Courier,monospace\">1<\/span>, on praegu lihtsalt \u00e4ra unustatud.\n<\/p>\n<p>\n\tM\u00f5nikord aga soovime, et arvuti teeks \u00fchel juhul \u00fcht asja ja teisel juhul teist. N\u00e4iteks v\u00f5ime tahta, et mingisuguse muutuja <span style=\"font-family:Courier New,Courier,monospace\">roboti_kiirus<\/span> v\u00e4\u00e4rtus oleks kolme v\u00f5i v\u00e4hema rattaga roboti puhul \u00fchesugune ja nelja v\u00f5i rohkema rattaga roboti puhul teistsugune. Seda saame saavutada valikulausega:\n<\/p>\n<pre>if roboti_rataste_arv &lt; 4:\r\n    roboti_kiirus = 300\r\nelse:\r\n    roboti_kiirus = 350<\/pre>\n<p>\n\tSiin koodis vaadatakse k\u00f5igepealt, kas roboti rataste arv on v\u00e4iksem kui <span style=\"font-family:Courier New,Courier,monospace\">4<\/span>. Kui nii, siis tehakse k\u00f5ike, mis j\u00e4rgneb if-reale ja on sellest suurema <strong>taandega<\/strong> (hetkel \u00fcks rida, kus muutuja <span style=\"font-family:Courier New,Courier,monospace\">roboti_kiirus<\/span> v\u00e4\u00e4rtuseks pannakse <span style=\"font-family:Courier New,Courier,monospace\">300<\/span>). Kui roboti rataste arv aga ei ole v\u00e4iksem kui <span style=\"font-family:Courier New,Courier,monospace\">4<\/span>, siis tehakse k\u00f5ike, mis on reale <span style=\"font-family:Courier New,Courier,monospace\">else:<\/span> j\u00e4rgnevas osas suurema taandega (j\u00e4lle \u00fcksainus rida, kus muutuja <span style=\"font-family:Courier New,Courier,monospace\">roboti_kiirus<\/span> v\u00e4\u00e4rtuseks pannakse <span style=\"font-family:Courier New,Courier,monospace\">350<\/span>).\n<\/p>\n<p>\n\tTaane peaks olema alati sama: siin oleme kasutanud t\u00e4pselt nelja t\u00fchikut.\n<\/p>\n<p>\n\t<span style=\"font-family:Courier New,Courier,monospace\">else<\/span>-osa ei ole kohustuslik: viimased kaks rida n\u00e4itest v\u00f5ib ka \u00e4ra j\u00e4tta ja arvuti ei nurise (kuigi kood ei tee siis ka enam sama asja).\n<\/p>\n<blockquote class=\"os-kollane\">\n<h4>\n\t\tMis tingimusi ma ette anda saan?<br>\n\t<\/h4>\n<p>\n\t\tMatemaatikast on tuttavad m\u00e4rgid <span style=\"font-family:Courier New,Courier,monospace\">&lt;<\/span> ja <span style=\"font-family:Courier New,Courier,monospace\">&gt;<\/span>, mida ka arvuti m\u00f5istab. Arvuti teab ka m\u00e4rke <span style=\"font-family:Courier New,Courier,monospace\">&lt;=<\/span> ja <span style=\"font-family:Courier New,Courier,monospace\">&gt;=<\/span>, mis on vastavalt \u201cv\u00e4iksem kui v\u00f5i v\u00f5rdne\u201d ja \u201csuurem kui v\u00f5i v\u00f5rdne\u201d. Kui tahame kontrollida, kas mingid v\u00e4\u00e4rtused on t\u00e4pselt v\u00f5rdsed, siis saame seda teha <span style=\"font-family:Courier New,Courier,monospace\">==<\/span> (kahe j\u00e4rjestikuse v\u00f5rdusm\u00e4rgiga) \u2013 kaks on neid sellep\u00e4rast, et \u00fcht kasutatakse muutujale v\u00e4\u00e4rtuse andmiseks.\n\t<\/p>\n<p>\n\t\tLisaks sellele saab kasutada n\u00e4iteks s\u00f5nu <span style=\"font-family:Courier New,Courier,monospace\">and<\/span>, <span style=\"font-family:Courier New,Courier,monospace\">or<\/span> ja <span style=\"font-family:Courier New,Courier,monospace\">not<\/span>. N\u00e4iteks:\n\t<\/p>\n<pre>(x &lt; 5 and (not x == 2)) or x == 100<\/pre>\n<p>\n\t\tSee rida on t\u00f5ene siis, kui <span style=\"font-family:Courier New,Courier,monospace\">x<\/span> on v\u00e4iksem kui <span style=\"font-family:Courier New,Courier,monospace\">5<\/span> (aga tema v\u00e4\u00e4rtus ei tohi olla t\u00e4pselt <span style=\"font-family:Courier New,Courier,monospace\">2<\/span>) v\u00f5i kui ta on t\u00e4pselt <span style=\"font-family:Courier New,Courier,monospace\">100<\/span>.\n\t<\/p>\n<\/blockquote>\n<p>\n\tRohkem saad valikulausete kohta lugeda n\u00e4iteks siit: <a data-url=\"https:\/\/courses.cs.ut.ee\/2023\/progmaa\/spring\/Main\/PARTIIIValikulause1\" href=\"https:\/\/courses.cs.ut.ee\/2023\/progmaa\/spring\/Main\/PARTIIIValikulause1\" target=\"_blank\" title=\"\" rel=\"noopener\">https:\/\/courses.cs.ut.ee\/2023\/progmaa\/spring\/Main\/PARTIIIValikulause1<\/a>\n<\/p>\n<p>\n\t<\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div>\n\n<p>\n\t<\/p><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d166f63c224-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d166f63c224-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d166f63c224-collapse\"><strong>Ts\u00fcklid<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d166f63c224-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d166f63c224-heading\">\n            <div class=\"accordion-body\">M\u00f5nikord soovime midagi teha mitu korda (n\u00e4iteks 100 korda). Seda on mugav teha ts\u00fckliga. \u00dcks ts\u00fckli liik on <span style=\"font-family:Courier New,Courier,monospace\">while<\/span>-ts\u00fckkel.\n\n<pre>x = 1\r\nwhile x &lt;= 100:\r\n    x = x + 1<\/pre>\n<p>\n\tSiin antakse k\u00f5igepealt muutuja x v\u00e4\u00e4rtuseks 1 ja siis liigutakse ts\u00fcklisse. Ts\u00fckli alguses vaadatakse, kas <span style=\"font-family:Courier New,Courier,monospace\">x<\/span> on v\u00e4iksemv\u00f5rdne <span style=\"font-family:Courier New,Courier,monospace\">100<\/span>st (on k\u00fcll) ja kui nii, siis k\u00e4ivitatakse read, mis asuvad ts\u00fckli \u201csees\u201d ehk j\u00e4rgnevad <span style=\"font-family:Courier New,Courier,monospace\">while<\/span>-reale ja on sellest suurema taandega. (Siin suurendatakse x v\u00e4\u00e4rtust 1 v\u00f5rra.)\n<\/p>\n<p>\n\tSeej\u00e4rel minnakse ts\u00fckli algusesse tagasi ja v\u00f5rreldakse uuesti: kas <span style=\"font-family:Courier New,Courier,monospace\">x<\/span> on v\u00e4iksem kui v\u00f5i v\u00f5rdne <span style=\"font-family:Courier New,Courier,monospace\">100<\/span>ga? (<span style=\"font-family:Courier New,Courier,monospace\">x<\/span> v\u00e4\u00e4rtus on n\u00fc\u00fcd <span style=\"font-family:Courier New,Courier,monospace\">2<\/span>, seega jah, on k\u00fcll.) Ning korratakse ts\u00fckli sisu. Seej\u00e4rel minnakse algusesse uuesti tagasi ja v\u00f5rreldakse <span style=\"font-family:Courier New,Courier,monospace\">x<\/span> v\u00e4\u00e4rtust uuesti. Seda tehakse seni, kuni <span style=\"font-family:Courier New,Courier,monospace\">x &lt;= 100<\/span> enam ei kehti: see juhtub, kui <span style=\"font-family:Courier New,Courier,monospace\">x<\/span> v\u00e4\u00e4rtuseks saab <span style=\"font-family:Courier New,Courier,monospace\">101<\/span>. Kokkuv\u00f5ttes korratakse ts\u00fcklit <span style=\"font-family:Courier New,Courier,monospace\">100<\/span> korda.\n<\/p>\n<p>\n\tSee ts\u00fckkel on suhteliselt m\u00f5ttetu, sest midagi muud peale <span style=\"font-family:Courier New,Courier,monospace\">x<\/span> v\u00e4\u00e4rtuse suurendamise ta ei tee. Lisame koodile veel kaks rida:\n<\/p>\n<pre>x = 1\r\nsumma = 0\r\nwhile x &lt;= 100:\r\n    summa = summa + x\r\n    x = x + 1<\/pre>\n<p>\n\tN\u00fc\u00fcd on meil ka teine muutuja, nimega <span style=\"font-family:Courier New,Courier,monospace\">summa<\/span>. Iga kord ts\u00fcklit l\u00e4bides suureneb muutuja <span style=\"font-family:Courier New,Courier,monospace\">summa<\/span> v\u00e4\u00e4rtus <span style=\"font-family:Courier New,Courier,monospace\">x<\/span> v\u00f5rra. Kuna <span style=\"font-family:Courier New,Courier,monospace\">x<\/span> v\u00e4\u00e4rtused on j\u00e4rjest <span style=\"font-family:Courier New,Courier,monospace\">1, 2, \u2026, 100<\/span>, siis liidab see kood kokku arvud <span style=\"font-family:Courier New,Courier,monospace\">1<\/span> kuni <span style=\"font-family:Courier New,Courier,monospace\">100<\/span> ja l\u00f5pptulemus on muutujas <span style=\"font-family:Courier New,Courier,monospace\">summa<\/span>.\n<\/p>\n<p>\n\tTs\u00fckli tingimused saavad olla ka teistsugused ja j\u00e4rgivad \u00fcldiselt samu ideid, nagu valikulausete omad.\n<\/p>\n<p>\n\tRohkem saad ts\u00fcklite kohta lugeda n\u00e4iteks siit: <a data-url=\"https:\/\/courses.cs.ut.ee\/2023\/progmaa\/spring\/Main\/PARTVTsykkel1\" href=\"https:\/\/courses.cs.ut.ee\/2023\/progmaa\/spring\/Main\/PARTVTsykkel1\" target=\"_blank\" title=\"\" rel=\"noopener\">https:\/\/courses.cs.ut.ee\/2023\/progmaa\/spring\/Main\/PARTVTsykkel1<\/a>\n<\/p>\n<p>\n\t<\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div>\n\n<p>\n\t<\/p><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d166f63c22f-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d166f63c22f-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d166f63c22f-collapse\"><strong>Funktsioonid<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d166f63c22f-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d166f63c22f-heading\">\n            <div class=\"accordion-body\">Viimaseks vaatame funktsioone. Funktsioon lubab meil panna arvuti tegema keerulisemaid operatsioone kui lihtsalt millegi liitmine v\u00f5i lahutamine, hoides samal ajal koodi arusaadava ja loetavana.\n\n<p>\n\tFunktsioonist v\u00f5ib m\u00f5elda kui mustast kastist, mis teeb midagi. M\u00f5nikord on v\u00f5imalik funktsioonile anda mingit sisendit (\u00fcks v\u00f5i rohkem) ja m\u00f5nikord annab funktsioon p\u00e4rast t\u00f6\u00f6 l\u00f5petamist midagi ka v\u00e4lja.\n<\/p>\n<p>\n\tFunktsiooni tunneb Pythonis \u00e4ra selle j\u00e4rgi, et tal on nimi (nagu muutujal), millele j\u00e4rgnevad kohe sulud <span style=\"font-family:Courier New,Courier,monospace\">(<\/span> ja <span style=\"font-family:Courier New,Courier,monospace\">)<\/span>. M\u00f5nikord on sulgude vahel midagi kirjas, m\u00f5nikord mitte: sinna vahele kirjutatakse funktsiooni sisendid (kui neid on).\n<\/p>\n<p>\n\tN\u00e4iteks v\u00f5ime vaadata v\u00e4ga lihtsat (v\u00e4ljam\u00f5eldud) funktsiooni <span style=\"font-family:Courier New,Courier,monospace\">liida_kolm_arvu<\/span>:\n<\/p>\n<pre>liida_kolm_arvu(3, 5, 11)<\/pre>\n<p>\n\tSee funktsioon v\u00f5tab kolm sisendit (hetkel on talle ette antud arvud <span style=\"font-family:Courier New,Courier,monospace\">3<\/span>, <span style=\"font-family:Courier New,Courier,monospace\">5<\/span> ja <span style=\"font-family:Courier New,Courier,monospace\">11<\/span>) ning v\u00f5iks nime j\u00e4rgi v\u00e4lja anda nende kolme arvu summa (<span style=\"font-family:Courier New,Courier,monospace\">19<\/span>). \u00dclalolevat rida nimetatakse funktsiooni <strong>v\u00e4ljakutseks<\/strong>. Hetkel v\u00f5ime tahta tulemusega hiljem ka midagi teha: kui funktsioon midagi \u201cv\u00e4lja annab\u201d (<strong>v\u00e4\u00e4rtuse tagastab<\/strong>), siis saame selle salvestada muutujasse:\n<\/p>\n<pre>meie_summa = liida_kolm_arvu(3, 5, 11)<\/pre>\n<p>\n\tSiin pannakse funktsiooni <strong>tagastatav v\u00e4\u00e4rtus<\/strong> muutujasse <span style=\"font-family:Courier New,Courier,monospace\">meie_summa<\/span>.\n<\/p>\n<p>\n\tFunktsiooni <span style=\"font-family:Courier New,Courier,monospace\">liida_kolm_arvu<\/span> pole aga vaikimisi tegelikult olemas (kuigi paljud teised funktsioonid on). Funktsiooni saame ise luua s\u00f5naga <span style=\"font-family:Courier New,Courier,monospace\">def<\/span> ja sobiva taandega j\u00e4rgmiselt:\n<\/p>\n<pre>def liida_kolm_arvu(a, b, c):\r\n    summa = a + b + c\r\n    return summa<\/pre>\n<p>\n\tSee koodijupp loob (defineerib) funktsiooni <span style=\"font-family:Courier New,Courier,monospace\">liida_kolm_arvu<\/span> (aga <strong>ei kutsu seda v\u00e4lja<\/strong>) ehk annab arvutile juhised, mida selle funktsiooni v\u00e4ljakutse puhul teha. Funktsioonil on kolm sisendit: sisendiks antu pannakse kolme muutujasse, nimedega vastavalt <span style=\"font-family:Courier New,Courier,monospace\">a<\/span>, <span style=\"font-family:Courier New,Courier,monospace\">b<\/span> ja <span style=\"font-family:Courier New,Courier,monospace\">c<\/span> (seda tehakse funktsiooni v\u00e4ljakutsel automaatselt \u2013 arvuti oskab sisendiks antud kolm arvu j\u00e4rjekorras kokku viia muutujatega <span style=\"font-family:Courier New,Courier,monospace\">a<\/span>, <span style=\"font-family:Courier New,Courier,monospace\">b<\/span> ja <span style=\"font-family:Courier New,Courier,monospace\">c<\/span>). Seej\u00e4rel liidetakse need kolm arvu kokku ja pannakse tulemus muutujasse <span style=\"font-family:Courier New,Courier,monospace\">summa<\/span>. L\u00f5puks annab k\u00e4sk <span style=\"font-family:Courier New,Courier,monospace\">return<\/span> teada, et funktsioon peaks tagastama leitud <span style=\"font-family:Courier New,Courier,monospace\">summa<\/span>.\n<\/p>\n<p>\n\t(Vahem\u00e4rkusena: muutujaid <span style=\"font-family:Courier New,Courier,monospace\">a<\/span>, <span style=\"font-family:Courier New,Courier,monospace\">b<\/span>, <span style=\"font-family:Courier New,Courier,monospace\">c<\/span> ja <span style=\"font-family:Courier New,Courier,monospace\">summa<\/span> v\u00e4ljaspool funktsiooni v\u00e4ljakutset sel juhul enam olemas ei ole \u2013 nad luuakse ainult selleks ajaks ja selles kohas.)\n<\/p>\n<p>\n\tN\u00fc\u00fcd saab seda funktsiooni p\u00e4riselt kasutada. Kokku n\u00e4eks t\u00fc\u00fcpiline kood v\u00e4lja n\u00e4iteks selline:\n<\/p>\n<pre><span style=\"New,Courier,monospace\">def liida_kolm_arvu(a, b, c):\r\n    summa = a + b + c\r\n    return summa<\/span>\r\n\r\nmeie_arvude_summa = liida_kolm_arvu(3, 5, 11)\r\n\r\nrospy.loginfo(meie_arvude_summa)<\/pre>\n<p>\n\tSee kood defineerib k\u00f5igepealt kolme arvu kokkuliitmise funktsiooni, siis kutsub seda v\u00e4lja arvudega <span style=\"font-family:Courier New,Courier,monospace\">3<\/span>, <span style=\"font-family:Courier New,Courier,monospace\">5<\/span> ja <span style=\"font-family:Courier New,Courier,monospace\">11<\/span>, paneb tulemuse muutujasse <span style=\"font-family:Courier New,Courier,monospace\">meie_arvude_summa<\/span> ning kutsub seej\u00e4rel v\u00e4lja veel \u00fcht funktsiooni <span style=\"font-family:Courier New,Courier,monospace\">rospy.loginfo<\/span> (t\u00e4psemini funktsiooni <span style=\"font-family:Courier New,Courier,monospace\">loginfo<\/span> moodulist <span style=\"font-family:Courier New,Courier,monospace\">rospy<\/span>), millele annab sisendiks <span style=\"font-family:Courier New,Courier,monospace\">meie_arvude_summa<\/span> (mis praegu on <span style=\"font-family:Courier New,Courier,monospace\">19<\/span>). See viimane funktsioon on ROSis juba olemas (koodi alguses tuleb k\u00fcll see importida \u2013 n\u00e4eme hiljem, kuidas seda p\u00e4riselt teha) ja see funktsioon kuvab meie arvude summa terminalis, kus vastav ROSi kood k\u00e4ivitati.\n<\/p>\n<p>\n\t(Kui kasutada midagi muud, kui ROSi, siis on k\u00f5ige t\u00fc\u00fcpilisemaks info kuvamise meetodiks funktsioon <span style=\"font-family:Courier New,Courier,monospace\">print<\/span>, mis t\u00f6\u00f6tab samamoodi.)\n<\/p>\n<p>\n\tFunktsioonide kohta saad rohkem lugeda n\u00e4iteks siit: <a data-url=\"https:\/\/courses.cs.ut.ee\/2023\/progmaa\/spring\/Main\/PARTVIIFunktsioon1\" href=\"https:\/\/courses.cs.ut.ee\/2023\/progmaa\/spring\/Main\/PARTVIIFunktsioon1\" target=\"_blank\" title=\"\" rel=\"noopener\">https:\/\/courses.cs.ut.ee\/2023\/progmaa\/spring\/Main\/PARTVIIFunktsioon1<\/a>\n<\/p>\n<p>\n\t<\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Selles moodulis hakkame kirjutama koodi Pythoni programmeerimiskeeles. Selle jaoks on vaja natuke osata Pythoni koodi kirjutada. \u00d5nneks ei ole teemade nimekiri, mida programmeerimise koha pealt vaja l\u00e4heb, v\u00e4ga pikk. Kui sul vastavad teadmised juba olemas on, siis v\u00f5id selle osa &#8230;<\/p>\n","protected":false},"author":98,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-7","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/pages\/7","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/users\/98"}],"replies":[{"embeddable":true,"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/comments?post=7"}],"version-history":[{"count":1,"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/pages\/7\/revisions"}],"predecessor-version":[{"id":394,"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/pages\/7\/revisions\/394"}],"wp:attachment":[{"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/media?parent=7"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}