Would you like to react to this message? Create an account in a few clicks or log in to continue.

Funkcija

Go down

Funkcija Empty Funkcija

Post by Miroslav Fri Nov 14, 2014 2:14 am

Definicija pojma funkcije.

Miroslav
Admin

Posts : 38
Join date : 2014-11-13

https://ita14.board-directory.net

Back to top Go down

Funkcija Empty Re: Funkcija

Post by Miroslav Fri Nov 14, 2014 2:49 am

Pojam funkcije je usko povezan sa sledecim pojmovima: procedura, metoda, podrutina, potprogram, a mozemo reci i naredba.

Kada se kaze funkcija ne misli se na matematicku funkciju, mada odredjene slicnosti postoje (naprimer, i programska i matematicka funkcija preslikavaju jedan skup vrednosti -- ulaz -- u drugi skup vrednosti -- izlaz.)

U odredjenim programskim jezicima, kao sto je naprimer Pascal, pravi se razlika izmedju funkcija i procedura: funkcija je procedura sa povratnom vrednoscu dok je procedura funkcija bez povratne vrednosti. U drugim programskim jezicima, kao sto je naprimer C, takva razlika se ne pravi te se procedure i funkcije shvataju kao sinonimi (odnosno, umesto reci "procedura" i "funkcija" koriste se reci "funkcija bez povratne vrednosti" i "funkcija sa povratnom vrednoscu".)

Metoda je naziv koji se koristi u objektno-orijentisanim okruzenjima (gde funkcije pripadaju podacima, a ne podaci funkcijama.)

Potprogram i podrutina su verovatno stari nazivi koje danas niko ne koristi.

U okviru ove teme koristicu pojam funkcije koji se koristi u programskom jeziku C (znaci procedure i funkcije su razlicite nijanse jedne te iste stvari a ne dve potpuno razlicite stvari.)


Last edited by Admin on Fri Nov 14, 2014 5:52 am; edited 1 time in total

Miroslav
Admin

Posts : 38
Join date : 2014-11-13

https://ita14.board-directory.net

Back to top Go down

Funkcija Empty Re: Funkcija

Post by Miroslav Fri Nov 14, 2014 3:24 am

Osnovna svrha funkcija je da se smanji potreba za prekucavanjem jednog te istog bloka naredbi. Prekucavanje je izuzetno dosadan posao, a osim sto je dosadan, sklon je greskama (pad koncentracije, itd.)

Recimo da imamo jedan ovakav blok naredbi:

Code:
ustani();
umijSe();
operiZube();
istusirajSe();
spremiDorucak();
doruckuj();
operiSudove();
spremiSeZaPosao();
uzmiKljuceveOdAuta();
izadjiIzKuce();
udjiUAuto();
upaliAuto();
voziDoPosla();
izadjiIzAuta();
udjiUKancelariju();

Naravno, ovo nije blok naredbi upucen racunaru (mada bi mogao biti) vec blok naredbi upucen coveku, ali to nam je sasvim dovoljno da bismo objasnili svrhu funkcija.

Recimo ako bismo hteli da obavljamo taj isti blok naredbi svakog radnog dana, onda bismo morali da ponavljamo ceo taj blok, sto je izuzetno naporno. Lakse bi bilo kada bismo mogli nekako da taj blok naredbi navedemo samo jednom i da onda svakog radnog dana navodimo samo jednu naredbu, recimo idiNaPosao(). Funkcije nam sluze upravo za to.

Umesto da 50 puta prekucavamo jedan te isti tekst koji se sastoji od manjeg ili veceg broja naredbi, mi jednostavno jednom napisemo taj ceo blok i onda 50 puta prekucavamo jednu naredbu (sto je jos uvek dosadno, ali mnogo manje nego sto bi bilo kada bi morali da prekucavamo 50 x 15 = 750 redova.)


Last edited by Admin on Fri Nov 14, 2014 5:50 am; edited 1 time in total

Miroslav
Admin

Posts : 38
Join date : 2014-11-13

https://ita14.board-directory.net

Back to top Go down

Funkcija Empty Re: Funkcija

Post by Miroslav Fri Nov 14, 2014 5:48 am

Proces i definicija procesa.
 
U racunarskoj terminologiji, proces bi bio program koji se izvrsava, dok bi definicija procesa bio kod tog programa (koji se ne izvrsava, vec samo miruje u nekom fajlu na racunaru.)
 
Proces: serija koraka.
Definicija procesa: plan serije koraka koji trebaju da se izvrse (ili mozda prosto opis nacina na koji se neki proces odvija, to se takodje racuna kao definicija procesa.)
 
Uzmimo za primer sutiranje na kos za tri poena. Sutiranje na kos za tri poena je proces, dok je sledece definicija tog procesa:
 
1. uzmi loptu
2. stani ispred linije za tri poena
3. baci loptu na kos ciljajuci na to da prodje kroz obruc
 
Definiciju procesa cine koraci. U navedenom primeru, jedan korak bi bio "uzmimo loptu", drugi korak bi bio "stanimo ispred linije za tri poena" i tako dalje.
 
