20
OSNOVE PROGRAMIRANJA U PAJTONU PREDAVANJE 5 - FUNKCIJE Miloš Kovačević Đorđe Nedeljković Marija Petronijević Dušan Isailović

OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE

OSNOVE PROGRAMIRANJA U PAJTONU

PREDAVANJE 5 - FUNKCIJE

Miloš Kovačević

Đorđe Nedeljković

Marija Petronijević

Dušan Isailović

Page 2: OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE

SADRŽAJ PREDAVANJA

- Dekompozicija i apstrakcija

- Korisničke funkcije

- Imenski prostori

Page 3: OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE

DEKOMPOZICIJA

Za lakše sagledavanje kompleksnih sistema (programa) koristimo dekompoziciju.

Sistemska dekompozicija – podela na manje, jednostavnije i nezavisne delove.

Primer:Računarski sistem dekomponuje se na procesor, radnu memoriju, spoljnu memoriju i ulazno izlazne uređaje.

Dekompozicija nije:

kada se računarski sistem razbije usled pada na proizvoljne delove. Zašto?

Akcenat se stavlja na nezavisno funkcionisanje i ponovnu upotrebu.

Primer:Pravljenje proje: nabavka namirnica, priprema smese, pečenje.

Page 4: OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE

APSTRAKCIJA

Apstrakcija je pojednostavljenje sistema na model.

Stepen pojednostavljenja zavisi od konteksta primene.

Primer 1 (poznat od ranije):

y = sin(x)

Primer 2:

Izračunavanje sinusa:

Apstrahovanje izračunavanja funkcijom na digitronu:

Nije potrebno da znamo kako se sinus izračunava, već kako se poziva funkcija i šta joj treba proslediti.

Page 5: OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE

PRAVOUGAONA UMETNOST

Zadatak:

Nacrtati pravougaonu šemu dimenzija 2 x 3 koja je ispunjena zadatim simbolom. Šema je odmaknuta za 10 mesta udesno.

92

3 k-1a

b

parametrizacijapostupka crtanja

linija je brojač koji se ne koristi u bloku petlje

Page 6: OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE

ČIČA GLIŠA

Zadatak:

Nacrtati čiča Glišu prema sledećoj slici:

Primeniti dekompoziciju!

Sliku podeliti na glavu, trup i noge.

Ponoviti isti parametrizovan postupak za crtanje pravougaonih delova.

Page 7: OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE

ČIČA GLIŠA - MANE TEKUĆEG PRISTUPA

Mane primenjenog pristupa iscrtavanja:

Istovetan parametrizovani postupak (izvorni kod) ponavlja se više puta.

Postupak iscrtavanja složenijih slika postaje sve kompleksniji.

Sa porastom kompleksnosti postupka, raste nepreglednost potrebnog izvornog koda.

Otežano modifikovanje postojećih ili uvođenje novih mogućnosti u iscrtavanju jer treba intervenisati na više različitih mesta.

REŠENJE:

Apstrahovanje iscrtavanja pravougaonika putem korisnički definisane funkcije!

Napomena: input(), print(), range(), ... predstavljaju predefinisane (ili ugrađene) funkcije Pajtona

Page 8: OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE

KORISNIČKE FUNKCIJE - CRTANJE ČIČA GLIŠE

Definisanje funkcije za iscrtavanje pravougaonika putem ključne reči def

ime f-je formalni parametri

obavezna dvotačka kojom počinje blok funkcije

def pravougaonik(a,b,sim,k):

potpis funkcije

Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim)

poziv funkcije stvarni parametri (ili argumenti)

Page 9: OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE

KORISNIČKE FUNKCIJE - DOCSTRING

Ispisuje se pozivanjem ugrađene f-je help(ime_f-je)

Između ’’’ … ’’’ obavezno posle potpisa – docstring

docstring - višeredni opis funkcije

Page 10: OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE

