GOO u nastavnim temama iz informatike u osnovnoj skoli
Python by zlatko markovinovic
1. PYTHON
Zlatko Markovinović, prof. mentor
Gimnazija „Matija Mesić”, Slavonski Brod
2. Što, zašto i kako?
Detektirati probleme nastave programiranja
Ustanoviti rješenje koje zadovoljava
Pripremiti nastavnike
Prilagoditi nastavne planove i programe
4. Što djeca uče u školi?
OŠ - Logo, Basic/Pascal
SŠ - BASIC, Pascal, C, (C++, C#, Java)
Uspjeh – upoznati sintaksu svih jezika
Algoritamski pristup-nema vremena
5. Može li samo jedan jezik?
Besplatan
Jednostavna sintaksa
Lagan za naučiti
Jezik visoke razine (moćan, objektno orjentiran)
Dobro dokumentiran
Bogata biblioteka programa
6. Python
je softver otvorenog koda (open source)
je jednostavniji od Q-basica
je izuzetno moćan (kalkulator, web, igrice...)
je objektno-orijentirani jezik
je 7. jezik na ljestvici najpopularnijih (trav. 2010.)
je idealan za učenje programiranja
7. Python
nastao je 1990.
tvorac – Nizozemac Guido van Rossum
interpreter (može i exe pomoću py2exe)
koriste ga NASA, IBM, Google, Yahoo,...
podučavaju ga na MIT-u i na našim fakultetima
objektno-orijetnirani jezik
8. Osobine Pythona
nema točka-zarez na kraju naredbe
nema deklaraciju varijabli
sve je objekt
nema oznaku početka i kraja bloka naredbi
blok se definira uvlakama (C-{}, Pascal- Begin
End)
učenik zato mora pisati pregledan strukturirani kod
9. Usporedba Python-Pascal
Python
a=input('Unesi duljinu stranice kvadrata:')
print 'Kvadrat stranice ',a,' ima površinu ',a*a
Rezultat
>>>
Unesi duljinu stranice kvadrata:5
Kvadrat stranice 5 ima površinu 25
Pascal
var a:integer;
begin
writeln('Unesi duljinu stranice kvadrata:');
readln(a);
writeln('Kvadrat stranice ',a,' ima površinu ',a*a);
readln
end
10. Što sve može?
izrada grafičkog sučelja (Tkinter modul)
from Tkinter import *
root = Tk()
root.title ("Pozdrav")
Label (root, text = 'ovo je labela',font = 'times 16 bold').pack()
Button(root, text = 'ovdje klikni',font = 'times 16 bold').pack()
root.mainloop()
11. Što sve može?
kornjačina grafika (Turtle modul)
from turtle import*
reset()
for i in range(4):
fd(40)
lt(90)
clear()
hideturtle()
for i in range(110):
lt(55)
fd(60)
for i in range(15):
rt(65)
fd(23)
12. Zašto Python?
jezik za početnike
jezik kojim djeca zavole programiranje
jezik koji darovitima otvara mogućnosti
jezik koji ima smisla učiti
17. Implementirani tipovi podataka
[ 'pauza', '12', 17.3 ] # lista ili popis - list
promjenljiv poredani niz članova
članovi su objekti bilo kojeg tipa
(137, 66, '120' ) # n-terac - tuple
nepromjenljivi niz članova
članovi su objekti bilo kojeg tipa
{’i’:17, ’j’:2.9} # rječnik - dictionary
član u rječniku je par kjuč/vrijednost
ključevi moraju biti jedinstveni
18. Naredbe print i input
Print
>>> print 'Ljeto odlazi'
Ljeto odlazi
>>> a=4
>>> b=8
>>> print a,'+',b,'=',a+b
4 + 8 = 12
>>>
Input
>>> ocjena=input('Unesi ocjenu:')
Unesi ocjenu:5
>>> print 'Uspjeh ti je ',ocjena
Uspjeh ti je 5
>>> poruka=raw_input('Unesi poruku:')
Unesi poruku:Dobar dan
>>> print poruka
Dobar dan
19. Python kao kalkulator
sadržaj math modula
>>> help()
help> math #pregled sadržaja math modula
help> quit #izlaz iz helpa
>>> from math import *
>>> print factorial(5)
120
>>> 15/5*3
9
>>> 15/(5*3)
1
>>> 5/3 # Cjelobrojno dijeljenje
1
>>> 5./3 # Dodamo točku ako želimo realan rezultat
1.6666666666666667
20. Naredba grananja-if..elif
if uvjet1:
blok1 #naredba ili više njih
elif uvjet2:
blok2
...
else uvjetn:
blokn
# Za broj ispiši ako je negativan inače utvrdi parnost.
x=input('unesi broj')
if x < 0: print "x je negativan"
elif x % 2: print "x je pozitivan i neparan"
else: print "x je paran i nije ne-negativan"
21. Naredba ponavljanja - for
for cilj in nizu:
blok #naredba ili više njih
# Ispiši slova riječi "Ivo"
>>> for znak in "Ivo":
print znak
I
v
o
# Ispiši koga voliš.
>>> for ime in ['Ana','Ema','Viktorija']:
print ime, ' volim te!'
Ana volim te!
Ema volim te!
Viktorija volim te!
22. Funkcija range
range(x,y,step) - vraća niz cijelih brojeva od x
(uključeno) do y (isključeno) s korakom step
# Zbrojiti prvih 10 parnih brojeva.
s=0
for x in range(0,11,2):
s+=x # s=s+x
print s
# Ispiši srednju vrijednost za n unešenih brojeva.
n=input ('Koliko brojeva unosite?')
suma=0. # realna suma
for i in range(n): # od 0 do n-1 ima n brojeva
x =input("Unesite broj=")
suma=suma+x
print " Srednja vrijednost =",suma/n
23. Naredba ponavljanja - while
while uvjet:
blok #naredba ili više njih
# Zbrojiti prvih 10 parnih brojeva.
s=0;x=0
while x<11:
if x%2==0: # % ostatak pri cjelobrojnom djeljenju
s+=x # s=s+x
x+=1
print s
24. Naredbe break
dozvoljena samo unutar petlje
izvršavanjem break naredbe petlja završava
# Izlaz iz beskonačnog ponavljanja
while True:
x=input('Unesi 1 za kraj')
if x==1:
break
25. Kornjačina grafika
Python kao Logo
Naredbe se nalaze u modulu Turtle
# Nacrtaj pravokutnik
from turtle import*
reset()
for i in range(4):
fd(140)
lt(90)