E2 - Praktikum

Click here to load reader

  • date post

    02-Oct-2014
  • Category

    Documents

  • view

    339
  • download

    6

Embed Size (px)

Transcript of E2 - Praktikum

Mr Aleksandar Kupusinac Dr Duan MalbakiUniverzitet u Novom Sadu Fakultet tehnikih nauka Departman za raunarstvo i automatiku Katedra za primenjene raunarske nauke 21000 Novi Sad, Trg Dositeja Obradovia 6

PRAKTIKUM ZA VEBE IZ OBJEKTNO ORIJENTISANOG PROGRAMIRANJA

Novi Sad 2010

A. Kupusinac i D. Malbaki

2

SadrajVebe 1 ............................................................................................................................... 3 PROGRAMSKO OKRUENJE Code::Blocks .............................................................. 3 PROMENLJIVE.............................................................................................................. 6 POKAZIVAI ................................................................................................................ 7 NIZOVI ........................................................................................................................... 9 FUNKCIJE .................................................................................................................... 11 Vebe 2 ............................................................................................................................. 13 REFERENCE ................................................................................................................ 13 ULAZ I IZLAZ PODATAKA ...................................................................................... 14 Vebe 3 ............................................................................................................................. 22 OSNOVE OBJEKTNOG PROGRAMIRANJA ........................................................... 22 DEFINICIJA KLASE U C++ ....................................................................................... 22 KLASA Semaphore ................................................................................................... 27 Vebe 4 ............................................................................................................................. 29 KLASA FMRadio........................................................................................................ 29 KOMPOZICIJA KLASE .............................................................................................. 30 Vebe 5 ............................................................................................................................. 35 UGRAENI KONSTRUKTOR ................................................................................... 35 KONSTRUKTOR KOPIJE........................................................................................... 36 PREKLAPANJE METODA ......................................................................................... 37 PREKLAPANJE OPERATORA .................................................................................. 38 Vebe 6 ............................................................................................................................. 43 KLASA DinString .................................................................................................. 43 Vebe 7 ............................................................................................................................. 48 NASLEIVANJE ......................................................................................................... 48 Vebe 8 ............................................................................................................................. 51 NASLEIVANJE - ZADACI....................................................................................... 51 METODE IZVEDENE KLASE.................................................................................... 55 KLASE Person, Student i PhDStudent............................................................. 57 Vebe 9 ............................................................................................................................. 67 VIRTUELNE METODE............................................................................................... 67 KLASE Person, Student i PhDStudent............................................................. 69 APSTRAKTNE KLASE ............................................................................................... 71 ZAJEDNIKI LANOVI KLASE............................................................................... 72 Vebe 10 ........................................................................................................................... 77 GENERIKE KLASE ................................................................................................. 77 Vebe 11 ........................................................................................................................... 82 GENERIKE KLASE - ZADACI............................................................................... 82

Praktikum za vebe iz objektno orijentisanog programiranja

3

Vebe 1PROGRAMSKO OKRUENJE Code::BlocksNa vebama emo koristiti programsko okruenje Code::Blocks. Instalacija programskog okruenja Code::Blocks se moe besplatno preuzeti na sajtu http://www.codeblocks.org/ . Na sajtu je dostupna instalaciona verzija za operativni sistem MS Windows i verzija za operativni sistem Linux (pogledajte http://www.codeblocks.org/downloads/binaries ). Takoe, na sajtu se moe preuzeti uputstvo za rad sa programskim okruenjem Code::Blocks (pogledajte http://www.codeblocks.org/user-manual ). Sada emo se ukratko upoznati kako emo pisati i pokretati programe u programskom okruenju Code::Blocks. Pokretanjem programskog okruenja Code::Blocks dobijamo izgled ekrana kao na slici 1.1.

Slika 1.1. Potrebno je izabrati radni direktorijum u kojem emo uvati projekte. Neka je to, na primer, direktorijum C:\Temp\e11111. Sada emo napraviti projekat. U glavnom meniju biramo opciju File, zatim biramo opciju New Project i dobijamo prozor u okviru kojeg klikom biramo Console Application kao to prikazuje sklika 1.2. Ukoliko na projekat treba da bude prazan potrebno je izabrati opciju Do not create any files, a zatim kliknuti na dugme Create, posle ega dobijamo prozor u kojem treba dati ime projekta i kliknuti na dugme Save.