Medjutim, svaki korak je u sustini proces koji je sacinjen od drugih koraka -- od manjih koraka -- i sve tako do "atomskih" koraka koji nisu sacinjeni od nijednog drugog koraka (u realnosti, medjutim, ne postoje "atomski" koraci, vec svo to zumiranje vodi u beskonacnost, ali necemo sad o tome.) U programiranju, mogli bismo reci da su "atomski" koraci procesorske instrukcije.
 
Korak "uzmi loptu" je dakle proces koji je sacinjen od drugih koraka. To znaci da ga mozemo definisati. Naprimer:
 
1. priblizi se lopti
2. sagni se
3. ispruzi ruke
4. uhvati loptu
5. podigni ruke i ispravi se drzeci loptu
 
Zatim mozemo uzeti korak "priblizi se lopti" i razloziti ga na manje korake i sve to isto uraditi za bilo koji od razlozenih koraka i sve tako u beskonacnost.
 
Nijedan proces se ne moze definisati u potpunosti. Kao sto sam napomenuo ranije, svaki proces je sacinjen od beskonacno mnogo potprocesa. Definisati proces u potpunosti bi znacilo definisati ceo univerzum, sto je nemoguce jer smo mi unutar univerzuma, i s tim, izuzetno mali da bi mogli u sebi da sadrzimo univerzum (osim toga, to bi dovelo do logicke greske koja se zove beskonacna rekurzija.) Cilj, dakle, nikada nije da se proces definise u potpunosti. Proces treba definisati tek toliko koliko je potrebno da bi definicija bila primenljiva. I tu dolazimo do onog bitnog: definicije se sastavljaju da bi se primenile, odnosno, planovi se crtaju da bi ih neko izvrsio. Da bi definicija bila primenljiva, svaki njen korak mora biti primenljiv. Naprimer, ukoliko zelimo da navedemo „uzmi loptu“ kao korak u nasoj definiciji, preduslov je da onaj ko treba da izvrsi taj korak moze da razume taj korak. Ukoliko ne razume korak, ukoliko korak nije primenljiv, onda se definicija mora modifikovati sve dok ne postane primenljiva.
 
Postoje dva nacina da se to postigne. Prvi je da se izbaci problematicni korak i zameni korakom ili listom koraka koji su primenljivi. To bi recimo izgledalo ovako:
 
1. priblizi se lopti
2. sagni se
3. ispruzi ruke
4. uhvati loptu
5. podigni ruke i ispravi se drzeci loptu
6. stani ispred linije za tri poena
7. baci loptu na kos ciljajuci na to da prodje kroz obruc
 
Drugi nacin bi bio da se sacuva originalna definicija a da se zatim samo doda jos jedna definicija koja definise nerazumljivi korak.
 
Takvo resenje se naziva modularnim resenjem, jer se sada umesto jedne definicije koristi sistem definicija sacinjen od jedne osnovne definicije (u C-u se to zove main() funkcija) i mnogobrojnih sporednih definicija koje definisu korake osnovne definicije kao i korake sporednih definicija (u C-u su to sve ostale funkcije.)


Last edited by Admin on Fri Nov 14, 2014 6:29 am; edited 1 time in total

Miroslav
Admin

Posts : 38
Join date : 2014-11-13

https://ita14.board-directory.net

Back to top Go down

Funkcija Empty Re: Funkcija

Post by Miroslav Fri Nov 14, 2014 5:58 am

Iz gorenavedenog primera, mozemo uociti da svaki korak ima svoju upotrebu i svoju definiciju (izuzev "atomskih" koraka koje izvrsilac razume bez definicije.)

Slicno je i sa funkcijama. Funkcija moze da se poziva (korak moze da se koristi) i funkcija moze da se deklarise (korak moze da se definise.) Izuzetno je bitno ne mesati te dve stvari.

Isto kao sto se koraci koriste da bi se definisali neki drugi koraci, tako se i funkcije koriste da bi se definisale neke druge funkcije. Programiranje, u sustini, znaci definisanje -- programeri ne rade nista osim sto definisu. Svo izvrsavanje je prepusteno racunaru.


Last edited by Admin on Fri Nov 14, 2014 6:07 am; edited 1 time in total

Miroslav
Admin

Posts : 38
Join date : 2014-11-13

https://ita14.board-directory.net

Back to top Go down

Funkcija Empty Re: Funkcija

Post by Miroslav Fri Nov 14, 2014 6:03 am

Ako se neko pita zasto se ova tema ne nalazi u nekom od podforuma posvecenom nastavnim modulima, to je prosto zato sto se funkcije ne izucavaju u ovom (uvodnom) kursu. Cudna stvar, ali tako je.

Miroslav
Admin

Posts : 38
Join date : 2014-11-13

https://ita14.board-directory.net

Back to top Go down

Funkcija Empty Re: Funkcija

Post by Sponsored content


Sponsored content


Back to top Go down

Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum