-
Ono što želim da uradim u ovom snimku
jeste da vas izložim ideji
-
i da vam predstavim
-
šta je to kompjuterski program.
-
A u slučaju da želite da isprobavate usput,
-
a jako vam preporučujem da to radite,
-
jer pravi način za učenje računarskih nauka
-
i jeste da se malo sami poigrate sa stvarima...
-
Dakle, ako želite da isprobavate,
ovo je Python (čita se: pajton) okruženje
-
tako da ću dosta programirati
u jeziku zvanom Python.
-
A ovo ovde, ovo okruženje
se naziva PyScripter.
-
P-Y-S-C-R-I-P-T-E-R.
(izgovor: P-A-J-S-K-R-I-P-T-E-R)
-
Besplatano je, To je "open-source" softver
(prevod: softver otvorenog koda).
-
I ja ću koristiti Python... Python...
-
Mislim da koristim Python 2.6 ili 2.7.
-
Dokle god koristite Python 2
-
vaši primeri će biti isti kao i moji,
-
radiće na isti način.
-
Ali ako koristite Python 3
-
moraćete da koristite
malo drugačiji pristup
-
s vremena na vreme
kako bi sve radilo korektno.
-
Pokušaću da ukažem na te izuzetke
kada se budu dešavali.
-
Dakle, hajde da počnemo sa pisanjem
jednog kompjuterskog programa.
-
Ono što je super u tome
-
jeste to što program
možemo pisati odmah tu.
-
A u suštini samo menjamo
tekstualni dokument.
-
To je sve što radimo.
-
To je grupa instrukcija (naredbi)
-
i u većini slučajeva će kompjuter početi
-
sa vrha ovog dokumenta
i jednostavno nastaviti naniže
-
čitajući ove naredbe.
-
Iako ćete kasnije videti
-
da postoje načini da se kompjuteru kaže
-
da preskoči neke naredbe,
ali i da kruži kroz instrukcije
-
tako da nešto može da radi iznova i iznova
ili da neke druge stvari preskoči.
-
Imajući u vidu rečeno, hajde da
napišemo jednostavan program.
-
I dok ovo radimo,
-
upoznaćemo se sa nekim od
osnovnih koncepata
-
koji se javljaju u okviru
kompjuterkog programa.
-
Dopustite mi da vam napišem
veoma jednostavan računarski program.
-
Dakle, jedan veoma jednostavan
računarski program
-
bi bio bukvalno samo jedan izraz.
-
Stoga, napisaću samo print 3 + 7,
-
Ovaj program će bukvalno da uzme 3 + 7
i da to prikaže na ekranu.
-
Program će to proslediti print funkciji
-
koja dolazi u okviru Python jezika.
-
Možda da to napišem ovako:
print( 3 + 7 ).
-
Sačuvaću dokument.
Dakle postoji samo jedna...
-
ako razmislite o tome,
samo jedna komanda
-
ovde na prvoj liniji.
Ona kaže print 3 + 7
-
Zapravo, hajde da dodamo
još jednu naredbu,
-
da biste videli da će program
da se izvrši od vrha pa na dole.
-
Dodaću još jednu liniju:
print( 2 - 1 )
-
i onda da uradimo ovo:
print( "this is a chunk of text" ).
-
Hajde da vidimo šta će
ovaj kompjuterski program
-
da uradi.
-
Sačuvaću ga.
-
Sačuvaću ga.
-
Sačuvao sam ga kao dokument "testarea.py".
Kaže da... da... da je to...
-
Ekstenzija .py označava Python dokument.
-
Sada, hajde da izvršimo program.
-
Ono što je lepo kod ovog
okruženja za razvoj,
-
kod ovog IDE-a odnosno
"Integrisanog okruženja za razvoj"
-
jeste to što možete da pišete
i izvršavate program na istom mestu.
-
Takođe, ono boji vaš tekst,
-
tako da možete jasno videti
šta je funkcija, šta nije funkcija,
-
različite tipove podataka...
-
pričaćemo kasnije još o tipovima podataka.
-
Hajde da samo pokrenimo program
da vidimo šta će se desiti.
-
Evo nas, izvršili smo program!
-
Program je prikazao 10 [deset], zatim 1 [jedan],
-
i na kraju je prikazao "this is a chunk of text"
(prevod: ovo je parče teksta).
-
Dakle program je uradio
tačno ono sto šmo mu rekli da uradi.
-
I uradio je to u odgovarajućem redosledu.
-
Počeo je ovde gore,
izvršio 3 + 7 i dobio 10,
-
zatim je prikazao rezultat,
prikazao je 10 [deset] ovde.
-
Zatim je prikazao 2-1,
-
i na kraju je prikazao
"this is a chunk of text".
-
A sada jedna stvar sa kojom sam želeo
da vas upoznam, još odmah na početku,
-
to je ideja o tipovima podataka.
-
Možda kada ste videli ovaj primer,
-
možda ste imali neki osećaj koji kaže:
-
"Vidi, tamo ima nešto što je malo drugačije
-
između 3 [tri] ili 2 [dva] ili 1 [jedan] ili 7 [sedam]
i "this is a chunk of text".
-
Ovo je broj... osećam da... da ja jednostavno
mogu da sabiram brojeve.
-
Oni predstavljaju nešto u smislu količine.
-
Dok ovo ispod predstavlja parče teksta."
-
I vaša intuicija bi bila na mestu.
-
Postoje različiti tipovi podataka.
-
Na primer 3 [tri], 7 [sedam] i 1 [jedan]...
to su numeričke vrednosti.
-
U ovom konkretnom slučaju,
oni su celi brojevi.
-
A možete i...
u ovom ovde,
-
to je zapravo String,
-
što je reč koju možete
često čuti u računarskoj nauci.
-
To je u suštini, pokazivač
na niz slovnih karaktera.
-
A u Python-u možemo da pitamo
-
koji su tipovi ovih stvari.
-
Možete ih proslediti funkciji
"type" (prevod: tip)
-
tako da će se prikazati i tip podataka
od 3 + 7, a ne samo 10.
-
Hajde da to probamo. Samo ću prikazati
2 - 1 da vam pokažem razliku.
-
Zatim ću prikazati tip
od "this chunk of text".
-
Tip od "this chunk of text".
-
Dakle, hade da ga sačuvamo.
Samo ću pritisnuti CTRL+S na tastaturi,
-
To je prečica za čuvanje.
-
I zatim ću pokušati
da izvršim ovaj program.
-
Evo ga.
-
Izvršio je ovaj izraz.
-
Da bi izvršio ovo,
počinje kod unutrašnjih zagrada.
-
3 + 7 je 10. Zatim pokušava
da dobije tip podataka od 10,
-
koji je int, a zatim ispisuje taj tip int.
-
I upravo to vidite ovde. Kaže tip int.
-
int je skraćeno od Integer
(prevod: ceo broj).
-
Zatim kaže print( 2 - 1 ).
-
To radi na ovoj liniji ovde,
-
prikazuje 1,
-
a zatim prikazuje tip
od cele ove stvari ovde.
-
Dakle, umesto prikazivanja teksta,
-
prikazuje njegov tip.
I njegova vrsta je String.
-
Sledeća stvar sa kojom
želim da vas upoznam,
-
dok eksperimentišemo
sa programima,
-
jeste ideja promenljive.
-
Zbog toga što je jedna
od stvari koje će nam trebati
-
ta da čuvamo ove vrednosti
na različitim mestima.
-
U narednim snimcima ćemo
naučiti da u Python-u
-
imamo nešto nalik na
etikete za ove vrednosti,
-
i da te etikete
mogu da se menjaju.
-
Ili na primer, možemo im dodeliti
drugačije tipove etiketa.
-
Hajde da napišemo totalno drugačiji
program koristeći promenljive.
-
Dakle, hade da...
Ono što je super kod Python-a,
-
iako se nekim ljudima to ne dopada,
-
jeste to što se bilo koji tip podataka
može staviti u bilo koji tip promenljive.
-
Tako možete reći
a = 3 + 5,
-
zatim možemo reći
b = a * a - a - 1
-
[napomena: * znaci "puta",
koristi se za množenje]
-
zatim možete reći
c = a * b.
-
A onda možete imati nešto nalik na...
-
Staviću malo prostora ovde
da program učinim nešto preglednijim.
-
c = a * b
-
Onda možemo reći,
hajde da prikažemo c.
-
Ukoliko želitie,
možete da pokušate
-
da razumete kako će c da izgleda
-
ili možemo samo da
izvršimo ovaj program.
-
Hajde da prvo izvršimo program
-
i onda da se vratimo nazad i vidimo
-
da li je program udradio ispravnu stvar.
-
Sačuvaću program,
-
i sada ću ga izvršiti.
-
Dobili smo 440 za c. Hajde da vidimo
da li ovaj rezultat ima smisla.
-
Dakle, 3 + 5 je 8. Dakle,
etiketa a će se odnositi na 8.
-
Svako mesto u programu,
sve dok ne redefinišemo a,
-
svaki put kada koristimo a, program će reći:
a je 8. Znaće da se a odnosi na 8.
-
Tako da kada krenemo dalje,
ovde dole, gde definišemo b
-
program će reći OK... a * a.
Koristi redosled operacija.
-
Dakle, kod redosleda operacija,
prvo ćete raditi množenje.
-
a * a će biti...
Pogotovo kada poredite sa oduzimanjem.
-
Dakle, a * a će biti 64.
-
Tada imamo 64 - a je 64 - 8, što daje 56.
Kada oduzmemo 1 dobijamo 55.
-
Dakle b je 55. I c će biti a...
koje je 8... pomnoženo sa 55...
-
I 8 puta 55 je upravo 440.
-
Tako da je sve ispalo kako treba.
-
Možda želite da vidite šta se dobije
-
kada probate drugačiju vrednosti za a.
-
Možete pokušati to da odradite.
-
Možete prosto promeniti šta se dešava
ovde za drugačije vrednosti a.
-
Možda da probamo da nam
a bude jednako...
-
Hajde da bude jednako -6.
-
I sada izvršite program
da vidite šta će se desiti.
-
Dobili smo -246.
I sada možete to da potvrdite i sami.
-
Idite liniju po liniju, i pogledajte
na šta promenljive pokazuju
-
na šta su definisane da pokazuju,
-
i vidite da li možete da dobijete
ovaj odgovor ovde.
-
Sada, ako su programi samo grupa naredbi
-
kroz koje se uvek prolazi pravolinijski,
-
ne biste bili u mogućnost da
radite zaista zanimljive stvari.
-
dakle, da biste radili
zaista interesantne stvari, počećete da
-
viđate stvari kao što su uslovi i petlje.
-
A uslovi i petlje su nešto kao...
-
Hajde da to uradimo ovako
-
Dakle... ako.. ostaviću
prve linije koda nepromenjene.
-
I reći ćemo if (a < 0):.
Možda ćemo izvršiti print( c )
-
Zatim otkucati else:,
i u ovom slučaju zadaćemo print (c - a).
-
Dakle ovo je interesantno.
Možda već imate osećaj
-
šta će se dogoditi ovde.
Sačuvajmo ga.
-
Neverovatno je koliko možete da uradite
-
samo sa ovim uslovima.
Dakle, ovo nam govori da
-
ako je a manje od nule, uradi ovo,
-
u suprotnom, ako a nije manje od 0,
uradi ovo ovde.
-
Primetite da ne idemo direktno nadole.
-
U zavisnosti od toga
da li je a veće ili manje od 0,
-
program će ili da izvrši ovu liniju ovde,
-
ili će da izrvrši ovu liniju ovde.
-
A način na koji Python zna
da izvrši samo ovu liniju,
-
ako je a bilo manje od 0,
jeste zato što je uvučeno ovde.
-
Uvučen je ovaj deo uslova.
-
Način na koji Python zna
da postoje novi uslove upravo ovde
-
jeste zbog ove dvotačke ovde.
-
A onda, način na koji zna
šta da izvrši
-
ako se ništa od toga ne desi
-
ukoliko a nije manje od 0,
onda program izvršava ovaj else uslov.
-
Ukoliko želite da uradite
nešto drugo nakon ovoga,
-
bez obzira da li je
a veće od 0 ili ne,
-
možete da se oslobodite ovog uslova
-
tako što ćete ukloniti uvlačenje.
-
Dakle, sada možemo da prikažemo
-
"we are done with the program"
(prevod: gotovi smo sa programom).
-
Zapravo, hajde da dodamo
još nešto ovom uslovu.
-
Hajde da prikažemo ovde a < 0
-
Obratite pažnju:
ovo neće biti izvršeno.
-
Imamo ovo u okviru stringa,
-
tako da će program samo to prikazati.
-
A na ovom mestu, rećićemo
print( "a is not less than 0" )
(prevod: a nije manje od 0)
-
Ovo je interesantan program.
Hajde da ga pokrenemo sad. Dobro.
-
Nadajmo se da će se pokrenuti.
Sačuvao sam ga. Sada, hajde da ga izvršimo.
-
I kaže, ispisao je a < 0.
-
Ako bi malo otkotrljali na gore...
-
Ispisao je... dakle to je...
pokrenemo program... prikazao je a < 0,
-
dakle pokazuje da smo
unutar ovog uslova.
-
Zatim je prikazao ovo.
Prikazao je c, koje ima vrednost -246.
-
Program ne izvršva ovo,
-
zato što bi to bilo izvršeno
samo ako a ne bi bilo manje od 0.
-
Ali tada iskoči iz ovog uslova,
-
i prikazuje sledeće bez obzira na sve:
-
"we are done with the program"
(prevod: završili smo sa programom).
-
Hajde sada da promenimo a
i vidimo šta ćemo dobiti kada
-
pokrenemo ovaj drugi uslov.
-
Hajde da napravimo da je a veće od 0.
-
Hajde da stavimo da je a jednako 9
i sada pokrenemo program.
-
Dakle, a je 9.
Proverava "da li je a manje od 0?".
-
Pa, 9 nije manje od 0.
-
Dakle neće izvršiti ovo.
-
Otići će na else uslov.
-
Dakle, prikazaće "a is not less than 0",
(prevod: a nije manje od 0)
-
što je izvršio ovde.
Zatim će odštampati c - a
-
što je 630.
Iskače iz tog uslova,
-
I bez obzira da li je
a manje od 0 ili ne,
-
prikazuje "we are done with the program"
(prevod: gotovi smo sa programom).