A. Kupusinac i D. Malbaki

4

Slika 1.2. Ukoliko je sve pravilno uraeno dobijamo izgled ekrana kao to je prikazano na slici 1.3.

Slika 1.3.

Praktikum za vebe iz objektno orijentisanog programiranja

5

U glavnom meniju biramo opciju File, a zatim New File, posle ega se pojavljuje prozor u kojem treba da navedemo ime fajla (na primer hello.cpp) i zatim kliknemo na dugme Save. Na ekranu e se pojaviti pitanje da li elimo da se na fajl ubaci u trenutno aktivan projekat (Do you want to add this file in the active project?). Kliknemo na dugme Yes i dobijamo izgled ekrana kao to je prikazano na slici 1.4. U desnom delu prozora se nalazi prostor gde emo ukucati tekst naeg programa.

Slika 1.4. Kada je tekst programa napisan potrebno ga je snimiti (biramo opciju File, a zatim opciju Save). Program se pokree tako to se u glavnom meniju izabere opcija Build i dobija padajui meni u okviru koje se prvo bira opcija Build (ili Ctrl+F9), a zatim opcija Run (ili Ctrl+F10). Takoe, kada se u glavnom meniju izabere opcija Build u padajuem meniju postoji opcija Build&run (ili F9) koja objedinjuje opciju Build i Run. Dakle, kada je na program napisan i snimljen, pritiskom na F9 dobijamo korisniki ekran na kojem vidimo da je ispisana poruka Hello world!, to je i bio cilj ove vebe. Ve postojei projekat se moe pokrenuti tako to se u glavnom meniju izabere opcija File, a zatim opciju Open. Projekat ima ekstenziju .cbp.

A. Kupusinac i D. Malbaki

6

PROMENLJIVESada emo se podsetiti pojedinih delova gradiva koje smo nauili bavei se prouavanjem programskog jezika C, a koja su nam neophodna za dalji rad. Podaci mogu biti: promenljive i konstante. Deklaracijom se zauzima prostor u memoriji za datu promenljivu, a definicijom se pored zauzimanja memorije vri jo i postavljanje inicijalne vrednosti. Na primer: int x1; // deklaracija int x2=1; // definicija double y1; // deklaracija double y2=0.5; // definicija Tip promenljive odreuje koliko e biti memorije zauzeto za datu promenljivu, to zavisi od hardvera koji nam je na raspolaganju. Na primer, ako imamo na raspolaganju 32-bitno adresiranje, tada za promenljivu tipa int bie zauzeto 32 bita, za promenljivu tipa double bie zauzeto 64 bita itd. Ime promenljive mora biti jedinstveno. Ime promenljive jeste simboliki predstavljena adresa na kojoj se nalazi memorija koja je zauzeta za datu promenljivu. Na primer, za 32-bitne adrese i lokacije e biti 32 bita, pa moemo zamisliti da e memorija posle gore navedenih deklaracija izgledati kao na slici 1.5. Adrese su napisane heksadecimalno. Svaka lokacija sadri 4 bajta i svaki bajt je adresibilan, pa se adrese razlikuju za 4 bajta. Vidimo da za promenljive x1 i x2 e biti zauzeta po jedna lokacija, tj. po 32 bita, jer je promenljiva tipa int, dok za promenljive y1 i y2 po 64 bita. Sadraji promenljivih x2 i y2 e biti postavljeni na odgovarajue inicijalne vrednosti. Posmatrajui sliku, moemo zakljuiti da kada se u viem programskom jeziku govori o promenljivoj x1, u naem primeru raunar to razume tako da se zapravo radi o promenljivoj na adresi 1C.

Slika 1.5. Veliina memorije u bajtovima, koja je potrebna za smetanje podatka odreenog tipa moe se utvrditi primenom prefiksnog unarnog operatora sizeof.

Praktikum za vebe iz objektno orijentisanog programiranja

7

POKAZIVAI Pokaziva je promenljiva koja sadri neku adresu. Pokaziva se deklarie na ovaj nain: int *iPok; // pokazivac na tip int double *dPok; // pokazivac na tip double void *vPok; // genericki pokazivac Poto pokaziva sadri adresu moemo zakljuiti da bez obzira na koji tip pokazuju, svi pokazivai su istog formata, tj. veliina memorija svih pokazivaa je ista (ak