Teooria ja ülesanded - 3. tund

Programmeerimine - tulevik su sõrmede all



Aasta 1960
Margaret Hamilton pidi toetama oma mehe õigusteaduse õpinguid Harvardis,
pärast seda pidi saabuma tema kord oma õpinguid jätkata.
Siis tuli päevakorda Apollo kosmoseprogramm...

Tema programmikood viis inimkonna Kuule.

Mida sinu programmikood võib korda saata?

EstCube

Raspberry Pi ja C.H.I.P - krediitkaardisuurused miniarvutid, 
mida saab kasutada robotite ehitamiseks 
(Raspberry Pi, C.H.I.P jt miniarvutite 
programmeerimiseks kasutatakse tihti Pythonit)


You Should Learn to Program: Christian Genco at TEDxSMU


-----------------------


Kordamiseks


-----------------------


TÄNA TUNNIS


-----------------------


Python - andmetüübid, erimärgid, muutujad ja joonistamine (tkinter)


1. Andmetüübid


sõned (string)
täisarvud (int)
ujukomaarvud (float) 


-----------------------


2. Reavahetus tekstis ja erimärgid


Reavahe tekitab märk \n
Jutumärgid välja trükitavas tekstis tuleb märkida \' või \"

Näide:


-----------------------


3. Muutujad




Muutuja nime saab programmeerija ise valida, arvestades, et muutuja nimeks ei satuks mingi programmi käsk (nagu nt print, input vms). Muutujatele saab anda erinevaid väärtusi. Nimetus muutuja viitab sellele, et väärtus võib muutuda, nt kui programmi alguses on x=5, siis hiljem võib x saada hoopis uue väärtuse.

-----------------------


4. Kommentaarid





-----------------------


5. Tehted, märgid






-------------------

Ülesanded 1


1. Kirjuta ekraanile ühe print-käsu sisse kolm sõna, nii et arvuti kirjutaks hiljem iga sõna ekraanil üksteise alla:


Hello!

Ahoi!

Aloha!
2. Kirjuta print-käsu abil ekraanile järgmised laused koos jutumärkidega:

Raamat "Minu pere ja muud loomad"
"Ahhaa!" teatas Nöffik

3. Loo programm, mis Pythonis küsib sult ekraani peal kaks arvu, lahutab need, korrutab tulemuse 8-ga, jagab 3-ga ja teatab vastuse. LAHENDUS


4. Täienda eelmist programmi nii, et vastus oleks täisarv / komaga arv. LAHENDUS



-------------------



Graafika Pythonis - tkinter




tkinter on Pythoni üks graafikamooduleid.

Moodul on programmi loojate või arendajate poolt eelnevalt valmis kirjutatud funktsioonide kogum.
Kui installida arvutisse Pythoni programmeerimiskeskkond, siis sellega tulevad kaasa ka erinevad moodulid ehk eelnevalt valmis kirjutatud programmikoodid, mis aitavad Pythoni programmeerimist lihtsamaks muuta (st keegi on osa programmeerimistööd meie eest juba ära teinud ja saame oma programmide loomisel kasutada neid olemasolevaid koode).

Need tööd lihtsustavad programmikoodid sisalduvad failides, mis koos Pythoni installiga sinu arvutisse laaditi.

Erinevad moodulid kirjeldavad arvuti jaoks ära, mida tähendavad mõisted nagu oval, line, sin (ehk siinus), cos (ehk koosinus) jpm. See tähendab, et saame neid mõisteid oma programmides kasutada, ilma, et peaksime hakkama arvutile ise selgitama, mida näiteks sõna "oval" või "line" tähendab.

tkinter tuleb sõnadest Tk interface (Tk liides).
Liides on miski, mis aitab arvuti eri osadel või erinevatel programmidel omavahel suhelda.
Tk on n-ö graafiliste tööriistade komplekt. See sisaldab erinevaid "vidinaid" graafika jm loomiseks.

tkinter moodul aitab selle graafiliste tööriistade komplekti Pythonis kasutusele võtta.

Selleks, et Tk vidinaid tkinteri abil kasutada, peame need importima:


See lause tähendab piltlikult, et kui me oma programmikoodi hiljem tööle paneme, "haagitakse" tkinteriga vajalikud graafikavidinad sellele külge.

Koos graafikaga on võimalik kasutada ka erinevaid kirjastiile ja graafika-aknasse kirjutada. Selleks on meil vaja importida ka kirja muutmiseks vajalik komplekt.


Tk vidinate hulgas on funktsioon Tk(), mis tekitab meile akna ehk aluse, mille peale joonistama hakata.
raam = Tk() - selleks, et seda akent kasutada, anname talle nime ehk salvestame ta muutujasse. Paneme muutuja nimeks näiteks "raam".

Tk() funktsioon tekitab meile nagu laua, aluse või raami, mille peal joonistama hakata. Nüüd on aga vaja ka lõuendit, kuhu peale joonistada. Selleks on Tk vidinate hulgas olemas Canvas.


Canvas(raam, width=600, height=600, background="white") - tähendab, et asetame lõuendi alusele nimega "raam" ja määrame lõuendi suuruse ning värvi.

Et hiljem saaksime oma lõuendile kiiresti viidata ja sellega erinevaid toiminguid teha, anname talle ka nime, näiteks "louend".

louend.grid() - selleks, et kergem oleks asju lõuendile paigutada, paneme lõuendile ka (nähtamatu) ruudustiku, funktsiooni grid() abil.


-------------------



Joon, ovaal, ring, ristkülik



Joon:  create_line(x0, y0, x1, y1, fill="red")
Joon AB koordinaatidega x0=2, y0=4, x1=8, y1=4


Ovaal: create_oval(x0, y0, x1, y1, fill = "blue")
Ring: create_oval(x0, y0, x0+arv1, y0+arv1) - arv1 peab ringi puhul olema üks ja sama arv
Ristkülik: create_rectangle(x0, y0, x1, y1)



Hulknurk: create_polygon(x0, y0, x1, y1, x2, y2, ..., xn, yn)




-------------------



Ülesanded 2 - tkinter



1. Joonista ovaal, ring, joon, ristkülik. Värvi need. Lahendus
2. Joonista Eesti lipp. Lahendus
3. Joonista mõni keerulisem lipp, nt Jamaica lipp
4. Joonista pea (ovaal), üks silm kinni, teine silm lahti ja punane suu. Lahendus
5. Keera nägu tagurpidi, peegelpildis (silmad all, suu üleval - vt joonist)
6. Keera nägu tagurpidi, 180 kraadi (kellaosuti liikumise suunas)
7. Joonista pea alla ka keha ja käed, jalad

Täpsemad juhendid: https://programmeerimine.cs.ut.ee/tkinter.html#tahvel-canvas



 




-------------------


Kodused tööd



  • Kirjuta skript, mis joonistab tahvlile (canvas) maja, puu vms.
  • Kirjuta skript, mis joonistab tahvlile (canvas) peegelpildis vähemalt 2 kujundit
  • Joonista mõni keerulisem kujundite kombinatsioon ja värvi need.











Kommentaare ei ole:

Postita kommentaar