Materjalid koostas ja kursuse viib läbi
Tartu Ülikooli arvutiteaduse instituudi programmeerimise õpetamise töörühm
< eelmine | 1. nädala sisukord | järgmine > |
1.2 Programm
Mingi ülesande lahendamiseks vajaliku algoritmi kirjapanek plokkskeemina võib küll olla arusaadav inimesele, aga see ei ole väga sobiv arvutile algoritmi arusaadavaks tegemiseks. Selleks otstarbeks tuleb lahendus esitada programmina (vt Eesti keele seletavast sõnaraamatust). Programm kirjutatakse mingis programmeerimiskeeles. Programmeerimiskeeli on olemas mitmeid sadu, võib-olla tuhandeid. Nagu loomulike keelte puhul, on ka üks programmeerimiskeel mõne teisega sarnasem, mõnest jälle erinevam. Näiteks eesti keel on suhteliselt sarnane soome keelega, vene keel ukraina keelega ja rootsi keel norra keelega. Samas näiteks kuigi eesti keel ja katalaani keel ei ole väga sarnased, on neis mõlemas ikkagi nimisõnad ja tegusõnad ja muud paljudele keeltele omased asjad. Nii on ka erinevates programmeerimiskeeltes palju sarnaseid struktuure. Kuidagi peab olema organiseeritud, et
- kui teatud tingimus on täidetud, siis tehakse ühtmoodi, kui pole täidetud, siis teistmoodi;
- mingit tegevust tehakse teatud arv kordi;
- mingit tegevust tehakse niikaua, kui teatud tingimus on täidetud;
- mingeid programmiosasid saab suhteliselt iseseisvalt kasutada jne...
Programmeerimiskeeli saab tinglikult jaotada põlvkondadesse. (Põlvkondadest ja teistest ajaloolistest asjadest on juttu silmaringimaterjalis Ajaloost.) Rõhuv enamik programme kirjutatakse tänapäeval mingis kõrgtasemekeeles. Neist levinumad on näiteks C (ka C++, C#), Java, PHP ja Python. Erinevate keelte kasutuslevik on pidevas muutumises ja seda on huvitav jälgida näiteks siin.
Meie kursuse aluseks on võetud programmeerimiskeel Python. Ühelt poolt on tegemist keelega, milles tõesti ka päriselt tööstuses programmeeritakse. Teiselt poolt on see sellistest keeltest sobivaim just esimeseks õpitavaks keeleks, sest juba midagigi tegeva programmi saame kirjutada ühe rea abil. Programmeerimiskeele Python esimene versioon loodi 1989. aasta lõpus. Sellel kursusel kasutame versiooni Python 3. Täpsemalt pole versioon (nt 3.4.3 või 3.5.1) nii oluline, kuna meie jaoks on nende erinevused vähetähtsad.
Programmeerimiskeele Python looja nime juurde jõuame aga läbi järgmise küsimuse. Ka edaspidi kasutame vahel küsimusi juba siis, kui vastust veel tekstis toodud pole. Ühelt poolt tundub see võib-olla mõnevõrra kummaline - kuidas küsida õppurilt sellist asja, mida pole veel seletatudki!? Teiselt poolt aga näitavad kogemused, et sellised küsimused aitavad õppija vaimu virge hoida ja paremini teemasse sisse minna. Lisaks ei lähe vastuse hinne kuhugi arvesse, seega pole oma tulemuse pärast vaja liigselt muretseda. Enesekontrolli ülesannete puhul võite julgesti ka meelega valesti vastata, sageli ilmuvad sellisel juhul õpetlikud kommentaarid.
Ülesanne
Programmeerimiskeele Python autori kohta leiab natuke infot eesti keeles ja natuke rohkem inglise keeles.
Üks põhjus, miks Python on esimese keelena suhteliselt sobiv, on see, et päris esimese programmi kirjutamine on lihtne. Nii saame teha näiteks üherealise programmi
print("Tere!")
See programm toob ekraanile sõna "Tere!".
Tavaliselt muidugi on programmis rohkem ridu. Täiendame meiegi oma programmi.
print("Tere!") print("Head aega!")
THONNY JA PYTHONI PAIGALDAMINE ARVUTISSE
Selleks, et programmeerimiskeeles Python programmeerima hakata, on vaja Python oma arvutisse saada. Pythoni saab paigaldada eraldi, aga meie kasutame oma kursusel keskkonda Thonny, millega Python juba kaasas on. Tegelikult on olemas ka veebipõhiseid võimalusi Pythonis programmeerimiseks ja mitmeid teisi keskkondi peale Thonny. Materjalides siiski eeldame, et kasutatakse Thonnyt, sest see võimaldab meil teemasid teatud Thonny abivahenditega illustreerida. Näiteks kasutame Thonny võimalusi muutujate väärtuste näitamiseks ja programmi sammhaaval läbimiseks.
Niisiis palun paigaldage enda arvutisse Thonny. Juhise selleks leiate siit. Palume uue versiooni paigaldada ka neil, kel vana versioon on varasemast juba arvutis olemas. Põhimõtteliselt saab kursuse praktiliselt kõiki ülesandeid lahendada ka nt keskkonna IDLE või mõne teise keskkonna abil, aga materjalid on koostatud Thonnyt silmas pidades.
Püüdke nende juhiste abil eespool olnud lühike Tere-programm käivitada. Tegemist on selle kursuse jaoks väga olulise etapiga. Kui saate esimese programmi tööle, siis on suur võimalus, et saate järgmisedki! Esialgu võivad need sammud võõrad tunduda, aga lähinädalatel hakkate programme koostama, käivitama, parandama ja jälle käivitama kümneid ja sadu kordi.
Pythoni (nagu mistahes teisegi keele) programm on ühelt poolt täiesti tavaline tekstifail, mida võime kirjutada tavalise tekstiredaktoriga (näiteks Notepadi või Wordiga). Siiski on seda mugavam teha spetsiaalse redaktoriga, näiteks Thonnyga. Tavaliselt on Pythoni programmide failidel laiendiks py, Thonny lisab selle salvestamisel ise.
Kui Thonny paigaldamine oma arvutisse ei õnnestunud, siis palun kirjutage aadressil prog@ut.ee.
Lühema programmiga saime hakkama, püüame natuke pikemaga ka. Selle võite ise sisse kirjutada või siit kopeerida. Proovige programm käima saada!
arv = 1 if arv > 0: print("positiivne") else: print("mittepositiivne")
Pythonis on programmi struktuuri korraldamisel äärmiselt oluline õige taandamine ehk tühikutega mingi rea paremale poole lükkamine. (Teistes keeltes võivad selles rollis olla näiteks looksulud { } ). Proovige näiteks taanet niimoodi muuta:
arv = 1 if arv > 0: print("positiivne") else: print("mittepositiivne")
Kui mitte varem, siis nüüd juhtus selline asi, et me tahtsime käivitada vigast programmi. Seda juhtub programmeerimisel alatihti ja seda ei tohi sugugi karta. Proovige programmi parandada ja uuesti käivitada.
VAHEKOKKUVÕTE
Loodetavasti olete nüüd midagi teada saanud algoritmist ja programmist ning esimesed programmid töölegi saanud.
Nüüd võite proovida leida (ja Moodle'is esitada) ülesande 1.1. lahenduse kohustuslikest kontrollülesannetest. Võite aga kõiki ülesandeid ka lahendada pärast järgmiste selle nädala teemade läbimist.
< eelmine | 1. nädala sisukord | järgmine > |