PRAVLJENJE SLOŽENIJIH FUNKCIONALNOSTI

Zahvaljujući funkcijama:

nema ponavljanja izvornog koda

smanjena je kompleksnost programa (zbog apstrahovanja funkcionalnosti)

olakšano je modifikovanje koda (promena se vrši na jednom mestu – u funkciji)

Kombinovanjem funkcija grade se složenije funkcionalnosti (dekompozicija i apstrakcija na delu!)

Zagrade se uvek navode (i kod funkcija bez parametara)

Funkcije mogu pozivati druge funkcije

Page 11: OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE

POVRATNE VREDNOSTI FUNKCIJA

Funkcija vraća rezultat svog rada putem objekta određenog tipa, putem naredbe return.

Logička promenljiva određuje smer konverzije

Napomena: u štampanoj verziji knjige, umesto True stoji 1, brojne vrednosti različite od 0 tretiraju se kao logička istina.

Page 12: OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE

FUNKCIJE BEZ RETURN NAREDBE

Funkcija uvek vraća rezultat svoga rada kao jedan ili više objekata.

Šta vraća ova funkcija?

Funkcije bez return vraćaju specijalni objekat None :

Page 13: OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE

POVRATNE VREDNOSTI RAZLIČITIH TIPOVA

Funkcija može da prekine rad na više mesta, vraćajući objekte različitih tipova.

Page 14: OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE

IMENOVANI I OPCIONI PARAMETRI

Ako redosled parametara u potpisu nije kao u potpisu, onda se oni moraju imenovati.

Opcioni parametri mogu se izostaviti iz poziva.

Opcioni parametri u potpisu su oblika ime = vrednost. Definišu se posle obaveznih.

Poziv sa imenovanim parametrima(preko reda)

Opcioni parametar (jezik) izostavljen

Page 15: OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE

IMENSKI PROSTOR I OPSEG VAŽENJA PROMENLJIVE

Promenljive - imena za objekte.

Ime se najčešće vezuje za objekat kroz naredbu dodele vrednosti.

površina = 25.11

obim = 11.24

Skup imena definisanih u programu naziva se imenski prostor programa(realizuje se tabelom imena)

Opseg važenja promenljive: deo izvornog koda u kome se promenljiva može koristiti, uz navođenje njenog imena

Page 16: OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE

IMENSKI PROSTOR I OPSEG VAŽENJA PROMENLJIVE

Program definiše globalni imenski prostor:promnljive definisane u programu – globalne prom.

Funkcija definiše lokalni imenski prostor:promnljive definisane u funkciji – lokalne promenljive.

Ugrađeni imenski prostor kreira se pri pokretanju interpretera. On sadrži predefinisana imena – npr. input()

Imenski prostori omogućavaju da promenljive koje se odnose na različite objekte, u različitim delovima izvornog koda mogu imati ista imena

Page 17: OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE

IMENSKI PROSTORI – PRIMER

b, c – lokalnea – globalna

a, b – globalnec – nedefinisana

Page 18: OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE

IMENSKI PROSTORI – ČESTA GREŠKA!

Prilikom dodele u funkciji a postaje lokalna promenljiva izraz a + 1 ne može da se izračunajer lokalna promenljiva nije prethodno definisana unutar funkcije

Page 19: OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE

PRENOS STVARNIH PARAMETARA U FUNKCIJU

Formalni parametri pripadaju imenskom prostoru funkcije – lokalne promenljive!

Prenose se u funkciju kopiranjem vrednosti objektnih referenci u njen imenski prostor.

tabela imena – globalni prostor

a1

tabela imena – lokalni prostor

a1

a1

2

Page 20: OSNOVE PROGRAMIRANJA U PAJTONU...Uočiti da je, pored dimenzija i pomeraja, parametrizovan i simbol ispune (sim) poziv funkcije stvarni parametri (ili argumenti) KORISNIČKE FUNKCIJE