Programski jezici, C++
II Programiranje pomo u programskog jezika C++ Da bismo napisali program, neophodna su nam dva specijalizovana programa: jedan koji koristimo da napišemo izvornu datoteku, i drugi (kompajler) sa kojim dobijamo izvršnu datoteku. Danas se ova dva prgrama naješe kombinuju u jedinstven paket – razvojno okruženje. Najpoznatije C++ okruženje predstavlja Microsoftov proizvod Visual C++.NET. Meutim, veina ovakvih programa je komercijalna i nije dostupna svim korisnicima. Ipak, mogue je nai veliki broj besplatnih C++ okruženja. Jedno od takvih okruženja je i Dev-C++. Najnoviju verziju pomenutog programa mogue je nai na web stranici firme BloodshedSoftware (http://bloodshed.net/download.html (http://bloodshed.net/download.html tj. http://bloodshed.net/dev/devcpp.html ).
1 Programski paket Dev-C++
1.1 Instalacija Instalacija Dev-C++ programa ni u emu se ne razlikuje od veine instalacionih datoteka u Windows okruženjima. Dovoljno je dvostrukim klikom pokrenuti instalacionu datoteku (npr. devcpp-4.9.9.2_setup.exe) i pratiti poruke na ekranu. Nakon instalacije preporuljivo je podesiti neke opcije, mada to nije od velike važnosti za programe koji e se koristiti na ovom kursu. Ipak, u meniju Tools, i podmeniju Compiler options , prvo treba izabrati opciju Code Generation . U prozoru koji se dobije opciju Enable Exception Handling treba aktivirati (staviti na yes). Zatim treba izabrati opciju Linker i aktivirati Generate Debugging Information . Na ovaj nain instalacija je završena.
1.2 Kreiranje prvog programa 1.2.1 Upisivanje koda Nakon pokretanja programa Dev-C++, prvi korak u kreiranju koda je otvaranje novog zadatka. Dev-C++ pruža više opcija, ali e se u ovom kursu uglavnom raditi na jednostavnim datotekama sa izvršnim kodom (opcija File/New/Source File). Nakon odabira ove opcije, otvara se prozor u koji treba upisati kod, na primjer #include using namespace std; int main() { cout << “Hello, world!” << endl; system("PAUSE"); return 0; }
Nakon upisa kod sauvamo na nekom mjestu na hard disku, npr. pod imenom hello.cpp
1
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ 1.2.2 Generisanje izvršne datoteke Nakon što se sauva ovaj kod, treba ga kompajlirati, tj. proizvesti izvršnu mašinsku datoteku. Ovo se izvodi korištenjem kombinacije tipki Ctrl+F9 na tastaturi, ili izborom opcije Compile u meniju u nizu alata. Execute, ili pritiskom na ikonu Nakon startanja procesa kompajliranja, pojavljuje se prozor sa porukama koje prate proces kompajliranja. Dev-C++ daje poruku u sluaju da nae bilo kakvu grešku u programu. U sluaju da nema grešaka, stvara se izvršna datoteka koja se naziva hello.exe.
1.3 Pokratanje programa Pokretanje programa, koji smo prethodno kompajlirali, u Dev-C++ okruženju izvodi se izborom opcije Run u meniju Execute , kombinacijom tipki Ctrl+F10 na tastaturi, ili pritiskom na ikonu Prethodna dva procesa (kompajliranje i pokretanje) mogue je objediniti pritiskom na tipku F9 na tastaturi, izborom opcije Compile&Run u meniju Execute, ili izborom ikone . Program je mogue pokrenuti i van Dev-C++ okruženja, dvostrukim klikom na izvršnu datoteku hello.exe.
2 Osnove programiranja
2.1 Struktura programa C++ program se sastoji od jedne ili više cjelina za prevoenje, pri emu ove cjeline predstavljaju dio programa koji treba kompajlirati odvojeno od drugih cjelina. Tanije, cjelina za prevoenje je rezultat primjene preliminarne faze kompilacije, koja se naziva predprocesiranje, na izvornu datoteku ( source source). Izvorna datoteka obino poinje sa jednom ili više (predprocesorskih) direktiva #include , pri emu svaka od njih navodi predprocesor da kopira deklaracije entiteta (funkcija, globalnih varijabli, tipova, itd), koji su definisani u ostalim cjelinama za prevoenje. Posmatrajmo primjer iz prethodnog poglavlja: 1 2 3 4 5 6 7
#include using namespace std; int main() { cout << “Hello, world!” << endl; system("PAUSE"); return 0;
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ ime datoteke. Nai tu datoteku i odmah je proitaj. Uglaste zagrade (<>) daju naredbu predprocesoru da nae zadatu datoteku koja je dio standardne biblioteke (u datom primjeru to je datoteka koja sadrži definicije za ispis i upis). U sluaju kada bismo htjeli uvrstiti neku svoju datoteku, umjesto zagrada bismo koristili znake navoda. Dakle, ova linija kaže predprocesoru da nae datoteku koja se zove iostream i da je odmah proita. Naravno, sadržaj tražene datoteke bismo mogli upisati u izvornu datoteku bez korištenja direktive #include . Linija 2 omoguuje pristup standardnom entitetu (namespace ) koji se naziva std. Bez ove linije, linija 5 bi se morala izvršiti na drugaiji nain (std::cout << ....) Linijom 3 poinje stvarni program sa funkcijom koja se naziva main(). Svaki C++ program sadrži ovu funkciju. Funkcija predstavlja dio koda koji odrauje odreenu radnju. Inae, program može da ima proizvoljan broj funkcija, pri emu je funkcija main() specijalna. Kada god se program starta, ona se automatski poziva. Sve funkcije poinju zagradom { i završavaju zagradom }, a sve izme u ovih zagrada predstavlja dio funkcije. Glavni dio programa je linija 5, koja predstavlja neku naredbu, tj. raunarski korak koji daje neku vrijednost. Kraj naredbe uvijek zavr ava taka-zarezom. Naredba u datom primjeru šalje string "Hello world \n" na tok cout (output stream ). String je svaki niz karaktera koji se nalazi izmeu znaka navoda. Posljednji karakter u datom stringu (\n) je karakter koji oznaava novi red (vidi poglavlje II.2.10). Stream je objekat koji izvršava ulazne i izlazne naredbe. cout je standardni izlazni stream u C++ (standardni izlazni stream je obino ekran). Simbol << je izlazni operator (usmjeriva toka) kojem je lijevi operand izlazni stream , a desni izraz, i koji uzrokuje da se ovaj posljednji posalje na prvopomenuti. Dakle, u ovom sluaju string "Hello world \n" se šalje na cout , tj. uzrokuje njegov ispis na ekranu. Linija 6 zaustavlja izvršenje programa, kako bismo bili u mogunosti vidjeti rezultat njegovog rada. Bez ove linije program bi se nakon pokretanja izvršio, a konzola bi se zatvorila tako brzo da bismo imali osjeaj da program nije ništa ni uradio.
2.2 Proces kompajliranja Kompajliranje C++ programa obuhvata nekoliko koraka, koji su veinom nevidljivi za korisnika: prvo, C++ predprocecsor ide kroz program i izvodi instrukcije koje su specificirane predprocesorskim direktivama (npr. #include ). Rezultat ovoga je modificirani tekst programa koji više ne sadrži nikakve direktive. zatim, C++ kompajler prevodi programski kod. Kompajler može biti pravi C++ kompajer koji pravi osnovni (asemblerski ili mašinski) kod, ili samo prevodilac, koji kod prevodi u C jezik. U drugom sluaju, rezultujui C kod je zatim proveden kroz C kompajler kako bi se napravio osnovni kod. U oba sluaja, rezultat može biti nepotpun zbog toga što program poziva podprogramske biblioteke koje nisu definisane u samom programu. Na kraju, linker završava objektni kod njegovim povezivanjem sa objektnim kodom bilo kojeg modula biblioteka koji program može pozvati. Konaan rezultat je izvršna datoteka.
Slika II.2.1 ilustruje prethodno navedene korake i za C++ prevodilac i za C++ prirodni kompajler.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++
C++ program
C++ prevodilac
C++ program
C++ prirodni kompajler
C kod
C kompajler
Objektni kod
linker
Izvršna datoteka
Slika II.2.1 C++ kompilacija
2.3 Varijable Varijabla je simboliko ime za memorijsku lokaciju u koju se mogu pohraniti podaci i naknadno ih pozvati. Varijable se koriste za uvanje vrijednosti podataka tako da se iste mogu koristiti u raznim proraunima u programu. Sve varijable imaju dvije važne osobine: Tip, koji se postavlja kada se varijabla definiše (npr. cijeli broj, realni broj, karakter, ...) Kada se jednom definiše, tip varijable u C++ se ne može promijeniti. Vrijednost, koja se može promijeniti davanjem nove vrijednosti varijabli. Vrsta vrijednosti koja se može pridružiti nekoj varijabli zavisi od njenog tipa. Na primjer, integer varijabla može da uzima samo vrijednosti cijalih brojeva (npr. -5, 13, ..)
Kada se varijabla definiše, njena vrijednost je nedefinisana sve dok joj se ne pridruži neka. Pridruživanje vrijednosti nekoj varijabli po prvi put naziva se inicijalizacija. Neophodno je obezbijediti da se svaka varijabla inicijalizira prije nego se koristi. Takoer je mogue da se varijabla definiše i inicializira u isto vrijeme, što je vrlo praktino. Naredni primjer pokazuje razliite naine definisanja i inicijaliziranja varijabli. #include using namespace std; main() { int a,b,c; float x = 4.32; int e,f,g; char ime; e = 4; f = g = 12; ime = 'C' }
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ niz bita, od kojih svaki može da pohrani binarni broj (0 ili 1). Obino je memorija podijeljena na grupe od 8 uzastopnih bita (ovo predstavlja bajt, byte). Bajtovi su uzastopno adresirani, tako da je svaki bajt jedinstveno predstavljen svojom adresom (Slika II.2.2). adresa
...
1211
1212
1213
1214 1214
1215
1216
1217
bajt
bajt
bajt
bajt
bajt
bajt
bajt
1
1
0
1
0
0
0
...
Memorija
1
bit
Slika II.2.2 Bitovi i bajtovi u memoriji C++ kompajler generira izvršni kod, koji mapira ulazne veliine na memorijske lokacije. Na primjer, definicija varijable int zarada = 500;
navodi kompajler da alocira nekoliko bajta kako bi predstavio varijablu zarada . Taan broj bajta koji je alociran i metod koji se koristi za binarnu reprezentaciju cijelog broja zavisi od specifinosti C++ implementacije, ali uzmimo da se radi o 2 bajta. Kompajler koristi adresu prvog bajta na koju se alocira zarada kako bi oznaio varijablu. Prethodna jednakost uzrokuje da se vrijednost 500 pohrani u ova dva bajta koja su alocirana (Slika II.2.3)
...
1211
1212
1213
bajt
bajt
bajt
1214 1214
1215
10110011 10110011
1216
1217
bajt
bajt
...
Memorija
zarada
Slika II.2.3 Reprezentacija cijelog broja u memoriji Treba napomenuti da je organizacija memorije i korištenje adresa koji se odnose na podatke veoma važno za programera, dok tana binarna reprezentacija podataka koje on koristi to nije.
2.5 Ulazno/izlazne naredbe Naješi nain na koji program komunicira sa vanjskim svijetom je preko jednostavnih ulazno/izlaznih (IO) operacija. C++ omoguuje dva korisna operatora za ovu svrhu: >> za ulaz, i << za izlaz. U ranijem tekstu pokazana je upotreba operatora <<. Naredni primjer pokazuje upotrebu operatora >>.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ 1 2 3 4 5 6 7
#include using namespace std; int main (void) { int radniDani = 22; float radniSati = 7.5; float satnica, plata; cout << "Kolika je satnica? "; cin >> satnica;
8 9
plata = cout << cout << cout <<
10 11 12 13 14
radniDani * radniSati * satnica; "Plata = "; plata; '\n';
}
Linija 9 ita ulaznu vrijednost, koju unosi korisnik i kopira je u satnica. Ulazni operator >> uzima ulazni stream kao lijevi operand (cin je standardni C++ ulazni stream koji odgovara podacima unesenim pomou tastature), a varijablu (na koju se kopira ulazni podatak) kao desni operand.
2.6 Komentari Komentar je dio opisnog teksta koji objašnjava neke aspekte programa. Kompajler u potpunosti ignoriše komentare u programu, tako da je jedina svrha koju komentar ima, da pomognu onome koji e itati program. C++ daje dvije mogunosti pisanja komentara: Bilo šta napisano nakon //, pa do kraja date linije smatra se komentarom Bilo šta napisano izmeu /* i */ smatra se komentarom.
1 *1 2 3
#include using namespace std; /* Ovaj program racina ukupnu platu radnika, koja se zasniva na ukupnom broju radnih sati i satnici. */
4 5 6 7 8 9
int main (void) { int radniDani = 22; float radniSati = 7.5; float satnica = 33.50; float plata;
// // // //
Broj radnih dana u mjesecu Broj radnih sati u danu Satnica Ukupna mjesecna plata
10
plata = radniDani * radniSati * satnica; cout << "Plata = " << plata << '\n';
11 12
}
13
Jasno da je da se prvi primjer može koristiti za komentar jedne i samo jedne linije (ili dijela jedne linije), dok se posljednjim može komentarisati tekts upisan u više linija.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ pravilno kreiranje imena (ili identifikatora). Ime traba da se sastoji od jednog ili više karaktera, od kojih bilo koji može biti slovo (tj, slova engleske abecede a-z i A-Z), broj (0-9) i znak "_", pri emu na prvom mjestu ne može da bude broj. Uz to, velika i mala slova se razlikuju, tako da se, na primjer, varijable zarada i Zarada razlikuju. C++ ne postavlja nikakvo ogranienje na broj karaktera u nekom identifikatoru. Meutim, veina implementacija ima ovo ogranienje, ali je ono toliko veliko da ne predstavlja nikakav problem (npr. i do 255 karaktera). Treba imati na umu da postoje odrežene rijei u C++ koje su rezervisane, tako da identifikatori ne mogu uzimati njihova imena. Te rijei se nazivaju rezervisane ili kljune rijei i date su u tabeli Tabela II.2.1 Kljune (rezervisane) rijei u C++ asm auto break case catch char class const
continue default delete do double else enum extern
float for friend goto if inline int long
new operator private protected public register return short
signed sizeof static struct switch template this throw
try typedef typedef union unsigned virtual void volatile while
2.8 Cijeli brojevi Cijeli broj (integer) se može definisati pomou tipova short , int i long. Jedina razlika je u tome da int koristi više ili barem isto bajta kao short, a long koristi više ili barem isto bajta nego int. Ovo zavisi od ra unara na kojem se radi. Konvencija je da cjelobrojne varijable uzimaju u obzir i pozitivne i negativne brojeve (kaže se da su signed ). Meutim, u sluaju kada se koriste kao unsigned, onda mogu uzeti samo pozitivne vrijednosti (sa 0).
2.9 Realni brojevi Realni broj se može definisati sa tipom float i double double koristi više bajta i time
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ Karakteri koji imaju posebnu namjenu (ne predstavljaju karaktere koji se ispisuju) predstavljaju se pomou escape sekvenci, kao npr: ‘\n’ – novi red ‘\t’ – novi tabulator ‘\v’ – novi vertikalni tabulator ‘\b’ – backspace ‘\’’ – znak navoda (apostrof) ‘\”’ – dvostruki znak navoda ‘\\’ – backslash (/) ‘\a’ – zvuni signal
2.11 Stringovi String je uzastopni niz karaktera koji se završavaju nultim karakterom. Tako je, barem, bilo u jeziku C. Ipak, u C++ uveden je novi tip podataka koji se naziva C++ string klasa, pa je mogue na mnogo prirodniji nain manipulisati varijablama sa više karaktera. Sljedei primjer pokazuje njenu upotrebu. #include using namespace std; main() { char ch; do { cout << "Pritisnite K ili k za kraj, a bilo koju tipku za nastavak \n"; cin >> ch; if (ch != 'K' && ch != 'k') cout << "Zelite nastaviti?\n"; else cout << "Kraj programa"; } while (ch != 'K' && ch != 'k'); }
Ovaj primjer dobro funkcioniše jer završava program ako se unese "k" ili "K", odnosno program se nastavlja ako se unese bilo koji drugi karakter. Problem nastaje ako korisnik programa pritisne samo tipku ENTER. U tom slu aju objekat "cin" oekuje da se unese neka vrijednost, pa tek onda
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ Tabela II.3.1 Aritmetiki operatori Operator
Ime
+ * / %
Sabiranje Oduzimanje Množenje Dijeljenje Ostatak pri dijeljenju
Primjer 12 + 4.9 3.98 - 4 2 * 3.4 9 / 2.0 13 % 3
// // // // //
daje daje daje daje daje
16.9 -0.02 6.8 4.5 1
Osim ostatka pri djeljenju (%) svi aritmetiki operatori prihvataju miješanje cijelih i realnih brojeva. Openito, ako su oba operanda cijeli brojevi, i rezultat je cijeli broj. Meutim, ako je jedan od operanada realan, onda je i rezulat realan (tipa double ). Kada su oba operanda pri dijeljenju cijeli brojevi, rezultat je takoer cijeli broj (tzv. cjelobrojno dijeljenje). U tom sluaju rezultat se zaokružuje na donju vrijednost, tj. 9 / 2 -9 / 2
// daje 4, a ne 4.5! // daje -5,a ne -4.5!
S obzirom da neželjeno cjelobrojno dijeljenje predstavlja jednu od naješih greški u programiranju, neophodno je da promijenimo jedan od operanada da bude realan broj, kao npr. int int double
cijena = 100; volumen = 80; jedinicnaCijena = cijena / (double) volumen;
// daje 1.25
Operator % daje ostatak pri dijeljenju dva cijela broja (oba operanda moraju biti cijeli brojevi), npr. 13%3 daje 1
3.2 Relacijski operatori C++ nudi 6 relacijskih operatora za raunanje brojnih veliina (Tabela II.3.2) Tabela II.3.2 Relacijski operatori Operator
Ime
Primjer
== != <
Jednakost Nejednakost Manje od
5 == 5 5 != 5 5 < 5.5
// daje 1 // daje 0 // daje 1
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++
3.3 Logiki operatori Za kombinovanje logikih izraza C++ nudi tri logika operatora (Tabela II.3.3). Slino relacijskim operatorima, rezultat pri korištenju logikih operatora je 0 (false) ili 1 (true). Tabela II.3.3 Logiki operatori Operator
Ime
! && ||
Logika negacija Logiko i Logiko ili
Primjer !(5 == 5) 5 < 6 && 6 < 6 5 < 6 || 6 < 5
// daje 0 // daje 1 // daje 1
Logika negacija je unarni opearator, tj. ima samo jedan operand kojem daje negativnu vrijednost.
3.4 Inkrementalni Inkrementalni i dekrementalni dekrementalni operatori operatori Takozvani auto inkremetalni (++) i auto dekrementalni (--) operatori obezbijeuju prigodan nain za poveavanje, odnosno smanjivanje brojne varijable za 1. Upotreba ovih operatora je sumirana u Tabeli II.3.4., pri emu se predpostavlja da je int
k = 5;
Tabela II.3.4 Inkrement i dekrement operatori. Operator
Ime
++ ++ ---
Inkrement (prefiks) Inkrement (postfiks) Dekrement (prefiks) Dekrement (postfiks)
Primjer ++k k++ --k k--
+ + + +
10 10 10 10
// // // //
daje daje daje daje
16 15 14 15
Kao što se vidi, oba operatora se mogu korisiti u prefiksnom ili postfiksnom obliku. Razlika je velika, jer kada se operator koristi u prefiksnom obliku prvo se primijenjuje operator, a onda se u izrazu koristi rezultat. Kada se koristi u postfiksnom obliku, prvo se rauna izraz, a onda se primijenjuje operator. Oba operatora se mogu primijeniti kako na cjelobrojne, tako i na realne brojeve, iako se ova karakteristika veoma rijetko koristi na realnim brojevima.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ Tabela 2.3.5 Operatori pridruživanja Operator = += -= *= /= %=
Primjer
Ekivalentno sa
n n n n n n
n n n n n
= 25 += 25 -= 25 *= 25 /= 25 %= 25
= = = = =
n n n n n
+ * / %
25 25 25 25 25
Kako operator pridruživanja sam po sebi predstavlja izraz ija se vrijednost pohranjuje u lijevi operand, on se može korisititi kao desni operand za narednu operaciju pridruživanja, odnosno može se napisati: int m, n, p; m = n = p = 100; m = (n = p = 100) + 2;
// znai: n = (m = (p = 100)); // zna i: m = (n = (p = 100)) + 2;
m = 100; m += n = p = 10;
// znai: m = m + (n = p = 10);
ili
2.6 Uslovni (ternarni) operator Uslovni operator treba tri operanda (odatle ime ime ternarni). On ima opštu formulu: operand1 ? operand2 : operand3 operand1 se izraunava, i tretira se kao logiki uslov. Ako je rezultat razliit od nule, tada se izraunava operand2 . U suprotnom, izraunava se operand3. Na primjer: int m = 1, n = 2; int min = (m < n ? m : n);
// min dobija vrijednost 1
Provjeriti šta je rezultat sljedee upotrebe uslovnog operatora: int min = (m < n ? m++ : n++);
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++
4.1 Jednostavne i složene naredbe Jednostavna Jednostavna naredba je svaka naredba koja završava taka-zarezom. Definicije varijabli i izrazi koji završavaju sa taka-zarezom su neki primjeri: int i; ++i; double d = 10.5; d + 5;
// // // //
deklaraciona naredba naredba sa popratnim efektom deklaraciona naredba beskorisna naredba
Posljednji primjer pokazuje beskorisnu naredbu, jer nema nikakvih popratnih efekata. Najjednostavniji oblik naredbe je linija koja sadrži samo taka-zarez, tzv. null -naredba. -naredba. No, i ovakva naredba ponekad ima smisla, što e se pokazati u kasnijem tekstu. Mnogostruke naredbe se mogu kombinovati u složene naredbe kada se grupišu izmeu velikih zagrada ({}), kao na primjer { int min, i = 10, j = 20; min = (i < j ? i : j); cout << min << '\n'; }
Ovakve naredbe su korisne iz dva razloga: a) omoguuju da se mnogostruka naredba postavi tamo gdje bi inae mogla da se postavi samo jedna, i b) omoguuju da se u program uvede scope ( prostor). Scope predstavlja dio programa unutar kojeg varijabla ostaje definisana. Izvan scope-a ona to više to nije. Ovo je veoma važna osobina o kojoj e više biti rijei kada se budu objašnjavale funkcije.
4.2 Naredba if
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++
Ovdje se najprije izvršava izraz, i ako je rezultat razliit od nule, izvršava se naredba1 . U suprotnom, izvršava se naredba2 , što pokazuje i sljedei primjer: #include using namespace std; main() { int x; cout << "Unesite neki broj"; cin >> x; if (x % 2 == 0) cout << "Broj je paran" << endl; else cout << "Broj je neparan" << endl; }
Pored prethodno navedenih varijanti, postoji i ugniježdena if naredba, u kojoj se javljaju više od dvije alternative. Primjer takve varijente je: if (callHour > 6) { if (duzinaPoziva <= 5) cijena = duzinaPoziva * tarifa1; else cijena = 5 * tarifa + (duzinaPoziva - 5) * tarifa2; } else
cijena = osnovnaCijena;
4.3 Naredba switch
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ #include using namespace std; main() { int ocj; cout << "Unesite ocjenu: "; cin >> ocj; switch (ocj) { case 5: cout << "Imate 90 – 100 bodova" << endl; break; case 4: cout << "Imate 80 – 89 bodova" << endl; break; case 3: cout << "Imate 70 – 79 bodova" << endl; break; case 2: cout << "Imate 60 – 69 bodova" << endl; break; default: cout << "Imate ispod 60 bodova" << endl; } }
4.4 Naredba while Naredba while (naziva se i while petlja) omoguuje ponavljanje neke naredbe sve dok je ispunjen neki uslov. Opšti oblik ove naredbe je: while (izraz) naredba;
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ do naredba; while (izraz);
Prvo se izvršava naredba, a zatim provjerava izraz. Ako je izraz razliit od nule cijeli proces se ponavlja. U suprotnom, petlja se zaustavlja. do petlja se manje koristi nego while petlja. Obino se koristi kada se tijelo petlje mora izvr iti
najmanje jedanput bez obzira na ispunjenje uslova. Takav primjer je ponovljeno unošenje nekog broja i izraunavanje njegovog kvadrata dok se ne unese 0: do { cin >> n; cout << n * n << '\n'; } while (n != 0);
Za razliku od while petlje, do petlja se nikada ne koristi sa praznim tijelom prvenstveno zbog jasnoe.
4.6 Naredba for Naredba for (for petlja) je slina naredbi while , ali ima dvije dodatne komponente: izraz koji se izraunava samo jednom prije svega, i izraz koji se izraunava jednom na kraju svake iteracije. Opšti oblik naredbe for je: for (izraz1; izraz2; izraz3)
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ for (; i != 0;) bilo-sta;
// je ekvivalentno sa: //
while (i != 0) bilo-sta;
Uklanjanje svih izraza u petlji daje beskonanu petlju: for (;;)
// beskonana petlja bilo-sta;
Pošto petlje predstavljaju naredbe, mogu se pojaviti unutar drugih petlji (tzv. ugniježdene petlje). Na primjer: for (int i = 1; i <= 3; ++i) for (int j = 1; j <= 3; ++j) cout << '(' << i << ',' << j << ")\n";
daje parove skupa {1,2,3}
5 Funkcije Ovo poglavlje opisuje funkcije, koje definiše korisnik, kao jedan od glavnih graevinskih blokova u C++ programiranju. Funkcije obezbijeuju prikladan nain upakivanja nekog numerikog recepta, koji se može koristiti koliko god je to puta potrebno.
5.1 Definicija funkcije Definicija funkcije se sastoji od dva glavna dijela: zaglavlja ili interfejsa, i tijela funkcije. Interfejs (neki ga nazivaju i prototip) definiše kako se funkcija može koristiti. On se sastoji od tri dijela:
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ 1 2 3
int Stepen (int ba za, unsigned int eksponent) { int rezultat = 1; for (int i = 0; i < eksponent; ++i) rezultat *= baza; return rezultat;
4 5 6 7
}
Linija 1 definiše interfejs funkcije. Ona poinje tipom funkcije koji se vraa (u ovom sluaju int). Nakon toga je dato ime funkcije (Stepen ), a zatim njena lista parametara. Funkcija Stepen ima dva parametra (baza i eksponent) koji su tipa int. Sintaksa parametara je slina sintaksi definisanja varijabli, tj. nakon tipa daje se ime parametra. Meutim, nije mogue nakon tipa dati niz parametara odvojenih zarezom, kao u int Stepen (int baza, eksponent)
// Ovo je pogrešno!
Zagrada { u liniji 2 predstavlja poetak tijela funkcije. Linija 3 definiše lokalnu varijablu.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ }
return rezultat;
main () { int a,b; cout << "Unesi bazu:"; cin >> a; cout << "\nUnesi eksponent:"; cin >> b; cout << a<<"^" <
Primjer 2. Treba napomenuti da se deklaracija funkcije sastoji od njenog prototipa, tako da je za deklarisanje dovoljno ispisati samo njen prototip. Na taj nain, kompletna definicija funkcije se može dati kasnije, kao što je pokazano u narednom primjeru. Takoer je mogue izostaviti nazive parametara u deklaraciji, ali to nije preporuljivo. #include
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++
}
cout << "Unesi bazu:"; cin >> a; cout << "\nUnesi eksponent:"; cin >> b; cout << a<<"^" <
Ovdje treba paziti gdje se datoteka StepenInt.h nalazi. U primjeru koji je dat, ona se nalazi u istom direktoriju kao i izvršna datoteka. U suprotnom, treba dati taan (relativni ili apsolutni) položaj ( path path) iste.
5.2 Parametri i argumenti C++ podržava dva oblika parametara: vrijednost i referencu. Parametar po vrijednosti prima kopiju vrijednosti argumenata koja im se prenosi. Kao posljedica toga, ako funkcija napravi bilo kakvu promjenu na parametrima, ovo nee promijeniti vrijednosti argumenta. Na primjer, #include
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++
5.3 Globalne i lokalne varijable (globalni i lokalni scope ) Za sve što se definiše izvan programskog scope-a se kaže da ima globalni scope. Tako, sve funkcije koje smo do sada koristili imaju globalni scope , i predstavljaju globalne funkcije. No, i varijable se mogu defnisati u globalnom scope-u, tj. izvan svih funkcija koje se koriste u programu. Na primjer: int godina = 1994; int Maksimum (int, int); int main (void) { //... }
// globalna varijabla // globalna funkcija // globalna funkcija
Treba zapamtiti da su globalne varijable automatski inicijalizirane na vrijednost nula. Pošto su globalni entiteti vidljivi na svim programskim novoima, oni moraju biti jedinstveni na nivu programa. To znai da se globalne varijable ili funkcije na globalnom scope-u ne mogu definisati više nego jedanput, iako se ime funkcije može definisati više puta sve dok su im parametri (njen potpis) jedinstveni. Globalni entiteti su openito pristupani bilo gdje u programu. Svaki blok u programu definiše lokalni
. Na taj nain, tijelo funkcije predstavlja lokalni
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ int greska; void Greska (int greska) { //... if (::greska != 0) //... }
// odnosi se na globalnu varijablu error
5.4 Rekurzivne funkcije Za funkciju koja poziva samu sebe kažemo da je rekurzivna. Rekurzija je opšta programska metoda koja se primijenjuje na probleme koji se definišu u odnosu na same sebe. Na primjer, problem raunanja faktorijela je primjer rekurzivne funkcije. Faktorijel je definisan sa: Faktorijel od 0 je 1. Faktorijel pozitivnog broja n je n puta faktorijel od n-1
Posljednji dio definicije jasno pokazuje da je faktorijel definisan u odnosu na samog sebe, te se stoga može predstaviti rekurzivnom funkcijom, npr. int Faktorijel (unsigned int n)
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ int
}
rezultat = 1;
for (int i = 0; i < eksponent; ++i) rezultat *= baza; return rezultat;
double double Stepen Stepen (double (double baza, baza, double ekspon eksponent) ent) // funkcij funkcija a Stepen Stepen sa realnim parametrima { return exp(eksponent*log(baza) exp(eksponent*log(baza)); ); } double
Stepen
(double
eksponent)
//
funkcija
Stepen
sa
jednim
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ visina , respektivno. Svaki elemenat niza se može tretirati kao varijabla tipa cijeli broj. Tako, na primjer, da bi smo treem elementu ovog niza pridružili vrijednost 177, pisali bismo: visina[2] = 177;
Pokušaj pristupa nepostojeem elementu nekog niza (na primjer visina[-1] ili visina[10] ) može uzrokovati ozbiljnu grešku (tzv. runtime greška, ili greška 'indeks izvan granica’). Procesiranje bilo kojeg niza obino ukljuuje korištenje petlje, koja ide kroz niz od elementa do elementa. Sljedei primjer pokazuje funkciju koja rauna srednju vrijednost nekog niza:
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ #include using namespace std; double Srednja (int broj[],int velicina) { double srednja = 0;
}
for (int i = 0; i < velicina; ++i) srednja += broj[i]; return srednja/velicina; srednja/velicina;
main () {
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ Interesantno je napomenuti da je i C++ string niz karaktera. Tako char
str[] = "HELLO";
definiše varijablu str kao niz šest (6) karaktera: pet slova i prazan karakter (null -character ). ). Završni prazan karakter postavlja kompajler. Za razliku od toga, char
str[] = {'H', 'E', 'L', 'L', 'O'};
definiše varijablu str kao niz od 5 elemenata.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ 26, 34, 22, 17, 24, 32, 19, 13, 28, 38, 25, 20 };
Ipak, bolja opcija je korištenje ugniježdenog inicijalizatora, pošto ne samo da je pregledniji, nego daje i dodatne mogunosti. Na primjer, ako nam je samo prvi elemenat svakog reda razliit od nule, a ostali su jednaki nuli, mogli bismo koristiti: int godDobTemp[3][4] = {{26}, {24}, {28}};
Takoer je mogue izostaviti prvu dimenziju (implicitna inicijalizacija), kao u:
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ Otvaranje datoteke za pisanje
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ Ako za otvaranje datoteke koristimo ofstream objekat, onda ne moramo koristiti dodatne
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ fstream izlazUlaz; izlazUlaz.open("studenti.txt", izlazUlaz.open("studenti. txt", ios::in | ios::out);
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programski jezici, C++ ofstream izlaz; izlaz.open("studenti.txt");
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.