Odlomak

Programski jezik C++, kreatora Bjarna Stroustrupa, predstavlja naslednika programskog jezika C. Shodno tome da nasleđuje ovaj jezik, nasleđuje i veći deo sintakse. Kako bi se moglo raditi na kompleksnijim „problemima“ C++ je napravljen da bude objektno-orijentisan jezik. Ono po čemu se izdvajao ovaj jezik kada je bio predstavljen 1985. godine je to što je podržavao klase. Pomoću ove mogućnosti programer je mogao mnogo lakše da definiše kako će se objekti unutar programa pomašati, kreirati, komunicirati i sl.
Zbog svoje visoke kompitabilnosti počevši od mnogobrojnih platformi kao što su Microsoft, IBM, Intel itd., pa tako i kompatibilnosti putem desktop aplikacija, raznih vrsta server za različite namene, mnogobrojnih uređaja koje rade na veoma specifičan način, C++ je stekao ogromnu slavu i pokazao se kao veoma koristan programski jezik. Tome svedoči i da se čak i dan danas koristi, svakako ne u tako značajnom udelu, ali opet dovoljnom da dokaže da nije jezik vredan zaborava.
C++ se sastoji iz dva ključna dela, direktno mapiranje hardverskih karakteristka koje su obezbeđene podskupom C i bez dodatnih apstrakcija koje je omogućeno pomoću baš tih mapa. Kako njegov kreator kaže za C++ da je on lagani apstrakcijski programski jezik za kreiranje i korišćenje efikasne i elegantne apstrakcije, i jos kaže za njega da nudi i hardverski pristup i apstrakciju u osnovi C++ jezika efikasnije u odnosu na druge jezike što ga razlikuje od svih ostalih.
Ovaj jezik se idalje razvija što pokazuje i ISO standardizacija koja dodeljuje novi ISO standard svakoj novoj verziji. Verzije nose na kraju dvocifreni broj koji označava novu verziju, a takođe i godinu kada je ta verzija predstavljena, pa tako C++ iz 1998. godine nosi oznaku C++98, onaj iz 2003. C++03, i tako sve redom do najnovije verzije koja će se tek pojaviti sledeće godine i biće poznata kao C++20.
Kroz pomenuto razvijenje iz verziju u verziju. C++ se držao određenih principa:
Programski jezik treba što više približiti realnom svetu, Prienjivati što vise mogućnosti i karakteristika, prilagodljiv različitim stilovima programiranja, mogućnost da se programski kod podeli na više unapred definisanih delova, kao i da se različiti delovi mogu kasnije spojiti u jednu celinu, ugrađeni tipovi moraju biti jednako podržani kao i tipovi kreirani od strane programera, one funkcije koje se ne iskorite ne smeju uticati na performanse, C++ treba biti kompatibilan sa ostalim programskim jezicima.

Funkcije
Šta je to funkcija?
Kreiranje jedne logičke kodne celine za potrebe rešavanja određenog problema u vidu skupa naredbi kojima se rešava isključivo taj problem, naziva se funkcija.
Postoje dve vrste funkcija predefinisane (već postojeće) i sopstvene. Predefinisane funkcije su isključivo one funkcije koje se već nalaze u bibliotekama koje dolaze uz programski jezik. Svaki programski jezik dolazi sa svojim skupom biblioteka i unutar njima već definisanim funkcijama. Te funkcije se upotrebljavaju veoma jednostavno, biblioteka se pozove sa svim svojim funkcijama, zatim u kodu programer jednostavno napise samo ime te funkcije (sa ili bez parametara prilikom pozivanja) i ona je spremna da obavi neki zadatak. Najpoznatija takva funkcija i ujedno funkcija koja se koristi u gotovo svakom programu jeste Main(). Samo pomoću ove glavne funkcije se mogu kreirati solidni programi ili programi koji izvršavaju složene matematičke operacije.
Sopstvene funkcije kreira programer prema svojim potrebama. Šta ce se nalaziti u tim funkcijama nije unapred predodređeno, ali ono šta jeste već predodređeno je to kako se kreira sopstvena funkcija. Da bi se kreirala funkcija ona se mora sastojati od tipa funkcije, imena funkcije i njenih parametara. Ukoliko bi smo napisali na primer:
int saberi (int a, int b, int c)
time bi smo rekli da nasa funkcija koja ima ime saberi, da je celobrojnog tipa i ima tri parametra takođe celobrojnog tipa. Da su parametri bili na primer float, a funkcija idalje tipa int, u ovom slučaju bi se brojevi sabrali sa određenim brojem decimala unutar funkcije, ali bi izlaz iz funkcije bio opet ceo broj.

Definicija funkcije
Opšta forma svake funkcije definiše se kao:
Prvi red u kodu sa slike 4 se zove heder (header) i sastoji se iz:
• Tipa funkcije koji se odnosi na to kakvu će vrednost ta funkcija vratiti, tj. kog će tipa biti ta vrednost. Međutim, ne mora svaka funkcija da vraća neku vrednost. U slučaju kada vraća onda se stavlja tip, a kada ne mora vrednost da se vrati, već samo da se izvrši neka operacija za to se koristi rezervisana reč void.
• Ime funkcije je stvarno ime kako se neka funkcija zove. Uglavnom se ime funkcije stavlja neko logično ime,a ne na primer funkcija1, funkcija2, već funkcija min, funkcija max i sl.
• Parametri predstavljaju određeni vid rezervisanog mesta. Parametru se prosleđuje vrednost tek onda kada je funkcija u kojoj se on nalazi pozvana (primer na slici 2 – funkcija saberi). Ta prosleđena vrednost se može nazvati i argument. Unutar zagrade (obične) se nalazi skup parametara i svaki od njih je pojedinačno označen sa svojim tipom i redosledom u skupu. Parametri u funkciji nisu obavezni, već se dodaju po potrebi.
• Potpis funkcije čine ime funkcije i lista (skup) parametara zajedno.
Nakon hedera sledi telo funkcije koje se uvek nalazi između vitičastih zagrada.
• Telo funkcije je skup naredbi ispisanih u logičkom redu, tako da izvršavaju neku operaciju. Broj naredbi unutar tela funkcije je totalno proizvoljan, ali samo jedna stvar nije proizvoljna, a to je da nakon svake naredbe na kraj iste se mora postaviti tačka-zarez (;). Time se označava da se na tom mestu određena naredba završava. Return je rezervisana reč koja se stavlja nakon niza naredbi, najčešće na kraju tela funkcije, i ima ulogu da vrati vrednost nakon određenog proračuna.
Kao što se vidi na primeru koda koji provera koji je veći od dve upisana broja u funkciji max (slika 5). Tip funkcije je int jer funkcija mora da vrati celu broju vrednost koju je proverio. Ime funkcije je max jer ispituje koje je maksimala vrednost od 2 broj. Skup parametara se sastoji od 2 parametra oba tipa int. U listi za poređenje brojeva je moglo da se doda proizvoljan broj parametara koja se ispituju. Telo funkcije se sastoji od niza naredbi koja proveravaju koji je broj veći i zatim vraća vrednost „rezultat“ koji je pre toga izjednačen sa vrednošću najvećeg broja.

Deklaracija funkcije
Kao što je nemoguće upotrebiti bilo koju promenljivu u kodu pre nego što ona bude deklarisana, tako isto je nemoguće i funkciju pozvati pre nego što ona i sama bude deklarisana. Iako main () funkcija je glavna, kao što joj i samo ime kaže, ona se ne definiše najčešće prva jer u tom slučaju je nemoguće pozvati ostale funkcije u nju. Razlog tome je što postoje pravila prilikom kompajliranja koda. Kod se kompajlira tako što čita jedan za drugim red koda i izvršava, tako da iz toga proizilazi da nije logično da kompaijer prolazi kroz main() funkciju i kada dođe do nepoznate varijable ili funkcije traži istu u ostalom delu koda. To bi upotrebilo dosta više resursa i trajalo bi mnogo, mnogo duže. Zato se prvo deklariše šta je potrebno, pa se potom ono što je deklarisano i upotrebi. To se može primetiti i u priloženim primerima. Da je u primerima bilo stavljena prvo funkcija main, pa potom ostale, kompajler bi prijavljivao grešku da upisana funkcija nije deklarisana.
Ono šta je važno znati prilikom kreiranja sopstvene funkcije je da svaka funkcije može biti deklarisana bez kompletnog definisanja cele funkcije. Pre svega misli se na to da je dovoljno dati detalje o tipovima argumenata koji će biti iskorišćeni unutar funkcije.

Rezultat ovakvog deklarisanja je to da se ovako deklarisana funkcija može samo kao ovakva pozvati u nekoj drugoj funkciji ili bilo kom drugom delu koda, a da se tek kasnije ustvari ona definiše. Pa tako se mogu deklarisati sve funkcije na samom početku programa i bez brige da li će kompajler ispisati grešku.
Ovakav način deklaracije uključuje sve tipove, i one koje se odnose na tip funkcije i one koje se odnose na tip parametara, koristeći potpuno istu sintaksu kao i kod definisanja funkcije iz prethodnih primera, ali u ovom slučaju izmeštajući telo funkcije u sasvim drugi deo koda, što daje između ostalog i bolju preglednost koda.
U deklaraciju bez kompletnog definisanja funkcije takođe ne mora ni ime parametara da spada već samo tip funkcije. Da li će neko dodati imena paramtera to je proizvoljno, čak se i ona ne moraju podudarati striktno sa imenima iz kasnijeg definisanja funkcije.
Sa slike 9 (pre svega druga linija koda) se vidi konkretan primer kako se može deklarisati funkcija samo sa osnovnim informacijama koja su potrebna kako bi se ispunio uslov da se ta funkcija legitimno pozove pre nego što se kompletno definiše. Svakako, nisu potrebne obe linije koda, već je dovoljna samo jedna. A to koja će to biti, zavisi isključivo od onoga ko piše taj kod.
Na gornjoj slici (slika 8) se vidi primer u kojem je upravo ispisano ono što stoji u tekstu, a to je da jednostavnom deklaracijom možemo odmah u main funkciji pozvati funkciju max i ne brinuti o tome da li će kompajler ispisati grešku.

No votes yet.
Please wait…

Prijavi se

Detalji dokumenta

Više u Informacione tehnologije

Više u Maturski Radovi

Više u Skripte

Komentari