MEHANIZMI AGREGACIJE U OBJEKTNO- ORIJENTIRANIM PROGRAMSKIM JEZICIMA

Size: px
Start display at page:

Download "MEHANIZMI AGREGACIJE U OBJEKTNO- ORIJENTIRANIM PROGRAMSKIM JEZICIMA"

Transcription

1 SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE V A R A Ž D I N Davor Vučina MEHANIZMI AGREGACIJE U OBJEKTNO- ORIJENTIRANIM PROGRAMSKIM JEZICIMA ZAVRŠNI RAD Varaždin, 2014.

2 SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE V A R A Ž D I N Davor Vučina Redoviti student Broj indeksa: 39138/10-R Smjer: Informacijski sustavi Preddiplomski studij MEHANIZMI AGREGACIJE U OBJEKTNO- ORIJENTIRANIM PROGRAMSKIM JEZICIMA ZAVRŠNI RAD Mentor: Dr. sc. Tihomir Orehovački Varaždin, rujan 2014.

3 Sadržaj 1. UVOD POVIJEST OBJEKTNO-ORIJENTIRANOG PROGRAMIRANJA OBJEKTNO-ORIJENTIRANI PROGRAMSKI JEZICI C Code::Blocks Programski primjer C# Microsoft Visual Studio Programski primjer JAVA NetBeans Programski primjer PYTHON IDLE (Python GUI) Programski primjer DELPHI Embarcadero Delphi XE Programski primjer MEHANIZMI AGREGACIJE POLJE C C# Java Python Delphi ZNAKOVNI NIZ C C# Java Python Delphi STRUKTURA C C# Java Python Delphi KLASA C C# Java Python Delphi UNIJA (C++) ZAKLJUČAK LITERATURA I

4 1. Uvod U računalnoj znanosti pojam programiranje odnosi se na pisanje naredbi u nekom programskom jeziku. Programiranje je umjetnost pisanja računalnih programa. Programskih jezika i programskih paradigmi ima mnogo, a njihova zajednička značajka je da se sastoje od skupa naredbi i pravila [Galešev et. al., 2006]. U ovom radu obrađeni su mehanizmi agregacije u različitim objektno-orijentiranim programskim jezicima. Mehanizmi agregacije koji se spominju su: polje, znakovni niz, struktura, klasa i unija, a implementirani su u jezicima: C++, C#, Java, Python i Delphi. Objektno-orijentirano programiranje danas je vrlo popularno, te postoje brojni jezici koji koriste objektno-orijentiranu paradigmu, poput jezika C++, C#, Java, Python, Delphi, Eiffel, Lua, PHP, Ruby, Visual Prolog, itd. Programi napisani u objektno-orijentiranim jezicima temeljni su na objektima koji međusobno razmjenjuju poruke. U ovom radu govorit će se o povijesti i nastanku objektno-orijentiranih jezika, te o jezicima koji su utjecali na njihov nastanak. Svaki složeniji program u bilo kojem objektno-orijentiranom programskom jeziku koristi jedan ili više tipova mehanizama agregacije. Mehanizmi agregacije su složeni tipovi podataka koji su logički nedjeljivi. Oni se formiraju od jednostavnijih tipova podataka i složenih tipova niže razine [Radošević, 2007]. U nastavku će se obraditi različiti mehanizmi agregacije u različitim objektno-orijentiranim programskim jezicima. Odabrani objektno-orijentirani jezici su: C++, C#, Java, Python i Delphi. Jedan od glavnih razloga odabira navedenih jezika je njihova popularnost. Zbog te popularnosti osobama koje počinju učiti programirati, teško se odlučiti za određeni programski jezik. Upravo stoga su opisane glavne karakteristike, povijest, te razvojno okruženje svakog od navedenog jezika. U svakom jeziku napisan je jednostavan primjer programa koji ispisuje poruku Hello World! na kojem se mogu uočiti osnovne razlike u jezicima, poput biblioteka koje je u nekim jezicima potrebno uključiti, načina na koji program započinje s izvršavanje, itd. U ovom radu obrađeni su sljedeći mehanizmi agregacije: polje, znakovni niz, struktura, klasa i unija. Svaki od navedenih mehanizama je detaljno opisan. U ranije spomenutim programskim jezicima implementirani su primjeri koji prikazuju način korištenja mehanizama agregacije. Primjeri su napisani u svim jezicima na identičan način kako bi se uočile razlike između programskih jezika i načinu implementacije. Na kraju rada sažete su glavne razlike između odabranih jezika, te je izveden zaključak. 1

5 2

6 2. Povijest objektno-orijentiranog programiranja Objektno orijentirano programiranje je programska paradigma koja se zasniva na objektima i pridruženim procedurama, odnosno metodama. Objekti su entiteti koji kombiniraju svojstva procedura i podataka prilikom izvršavanja operacija, odnosno računanja [Stefik M, Daniel G, 1985]. Početak programiranja i programskih jezika započeo je 1950-ih godina sa proceduralnim i strukturno-orijentiranim jezicima kao što su FORTRAN, COBOL i ALGOL. Programi napisani u proceduralnim jezicima sadržavali su potprograme koji su se mogli izvršavati po želji pozivom iz glavnog programa. Programeri koji su pisali programe u proceduralnim jezicima morali su sve algoritme za računanje, sortiranje i ostale standardne procedure pisati u svakom programu ispočetka, što je potaknulo razvoj funkcijskih programskih jezika. Funkcijski jezici imaju ugrađene algoritme za standardne operacije, te se programi uglavnom sastoje od poziva matematičkih algoritama i funkcija. Idući korak u razvoju programskih jezika bio je uvođenje formalne logike. Logičko programiranje zadržava glavne značajke funkcijskog programiranja, ali i uvodi nove koncepte koji omogućavaju definiranje činjenica i pravila o domeni problema, gdje pravila ne moraju biti strogo definirana unutar programa, ali mogu biti izvedena iz činjenica [Lovrenčić et al., 2009]. Na slici 2.1. prikazana je klasifikacija programskih jezika. Slika 2.1. Klasifikacija programskih jezika Izvor: Lovrenčić et al., 2009, str. 103 Prvi objektni jezik je SIMULA koji je nastao 1960-ih godina. Jezik SIMULA koristio se za kreiranje simulacija. U to vrijeme, Alan Kay sa Sveučilišta u Utahu ima viziju o osobnom računalu koje bi izvršavalo grafički-orijentirane aplikacije. On smatra kako bi takve aplikacije 3

7 mogao pisati bilo tko, a ne samo stručnjaci, upravo u jeziku SIMULA. Kay svoju viziju prodaje tvrtki Xerox PARC, te ranih 1970-ih grupa stručnjaka u Xerox PARC-u na čelu s Alanom Kayom razvija osobno računalo pod nazivom Dynabook. Razvija se i Smalltalk, odnosno prvi objektno-orijentirani jezik razvijen upravo za programiranje na Dynabooku." Tvrtka Xerox PARC prvi puta u povijesti koristi pojam objektno-orijentirano programiranje u opisu svog programskog jezika Smalltalk. Taj pojam koristio se kako bi se opisao proces korištenja objekata kao temelj za izračunavanje. Programski jezik Smalltalk razvijen je tako da bude dinamičan, tj. objekti su se mogli kreirati, mijenjati i brisati, što je bilo drugačije od statičkih sustava koji su se općenito koristili u to vrijeme. Ranih 1980-ih godina Bjarne Stroustrup integrira koncept objektno-orijentiranog programiranja u jezik C što rezultira nastankom novog jezika pod nazivom C++. Jezik C++ postaje prvi objektno-orijentirani komercijalni jezik koji i danas ima široku primjenu. Ranih 1990-ih godina grupa stručnjaka u tvrtki Sun na čelu s Jamesom Goslingom razvija jednostavniju verziju C++ pod nazivom Java. Java je isprva trebao biti programski jezik za programiranje aplikacija za video na zahtjev (eng. Video on Demand (VoD)). Projekt nije išao u pravom smjeru, te je grupa stručnjaka odlučila usredotočiti Javu na tržište jezika za programiranje Internet aplikacija. To se pokazalo kao ispravna odluka, jer širenjem i popularizacijom Interneta i programski jezik Java postaje sve popularniji [Huang, 2004]. Na slici 2.2. prikazan je povijesni razvoj objektno-orijentiranih programskih jezika. Slika 2.2. Povijest objektno-orijentiranih programskih jezika (Smalltalk, C++, Java) Izvor: Computer Science & Engineering, cs.washington.edu (2004) Danas objektno orijentirani (OO) dizajn i objektno-orijentirano programiranje (OOP) postaje sve popularnije, stoga je vrlo korisno poznavati i razumjeti OOP i glavne značajke OO jezika. Razvijanje OO softvera je moguće u bilo kojemu jeziku više razine, poput C-a ili Pascala. Noviji 4

8 jezici poput C++, Ada i F90 (Fortran 90) imaju elemente i mogućnosti koje omogućuju prirodno i praktično OOP [Akin, 2001]. Te mogućnosti su: enkapsulacija, nasljeđivanje i polimorfizam. Kod OOP-a program se sastoji od objekata koji međusobno komuniciraju slanjem poruka. Svaki objekt ima tip podataka, te zauzima mjesto u memoriji. Objekt je enkapsulacija podatka, odnosno objekt ima identitet, tj. jedinstvenu referencu, stanje i ponašanje. Objekt je instanca apstraktnog tipa podataka, a apstraktni tipovi podataka se implementiraju pomoću klasa. Enkapsulacija ili učahurivanje predstavlja ujedinjavanje svih atributa i metoda u cjelinu - klasu [Radošević, 2007, str. 114]. Pojedini autori enkapsulaciju definiraju malo drugačije; enkapsulacija je postupak skrivanja detalja implementacije klase od korisnika klase [Radošević, 2007, str. 115 citirano prema Mirković, 2005]. Drugo važno svojstvo, nasljeđivanje, odnosi se na nasljeđivanje atributa i metoda iz osnovne klase na izvedene klase, pri čemu prava pristupa naslijeđenim članovima klasa mogu i ne moraju biti ista kao u osnovnoj klasi [Radošević, 2007, str. 132]. Polimorfizam predstavlja mogućnost da se objekti iz izvedenih klasa promatraju kao da su iz svojih osnovnih klasa, odnosno mogućnost da se objekti izvedenih klasa dohvaćaju preko pokazivača iz osnovnih klasa. Pritom se, osim atributa, preko pokazivača iz osnovnih klasa pristupa i metodama izvedenih klasa [Radošević, 2007, str. 221]. 5

9 3. Objektno-orijentirani programski jezici U nastavku ovog rada opisani su i implementirani mehanizmi agregacije u različitim objektnoorijentiranim programskim jezicima. U ovom poglavlju bit će riječi o programskim jezicima i tehnologijama koje su se koristile prilikom implementacije mehanizama agregacije. 3.1 C++ Prema podacima koji se nalaze u članku A History Of C++: [Stroustrup, 1996] C++ je programski jezik opće namjene i srednje razine. On sadrži proceduralnu, funkcijsku, objektno-orijentiranu i generičku programsku paradigmu. Programski jezik C++ razvio je Bjarne Stroustrup početkom 1980-ih godina u laboratoriju telekomunikacijske tvrtke Bell Labs. Jezik je dizajniran s fokusom prema sistemskom programiranju, ali se pokazalo da je efikasan i u razvoju desktop aplikacija, servera, video igara, aplikacija koje zahtijevaju visoke performanse (npr. telefonski preklopnik), itd. Razvoj C++ jezika započeo je kao nadogradnja na jezik C, te je isprva nosio naziv novi C (eng. new C) zatim C s klasama (eng. C with classes), te je na kraju nazvan C++ gdje ++ označava operator inkrementa u samom jeziku. Godine izdano je prvo izdanje The C++ Programming Language knjige koja opisuje C++ programski jezik koju je napisao autor programskog jezika, Bjarne Stroustrup. Tijekom narednih godina, programski jezik C++ se razvijao i nadograđivao. Tako je godine izdana inačica C koja donosi nove mogućnosti poput višestrukog nasljeđivanja, apstraktnih klasa, statičnih članova klasa, itd. Na slici 3.1. prikazan je Turbo C++, razvojno okruženje za C++ razvijeno u tvrtki Borland. Slika 3.1. Turbo C++, Borlandov IDE za programski jezik C++ 6

10 Izvor: Gensan Blog (2011) Godine izdana je inačica C++11 koja donosi brojne nove mogućnosti i proširenja standardnih biblioteka, a novi dodaci planirani su za i godinu. C++ je standardiziran od strane Međunarodne organizacije za standardizaciju (eng. International Organization for Standardization (ISO)). U tablici 3.1. prikazana je standardizacija jezika C++, od kojih je ISO/IEC 14882:2011 (poznatiji kao C++11) posljednji odobren i izdan standard od strane ISO-a. Tablica 3.1. Standardizacija programskog jezika C++ Godina C++ standard Neslužbeno ime ISO/IEC 14882:1998 C ISO/IEC 14882:2003 C ISO/IEC TR 19768:2007 C++TR ISO/IEC 14882:2011 C N3690 (nedovršen koncept) C++14 Izvor: International Organization for Standardization (ISO), (2014) Code::Blocks Za implementaciju mehanizama agregacije u programskom jeziku C++ korišten je Code::Blocks IDE. Integrirano razvojno okruženje (eng. Integrated development environment (IDE)) je softver koji programeru pruža jednostavniji razvoj softvera. IDE se sastoji od uređivača teksta (eng. editor), kompajlera (eng. compiler), odnosno interpretera, alata za automatsku izgradnju programa (eng. build automation) i debuggera (eng. debugger). Code::Blocks je besplatni C, C++ i Fortran IDE otvorenog koda (eng. open source) koji je vrlo prilagodljiv i proširiv. Code::Blocks se može proširiti s priključcima (eng. plug-in) koji mogu donijeti razne dodatne funkcionalnosti. Funkcionalnosti poput debuggiranja i kompajliranja dodane su kao priključci. Za izradu programa u ovom radu korištena je inačica s ugrađenim GCC (eng. GNU Compiler Collection) kompajlerom. GCC je kompajler koji podržava razne jezike poput C, C++, Fortran, Java, Ada, itd. 7

11 3.1.2 Programski primjer Na slici 3.2. je prikazan primjer programa koji ispisuje poruku Hello World!. Program je napisan u razvojnom okruženju Code::Blocks. Slika 3.2. Hello World program napisan u jeziku C++ (Code::Blocks) Na početku programa uključene su biblioteke iostream i cstdlib. Biblioteka iostream koristi se za standardne ulazne i izlazne tokove, u ovom slučaju naredbu cout pomoću koje se ispisuje poruka Hello World!. Biblioteka cstdlib koristi se za funkcije opće namjene kao što su dinamičko upravljanje memorijom, generiranje nasumičnog broja, komunikaciju programa s okolinom, pretraživanje, sortiranje, itd. U ovom primjeru se biblioteka cstdlib uključuje kako bi se mogla izvršiti sistemska naredba system("pause"); koja zamrzava program sve dok korisnik ne pritisne neku tipku za nastavak. Na početku programa se uključuje i imenski prostor (eng. namespace) std. Svi entiteti (varijable, tipovi, konstante i funkcije) standardne C++ biblioteke su deklarirani unutar imenskog prostora std. Uključivanje imenskog prostora std se koristi kako bi se optimizirao kod, odnosno kako bi se uključila direktna vidljivost svih imena imenskog prostora std u programskom kodu. Bez uključivanja imenskog prostora std u ovom primjeru bilo bi potrebno dodati std:: ispred cout naredbe (std::cout). Glavni dio koda ovog programa, odnosno ispis poruke izvršava se u funkciji main. Main je posebna funkcija u svim C++ programima. Svaki program započinje izvršavanje s main funkcijom bez obzira gdje se ona nalazila u kodu [Cplusplus, 2014]. 8

12 3.2 C# Prema podacima koji se nalaze u članku C#, CSC 415: Programming Languages [Yahl, 2012] C# je objektno-orijentirani programski jezik koji sadrži proceduralnu, funkcijsku, deklarativnu, generičku, objektno-orijentiranu i komponentno-orijentiranu programsku paradigmu. C# je namijenjen da bude jednostavan, moderan i objektno-orijentiran jezik opće namjene. Razvijen je godine od grupe stručnjaka koje je vodio Anders Hejlsberg u tvrtki Microsoft. Ime C#, odnosno C sharp inspirirano je povišenom muzičkom notom u C-duru koja podsjeća na četiri spojena plusa i tako implicira da je jezik C# inkrement jezika C++. Programski jezik C# je razvijan unutar.net razvojnog okruženja, te je kasnije prihvaćen kao standard od strane Ecma (ECMA-334) i ISO (ISO/IEC 23270:2006)..NET je Microsoftov okvir (eng. framework), odnosno skup biblioteka koje pojednostavljuju razvoj aplikacija za Microsoftove tehnologije poput Windowsa, Windows trgovine (eng. Windows Store), Windows pametnih telefona (eng. Windows Phone), Windows Servera, itd. C# je jedan od programskih jezika koji su razvijeni za zajedničku jezičnu infrastrukturu (eng. Common Language Infrastructure (CLI)). Osnovna namjena zajedničke jezične infrastrukture (CLI) je izrada i izvršavanje distribuiranih komponenti i servisa, što je postignuto omogućavanjem programa pisanih u različitim jezicima da djeluju zajedno, sposobnošću programa da opišu sami sebe i pružanjem izvršnog okruženja koje podržava više platformi [Mayo, 2002]..NET arhitektura je Microsoftova implementacija CLI s dodanim paketima za podršku korisničkih sučelja, podataka, XML, Web servisa i biblioteka temeljnih klasa..net Framework paket za razvoj softvera isporučuje se s četiri programska jezika, a to su C++, C#, Visual Basic i F#. Prva inačica jezika izdana je godine, dok je posljednja inačica izdana 10 godina kasnije, odnosno 2012 godine. Microsoftovo razvojno okruženje Visual Studio koristi se za razvoj.net aplikacija. U tablici 3.2. prikazane su inačice programskog jezika C#, pripadne inačice.net Frameworka i Microsoftovog IDE-a Visual Studija. Tablica 3.2 Inačice C# programskog jezika i razvojnog okruženja Visual Studija C# inačica Godina izdanja.net Framework Visual Studio C# NET Framework 1.0 Visual Studio.NET 2002 C# NET Framework 1.1 Visual Studio.NET 2003 C# NET Framework 2.0 Visual Studio 2005 C# NET Framework 3.0.NET Framework 3.5 Visual Studio 2008 Visual Studio

13 C# NET Framework 4.0 Visual Studio 2010 C# NET Framework 4.5 Visual Studio 2012 Visual Studio 2013 Izvor: C# in Depth, Microsoft Visual Studio 2012 Za implementaciju mehanizama agregacije u programskom jeziku C# korišten je Microsoftov Visual Studio Visual Studio služi za razvoj aplikacija za Microsoft Windows platforme, web stranice, web aplikacije i web servise. Visual Studio ima ugrađeni uređivač teksta koji podržava IntelliSense i refaktoriranje koda. IntelliSense je Microsoftova implementacija pametnog prijedloga koda koji prilikom pisanja koda u Visual Studiju na temelju par napisanih slova ponuđuje odabir ključnih riječi, varijabli, konstanti ili ostalih literala koje započinju s napisanim slovima. Na slici 3.3. prikazan je princip rada IntelliSense-a. Slika 3.3. IntelliSense - pop-up prozor s ponuđenim funkcijama Visual Studio podržava različite programske jezike, te omogućuje uređivaču teksta i debuggeru da podržavaju gotovo bilo koji programski jezik. Ugrađeni jezici su C, C++, C++/CLI, Visual Basic (VB.NET), C# i F#. Visual Studio podržava i druge jezike poput Pythona, Rubyja, itd. koji 10

14 se mogu instalirati kao priključci. Na slici 3.4. prikazan je izbornik na kojem su ponuđeni predlošci projekata u instaliranim programskim jezicima u Visual Studiju Slika 3.4. Visual Studio kreiranje novog projekta (odabir predloška) Visual Studio je Microsoftov komercijalni IDE. Postoji nekoliko paketa Visual Studija. Najosnovniji i besplatni je Visual Studio Express Edition, dok su komercijalne verzije Ultimate, Premium, Professional, Test Professional i Team Fundation Server. Prilikom implementacije mehanizama agregacije u ovom radu korišten je Visual Studio 2012 Ultimate koji je preuzet s MSDNAA repozitorija Programski primjer Na slici 3.7. prikazan je primjer programa koji ispisuje poruku Hello World!. Program je napisan u Microsoft Visual Studiju Slika 3.5. Hello World program napisan u jeziku C# (MS Visual Studio 2012) 11

15 Na početku programa uključena je biblioteka System, koja je jedna od osnovnih biblioteka. Biblioteka System sadrži klasu Console koja se koristi za standardne ulazne i izlazne tokove, odnosno funkcije WriteLine i ReadLine. Klasa Console sadrži funkcije za rad sa standardnim ulaznim i izlaznim tokovima (eng. input/output streams) i tokovima grešaka (eng. error streams). Funkcija WriteLine ispisuje poruku Hello World! na zaslon, dok funkcija ReadLine čita znakove unesene s tipkovnice. Bez funkcije ReadLine program bi se odmah nakon ispisa poruke zatvorio. Za razliku od C++, u C# je za program HelloWorld definiran imenski prostor HelloWorld u kojemu se nalazi klasa Program i statička funkcija main bez povratnog tipa, dok se u C++ koristila samo funkcija main tipa int koja ima imala na kraju povratnu vrijednost nula (return 0;) koja označava kraj programa. [MSDN, 2014]. 3.3 Java Prema podacima koji se nalaze u knjizi JavaTech, An Introduction to Scientific and Technical Computing with Java [Lindsey C et al., 2005] Java je konkurentni, objektno-orijentirani programski jezik temeljen na klasama, koji sadrži strukturnu, funkcionalnu, konkurentnu, objektno-orijentiranu, generičku i reflektivnu programsku paradigmu. Programski jezik Java razvijan je sa sloganom Napiši jednom, pokreni bilo gdje (eng. Write once, run anywhere (WORA)), što znači da se aplikacije napisane u Javi mogu pokretati na bilo kojoj platformi, odnosno ne moraju se ponovno kompajlirati kako bi se pokretale na drugoj platformi. Aplikacije napisane u Javi se kompajliraju u instrukcijski set Javine virtualne mašine (eng. Java Virtual Machine (JVM)) koji se naziva bytecode koji se zatim može pokretati na bilo kojem JVM-u bez obzira na operacijski sustav. Programski jezik Java razvio je tim stručnjaka na čelu se Jamesom Goslingom u tvrtki Sun Microsystems godine. Jezik je isprva nosio naziv Oak (hrast) koji je dobio po hrastu koji je stajao ispred prozora Goslingova ureda. Kasnije je jezik preimenovan u Green, te je na kraju preimenovan u Java. Naziv Java dobio je po zrnima kave koja se proizvode na Indonezijskom otoku Javi, a koju su kreatori Jave konzumirali u velikim količinama. Na slici 3.8. prikazan je logo programskog jezika Java. Tvrtka Sun je godine izdala Javu kao besplatni softver otvorenog koda (eng. free and open source software) pod uvjetima GNU General Public License (GNU GPL). Posljednja inačica Jave izdana je godine pod nazivom Java SE 8 (Java Standard Edition 8). U tablici 3.3. prikazane su najznačajnije inačice Jave i godine izdanja. 12

16 Tablica 3.3. Inačice programskog jezika Java Naziv (inačica) Godina izdanja JDK 1.0 (Java Development Kit) JDK 1.1 (Java Development Kit) J2SE 1.2 (Java 2 Platform SE) J2SE 1.3 (Java 2 Platform SE) J2SE 1.4 (Java 2 Platform SE) J2SE 5.0 (Java 2 Platform SE) Java SE 6 (Java Standard Edition) Java SE 7 (Java Standard Edition) Java SE 8 (Java Standard Edition) Izvor: JavaTech, An Introduction to Scientific and Technical Computing with Java,

17 3.3.1 NetBeans Za implementaciju mehanizama agregacije u programskom jeziku Java korišten je NetBeans IDE 8.0. NetBeans je službeni IDE za razvoj aplikacija u programskoj jeziku Java. On sadrži analizator (eng. analyzator) i pretvarač (eng. converter) koda pomoću kojih se lako nadograđuju aplikacije tako da koriste nove jezične konstrukte dostupne u Javi 8. Osim Jave, NetBeans podržava i druge jezike, poput PHP, C/C++ i HTML5. Na slici 3.6. prikazan je izbornik koji se prikazuje prilikom odabira novog projekta, na kojem su prikazani programski jezici dostupni unutar NetBeans IDE-a. Slika 3.6. NetBeans - kreiranje novog projekta (odabir projekta) NetBeans uređivač teksta automatski radi uvlake, generira odgovarajuće zagrade, te označava izvorni kod sintetički i semantički. Također, sadrži predloške koda, pruža savjete za kodiranje, te sadrži alate za refaktoriranje koda. NetBeans IDE olakšava pregled podataka i projekata na način da pruža više pogleda [NetBeans, 2014]. Na slici 3.7. prikazan je jednostavan i djelotvoran način na koji se mogu pregledavati i upravljati projektima. 14

18 Slika 3.7. NetBeans - pregled i upravljanje projektima Izvor: NetBeans (2014) Programski primjer Na slici 3.8. prikazan je primjer Java programa koji ispisuje poruku Hello World!. Program je napisan u NetBeans IDE 8. Slika 3.8. Hello World program napisan u jeziku Java (NetBeans IDE 8) 15

19 Na početku programa definiran je paket helloworld. Paketi se u Javi koriste kako bi se povezane klase, sučelja, enumeracije i anotacije spremile u isti imenski prostor. Enumeracije i anotacije su posebne vrste klasa i sučelja. Nakon kreiranja paketa, kreira se javna klasa HelloWorld u kojoj se nalazi funkcija main. Unutar funkcije main napisana je samo jedna linija koja poziva metodu za ispis poruke na zaslon. Za ispis poruke koristi se klasa System koja sadrži funkcije i metode za rad sa standardnim ulaznim i izlaznim tokovima, te tokovima grešaka. 3.4 Python Prema podacima koji se nalaze u službenoj dokumentaciji programskog jezika Python [Python Docs, 2014a], Python je programski jezik opće namjene i visoke razine. On sadrži proceduralnu, funkcijsku, reflektivnu, imperativnu i objektno-orijentiranu programsku paradigmu. Guido van Rossum započeo je razvijati Python pred kraj 1980-ih godina u tvrtki Centrum Wiskunde & Informatica (CWI), a prva inačica izdana je godine. Jezik je nazvan po britanskoj grupi komičara Monty Python. Programski jezik Python razvijan je s ciljem da bude jednostavan za čitanje i razumijevanje. Njegova sintaksa omogućuje programeru da složeniji program napiše u manje linija koda nego što bi isti napisao u nekom drugom jeziku kao što je C. Python podržava dinamične tipove podataka i sustava, te sadrži automatski sustav upravljanja memorijom. Jedna od najznačajnijih obilježja Pythona je mogućnost dinamičkog povezivanja imena (eng. dynamic name resolution), odnosno mogućnost povezivanja imena metode i varijabli prilikom izvođenja programa. Python koristi uvlake umjesto vitičastih zagradi ili ključnih riječi kako bi razdvojio programske blokove. To svojstvo naziva se off-side rule. Na slici 3.9. prikazan je način odvajanja programskim blokova korištenjem uvlaka. Slika 3.9. Python - odvajanje programskih blokova korištenjem uvlaka Python je razvijan pod licencom otvorenog koda što znači da je program besplatan, te se može koristiti i u komercijalne svrhe. Licenca programskog jezika Python administrirana je od strane Python Software Foundation. Zadnje stabilne inačice jezika su Python i Python

20 Inačica 2.x sadrži izvornu sintaksu, dok inačica 3.x predstavlja budućnost jezika. Posljednja velika nadogradnja za inačicu 2.x izašla je godine. Python 3.x je pod aktivnim razvojem i u zadnjih nekoliko godina izdano je nekoliko stabilnih inačica, točnije inačica 3.3 (2012. godine) i 3.4 (2014. godine) [Python Wiki, 2014] IDLE (Python GUI) Za implementaciju mehanizama agregacije u programskom jeziku Python korišten je IDLE (Python GUI). IDLE (Integrated DeveLopment Environment) je razvojno okruženje za programski jezik Python koje dolazi u paketu s jezikom od inačice 1.5.2b1. Sam IDLE napisan je u programskom jeziku Python i Tkinter GUI toolkitu. IDLE je poprilično jednostavan IDE koji je prilagođen za početnike i za edukacijske svrhe. Neke od glavnih značajki IDLE-a su uređivač teksta koji ima mogućnost pokretanja u više prozora, označavanje sintakse (eng. syntax highlight), automatska dopuna (eng. autocompletion), pametno uvlačenje koda (eng. smart indent), itd. IDLE ima i integrirani debugger [Python Docs, 2014b] Programski primjer Na slici prikazan je primjer Python programa koji ispisuje poruku Hello World!. Program je napisan u IDLE-u. Slika Hello World program napisan u jeziku Python (IDLE Python GUI) Za ispis poruke Hello World! u programskom jeziku Python dovoljna je samo jedna linija koda, što govori koliko je jezik jednostavan i blizak govornom jeziku. Pisanje programa u programskom jeziku Python toliko je jednostavno da je nazvano programiranje brzinom 17

21 razmišljanja. Programi napisani u Pythonu kraći su i pišu se za manje vremena nego programi napisani u mnogim drugim jezicima [Dawson, 2010]. 3.5 Delphi Delphi je objektno-orijentirani programski jezik koji sadrži imperativnu, strukturnu, objektnoorijentiranu, funkcionalnu, komponentnu i generičku programsku paradigmu. Programski jezik Delphi se razvio iz objektnog Pascala (eng. Object Pascal). Programski jezik Pascal se prvi put pojavio godine, a dizajnirao ga je Niklaus Wirth. Sredinom 1980-ih godina u tvrtki Apple razvija se Object Pascal, odnosno ekstenzija za programski jezik Pascal, koja je razvijena od strane stručnjaka koje je predvodio Larry Tesler u savjetovanju s Niklausom Wirthom. Appleov Object Pascal se koristio na računalu Lisa godine u tvrtki Borland razvijena je slična ekstenzija za Turbo Pascal koja je nosila isti naziv kao i Appleova ekstenzija, Object Pascal. Prva inačica Borlandovog Object Pascala pokretana je na Macintosh računalima, a godine izdana je i ekstenzija za Turbo Pascal 5.5 koji se pokretao na DOS računalima. Godine tvrtka Borland odlučila se usredotočiti na Windows platformu, te se tako razvio nasljednik Turbo Pascala nazvan Delphi, koji je donio novi set ekstenzija iz kojih je nastao i sam programski jezik Delphi. Prva inačica Delphi 1.0 službeno je objavljenja godine, a razvio ju je Anders Hejlsberg godine tvrtka Embarcadero Technologies kupuje Delphi, te razvija komercijalni Delphi IDE za Windows i Max OS X platforme [Delphi Wiki, 2014] Embarcadero Delphi XE7 Za implementaciju mehanizama agregacije u programskom jeziku Delphi korišten je Embarcadero Delphi XE7. Embarcadero Delphi je integrirano razvojno okruženje za desktop, web, mobilne i konzolne aplikacije. Delphijev kompajler koristi vlastiti dijalekt Object Pascala koji generira kod za 32 i 64 bitne Windowse, te 32 bitni Mac OS X, ios i Android. Prva inačica Embarcadero Delphija pojavila se godine pod nazivom Embarcadero Delphi Tijekom narednih godina IDE se razvijao, te je tako izašlo nekoliko inačica od kojih se posljednja, Embarcadero Delphi XE7, na tržištu pojavila godine. Embarcadero Delphi XE7 omogućuje Delphi i C++ programerima da prošire postojeće Windows aplikacije i kreiraju nove, moderne aplikacije koje povezuju desktop računala i mobilne uređaje sa servisima u oblacima (eng. cloud services), bazama podataka i s aplikacijskim programskim sučeljima (eng. application programming interface (API)). Embarcadero Delphi XE7 osim Delphija ima i podršku za C++ programski jezik. Pošto je Embarcadero Delphi komercijalni IDE, u ovom radu korištena je probna inačica (eng. trial) čija licenca ističe nakon 30 dana. 18

22 3.5.2 Programski primjer Na slici prikazan je primjer programa koji ispisuje poruku Hello World!. Program je napisan u Embarcadero Delphi XE7 razvojnom okruženju. Slika Hello World program napisan u jeziku Delphi (Embarcadero Delphi XE7) Na početku programa uključuje se biblioteka System.SysUtils. Biblioteka System sadrži sve Delphi run-time (RTL) jedinice, klase, funkcije, tipove podataka, varijable i konstante. Programski blok u kojem se ispisuje poruka Hello World! započinje s riječi begin, a završava s end. 19

23 4. Mehanizmi agregacije Mehanizmi agregacije, odnosno složeni tipovi podataka imaju osnovno svojstvo da su logički djeljivi, odnosno formiraju se od jednostavnijih tipova i složenih tipova niže razine [Radošević, 2007]. Među mehanizme agregacije ubrajamo: polja, znakovne nizove, strukture (zapise), unije i klase. U ovom poglavlju implementirani su mehanizmi agregacije u ranije spomenutim programskim jezicima. 4.1 Polje Polje je mehanizam agregacije kojim se od jednostavnih tipova podataka tvori složeniji tip podataka. Polje čini niz varijabli istog tipa koje su imenovane zajedničkim identifikatorom i nalaze se na uzastopnim memorijskim lokacijama. Svaka varijabla u polju naziva se element polja. [Lovrenčić, 2010]. Svaki element u polju ima svoj indeks preko kojeg mu se pristupa. Pošto se varijable u polju nalaze na uzastopnim memorijskim lokacijama, dovoljno je pamtiti samo memorijsku lokaciju nultog elementa, jer se lokacije ostalih elemenata mogu izračunati na sljedeći način: lokacija 0-tog elementa + veličina elementa indeks. Na slici 4.1. prikazana je struktura polja koje ima 10 elemenata, gdje se indeksi polja kreću od 0 do 9. Slika 4.1. Struktura polja koje sadrži 10 elemenata Izvor: National Technical University of Athens, (2014) Polje može imati više dimenzija. Dvodimenzionalno polje je polje kojem je svaki element novo polje. U nastavku slijedi prikaz implementacije polja u različitim objektno-orijentiranim programskim jezicima C++ U programskom jeziku C++ po načinu alokacije razlikujemo statička i dinamička polja. Statičko polje alocira se prije početka izvršavanja programa na sljedeći način: 20

24 int polje[10]; //Polje tipa integer koji sadrži 10 elemenata. Statičko polja je zadano konstantom i ne mijenja se do kraja izvršavanja programa. Dealokacija statičkog polja nije moguća prije kraja izvođenja programa. Dinamičko polje alocira se dinamički u radnoj memoriji na sljedeći način: int *x = new int[10]; // Polje tipa integer koji sadrži 10 elemenata. Za razliku od statičkog polja, dinamički alocirano polje može se dealocirati tijekom izvođenja programa na sljedeći način: delete [] x; //Dealokacija polja x. Statičko polje koristi implicitni pokazivač, što znači da se elementi polja dohvaćaju preko naziva polja u kojemu je spremljena memorijska adresa nultog elementa. Dinamičko polje koristi eksplicitni pokazivač koji je alociran u radnoj memoriji [Radošević, 2007]. Na slici 4.2. prikazan je primjer statičkog polja koje se alocira s n elemenata, te se zatim polje popunjava s cijelim brojevima. Slika 4.2. Primjer polja u programskom jeziku C C# U programskom jeziku C# polja se alociraju dinamički, na sljedeći način: int[] polje = new int[10]; //Polje tipa integer od 10 elemenata. Kao i u programskom jeziku C++, polja se mogu deklarirati i bez inicijalizacije, ali se moraju inicijalizirati prije upotrebe. Na slici 4.3. prikazan je isječak programa u kojem se deklarira i inicijalizira polje od n elemenata, te se nakon toga polje puni cijelim brojevima. Slika 4.3. Primjer polja u programskom jeziku C# 21

25 4.1.3 Java U programskom jeziku Java polja se deklariraju i alociraju dinamički, na isti način kao i u programskom jeziku C#. Na slici 4.4. prikazan je program u kojem se deklarira i inicijalizira polje od n elemenata, te se nakon toga u polje unose cijeli brojevi. Nakon unosa polje se sortira uzlazno, te se ispisuje. Slika 4.4. Primjer polja u programskom jeziku Java U primjeru je napisan algoritam za sortiranje. U programskom jeziku Java postoji funkcija java.util.arrays.sort(int[]) pomoću koje se također može sortirati polje, bez pisanja algoritma. 22

26 4.1.4 Python U programskom jeziku Python polja se deklariraju na malo drugačiji način nego u do sada opisanim jezicima. Polje od n elemenata deklarira se na sljedeći način: polje = [0 for i in xrange(n)] //Deklaracija polja od n elemenata. Unutar uglatih zagrada piše se for petlja koja određuje broj elemenata u polju. U programskom jeziku Python se prilikom deklariranja varijabli, polja i drugih podataka ne mora navoditi tip podataka, već se tip određuje prilikom unosa vrijednosti. Polje se prilikom deklariranja može popuniti s brojevima na sljedeći način: polje = [1,2,3,4,5] //Deklaracija polja od 5 elemenata: 1,2,3,4,5. Na ovaj način definirano je polje koje sadrži pet elemenata, odnosno prirodne brojeve 1,2,3,4 i 5. Elementi se nalaze na indeksima 0,1,2,3 i 4, tj. na lokaciji polje[0] nalazi se broj 1, na lokaciji polje[1] broj 2, itd. Postoji još jedan način definiranja polja, a to je korištenjem klase array, odnosno instanciranjem objekta klase array, što se vrši na sljedeći način: class array.array (typecode[, initializer]) Na slici 4.5. prikazan je isti program koji je ranije napisan u programskom jeziku Java. Slika 4.5. Primjer polja u programskom jeziku Python U programskom jeziku Python također postoji ugrađena funkcija za sortiranje polja koja se naziva sorted(), ali u ovom primjeru je napisan algoritam sortiranja umetanjem. 23

27 4.1.5 Delphi U programskom jeziku Delphi polja se mogu alocirati statički i dinamički. Polje od 10 elemenata se statički alocira na sljedeći način: polje : Array[0..10] of Integer; //Polje tipa integer koje sadrži 10 elemenata. Polje se alocira dinamički na sljedeći način: polje : Array of Integer; //Dinamička alokacija polja SetLength (polje, 10); //Postavljanje veličine polja U programskom jeziku Delphi varijable i polja se alociraju unutar bloka var. Program započinje s izvršavanjem koda koji se nalazi unutar glavnog begin... end; bloka koji je sličan main funkciji u jeziku C++. Ukoliko se polje alocira dinamički, funkcija SetLenght piše se unutar glavnog begin... end; bloka. Na slici 4.6. prikazan je isječak programa napisanog u Delphiju na kojem je prikazana statička deklaracija polja od 100 elemenata. Slika 4.6. Primjer statičkog polja u programskom jeziku Delphi 4.2 Znakovni niz Znakovni nizovi su jednodimenzionalna znakovna polja koje služe za pohranjivanje tekstova. Znakovni nizovi se koriste za spremanje i ispisivanje različitih poruka na zaslon. Na slici 4.7. prikazana je struktura znakovnog niza. Na kraju znakovnog niza obično se nalazi NULL ili '\0' koji označava kraj niza. Slika 4.7. Struktura znakovnog niza Izvor: Saint Vincent College, cis.stvincent.edu (2013) 24

28 U nastavku slijedi prikaz implementacije znakovnog niza u različitim objektno-orijentiranim programskim jezicima C++ Znakovni niz u programskom jeziku C++ je polje tipa char. Znakovni nizovi se inicijaliziraju na sljedeći način: char znakovni_niz[10]; //Inicijalizacija znakovnog niza char znakovni_niz2[] = Znakovni niz ; //Inicijalizacija i deklaracija Na slici 4.8. prikazan je isječak programa napisanog u programskom jeziku C++ na kojem je prikazana primjena znakovnog niza. Slika 4.8. Primjer znakovnog niza u programskom jeziku C++ Naredba cin.getline(polje, 1000) koristi se za spremanje znakovnog niza unesenog putem tipkovnice u polje koje može imati maksimalno 999 znakova, jedno mjesto u nizu čuva se za NULL znak ('\0') koji označava kraj niza. Nakon što se niz spremi u polje velika slova u nizu se pretvaraju u mala, a mala slova u velika na način da se mijenja njihov ASCII kod dodavanjem ili oduzimanjem broja C# Znakovni niz u programskom jeziku C# može se zapisati u polje tipa char ili u poseban tip podataka string. Znakovni niz definira se na sljedeći način: char[] polje = new char[10]; //Inicijalizacija znakovnog niza, //polje tipa char 25

29 string niz = string.empty; //Inicijalizacija znakovnog niza tipa string Na slici 4.9. prikazan je isječak programa napisanog u programskom jeziku C# na kojem je prikazana primjena znakovnog niza. Slika 4.9. Primjer znakovnog niza u programskom jeziku C# Prilikom unosa teksta, znakovni niz je spremljen u string, te je zatim prebačen u polje tipa char pomoću petlje foreach. Nakon toga je svako malo slovo u polju tipa char pretvoreno u veliko, a svako veliko slovo pretvoreno u malo, na način da je oduzet ili dodan broj 32 (promjena ASCII koda slova). U programskom jeziku C# postoje funkcije ToUpper() i ToLower() pomoću kojih se mogu slova u stringu promijeniti iz malih u velika i obrnuto Java Znakovni niz u programskom jeziku Java može se zapisati u polje tipa char ili string, slično kao i u jeziku C#. Na slici prikazan je isječak koda koji prikazuje način uporabe polja tipa char i stringa u programskom jeziku Java. 26

30 Slika Primjer znakovnog niza u programskom jeziku Java Prilikom inicijalizacije polja polje[] tipa char iza znaka jednakosti nije potrebno pisati operator new iz razloga što se polje odmah deklarira, odnosno puni se znakovnim nizom koji je upisan u varijablu tekst koja je tipa string Python Znakovni niz u programskom jeziku Python može se definirati na način da se inicijalizira objekt klase array s kodom 'c' koji označava polje tipa char ili da se običnoj varijabli pridruži znakovni niz. Na slici prikazana je uporaba klase array za kreiranje polje tipa char, te uporaba obične varijable za spremanje znakovnog niza. Slika Python - korištenje klase array i varijable za spremanje znakovnih nizova Na slici prikazan je programski primjer koji velika slova pretvara u mala, a mala u velika. Program je riješen na sličan način kao i u drugim jezicima, odnosno tako da mijenja ASCII kod slova dodavanjem ili oduzimanjem broja

31 Slika Primjer znakovnog niza u programskom jeziku Python Delphi Znakovni niz u programskom jeziku Delphi može se zapisati u polje tipa char ili string, slično kao i u jezicima C# i Java. Na slici prikazan je isječak koda koji prikazuje način uporabe polja tipa char i varijable tipa string u programskom jeziku Delphi. Nakon unosa teksta u polje, velika i mala slova zamjenjuju se na način da se mijenja njihov ASCII kod. 28

32 4.3 Struktura Slika Primjer znakovnog niza u programskom jeziku Delphi Strukture su složeni tipovi podataka koji uključuju više elemenata različitog naziva i različitog tipa [Radošević, 2007, str. 10]. Elementi strukture nalaze se u istom bloku unutar memorije i pristupa im se putem jednog pokazivača, odnosno identifikatora. Na slici prikazana je jednostavna struktura koja ima dva elementa, ime (eng. name) i dužinu (eng. lenght) pjesme, identifikator strukture je polje Title. 29

33 Slika Primjer strukture Izvor: The Tenouk, (C Structures) C++ Slično poljima, i strukture se mogu alocirati statički i dinamički na sljedeći način: struct tstruktura { int broj_strukture; }; tstruktura st1; //Statička alokacija strukture. tstruktura *st2 = new tstruktura;//dinamička alokacija strukture. Pristup elementima statičkih struktura moguće je pomoću operatora točke, '.'. st1.broj_strukture = 1; Elementima dinamičkih struktura pristupa se pomoću operatora '->' [Radošević, 2007]. st2->broj_strukture = 2; Na slici prikazan je isječak programa napisanog u programskom jeziku C++ koji prikazuje način na koji se definira i alocira struktura tstudent. Slika Primjer strukture u programskom jeziku C++ 30

34 4.3.2 C# U programskom jeziku C# strukture se mogu alocirati statički i dinamički na sličan način kao i u programskom jeziku C++, a samo definiranje strukture je identično. Na slici prikazan je isječak programa u kojem se definira i alocira struktura. Slika Primjer strukture u programskom jeziku C# Java U Javi ne postoji struktura, ali se zato može definirati klasa koja će zamijeniti ulogu strukture. Na slici prikazan je isječak programa napisanog u Javi u kojemu se klasa upotrebljava kao struktura u programskom jeziku C++ ili C#. Slika Korištenje klase kao zamijene za strukturu u programskom jeziku Java 31

35 4.3.4 Python Programski jezik Python nema strukture, ali zato ima kolekciju namedtuple koja se ponašao vrlo slično kao struktura u programskom jeziku C++, odnosno C#. Za korištenje kolekcije namedtuple potrebno je napisati sljedeću liniju koda: from collections import namedtuple Kolekcija namedtuple se koristi na sljedeći način: kolekcija = namedtuple("kolekcija", "varijabla1 varijabla2") Funkcija namedtuple vraća novu podklasu klase tuple koja ima naziv kolekcija i dvije varijable (varijabla1 i varijabla2). Nova podklasa se koristi kako bi se kreirali objekti koji imaju zadane atribute kojima se može pristupati, slično kao i kod strukture u programskom jeziku C++ [Python Docs, 2014c]. Na slici prikazan je primjer napisan u programskom jeziku Python koji koristi kolekciju namedtuple za grupiranje različitih tipova podataka. Slika Korištenje kolekcije namedtuple u programskom jeziku Python 32

36 4.3.5 Delphi U programskom jeziku Delphi za definiranje strukture koristi se ključna riječ Record umjesto struct u programskim jezicima C++ i C#. U Delphiju se struktura definira na sljedeći način: type tstruktura = Record varijabla1: Integer; varijabla2: string; end; Na slici prikazan je isječak programa napisanog u Delphiju koja prikazuje način na koji se upotrebljava struktura Record. 4.4 Klasa Slika Korištenje strukture Record u programskom jeziku Delphi Pojmovi klase i objekta temeljni su u objektnom programiranju. Klasa predstavlja tip, a objekt instancu tipa. Za razliku od strukture iz jezika C (deklaracija struct), klasa osim podataka definira i procese obrade podataka. Klasa definira svoje članove. Članovi klase su atributi (podatkovni članovi) i metode (funkcijski članovi). Atributi se odnose na podatke, slično 33

37 članovima strukture iz jezika C. Metode predstavljaju funkcije koje pripadaju klasi. Deklaracija class uvodi specifikatore pristupa koji određuju prava pristupa pojedinim članovima klasa. public - javni pristup; takvi članovi dostupni su iz svih dijelova programa protected - zaštićeni pristup; pravo pristupa iz osnovne klase i klasa koje je nasljeđuju private - privatni pristup; može im se pristupiti samo iz klase gdje su deklarirani Zaštićeni pristup (protected) članovima klase znači pravo pristupa članovima klase iz metoda klase gdje su definirani i iz metoda podređenih klasa. [Radošević, 2007, str ] C++ Na slici prikazan je isječak koda C++ programa na kojem je definirana osnovna klasa cracunalo i izvedena klasa cstolno_racunalo. Slika Korištenje klasa u programskom jeziku C++ Klasa cracunalo ima javne atribute proizvodac, godina_proizvodnje, cijena i javnu metodu ispis() koji su naslijeđeni i u izvedenoj klasi cstolno_računalo. Izvedena klasa cstolno_racunalo ima javne atribute kuciste i napajanje, te javnu metodu ispis() pomoću koje se ispisuju svi njezini atributi. Deklaracija objekata klasa cracunalo i cstolno_racunalo izvodi na sljedeći način: cracunalo *racunalo = new cracunalo; //Deklaracija objekta racunalo 34

38 cstolno_racunalo *stolno_racunalo = new cstolno_racunalo[n]; Polje stolno_racunalo sadrži N objekata klase cstolno_racunalo C# Klase u programskom jeziku C# definiraju se i koriste na sličan način kao i u programskom jeziku C++. Na slici prikazan je isječak koda C# programa na kojem je definirana osnovna klasa cracunalo i izvedena klasa cstolno_racunalo slično kao i u programskom jeziku C++. Slika Korištenje klasa u programskom jeziku C# Deklaracija objekata klasa cracunalo i cstolno_racunalo izvodi na sljedeći način: cracunalo racunalo = new cracunalo(); //Deklaracija objekta racunalo cstolno_racunalo[] stolno_racunalo = new cstolno_racunalo[n]; Polje stolno_racunalo sadrži N objekata klase cstolno_racunalo Java Klase u programskom jeziku Java definiraju se i koriste na sličan način kao i u programskim jezicima C++ i C#. Najveća razlika je što se prilikom nasljeđivanja klase umjesto operatora ':' piše ključna riječ extends. Na slici prikazan je isječak koda Java programa na kojem je definirana osnovna klasa cracunalo i izvedena klasa cstolno_racunalo. 35

39 Slika Korištenje klasa u programskom jeziku Java Na slici prikazan je način deklariranja klasa cracunalo i cstolno_racunalo, koji je identičan načinu deklariranju klasa u jeziku C#. Slika Deklariranje klasa Javi Python U programskom jeziku Python svi članovi klase su javni, te se ispred atributa i metoda ne mora pisati ključna riječ public. Funkcija, metoda ili varijabla definirana unutar klase s prefiksom ' ' (npr. var) tretira se kao privatni član klase. Prefiks ' ' se koristi kako bi se izbjegli incidenti, odnosno podudaranja imena s imenima naslijeđenih klasa [Python Docs, 2014d]. Prilikom definiranja izvedene klase naziv klase iz koje se atributi i metode nasljeđuju piše se u oblim zagradama (npr. class izvedena_klasa (osnovna_klasa):). Na slici prikazan je isječak koda Python programa na kojem je definirana osnovna klasa cracunalo i izvedena klasa cstolno_racunalo. 36

40 Slika Korištenje klasa u programskom jeziku Python Deklaracija N objekata klase cstolno_racunalo izvodi na sljedeći način: stolno_racunalo = [0 for i in xrange(n)] for i in range(n): stolno_racunalo[i] = cstolno_racunalo(raw_input("\nproizvodac racunala: ")) Unutar klase cstolno_racunalo definiran je konstruktor, te se prilikom deklaracije objekta klase cstolno_racunalo prosljeđuje naziv proizvođača računala koji se u konstruktoru sprema u varijablu proizvodac Delphi U programskom jeziku Delphi prvo se definiraju klase s atributima i nazivima procedura, funkcija i konstruktora, te se nakon toga pišu funkcionalnosti procedura, funkcija i konstruktora. Prilikom definiranja izvedene klase naziv klase iz koje se atributi i metode nasljeđuju piše se na sljedeći način: izvedena_klasa = class (osnovna_klasa) Deklaracija klase piše se unutar var bloka na sljedeći način: var: cklasa1; //Deklaracija objekta var klase cklasa1. polje: array[0..n] of cklasa2; //Deklaracija N objekata polje //klase cklasa2. Na slici prikazan je isječak koda Delphi programa na kojem je definirana osnovna klasa cracunalo i izvedena klasa cstolno_racunalo. 37

41 4.5 Unija (C++) Slika Korištenje klasa u programskom jeziku Delphi U programskom jeziku C++ postoji mehanizam agregacije koji omogućuje da se alternativni podaci čuvaju u istom memorijskom prostoru. Taj se mehanizam agregacije naziva unija. Deklaracija unije u potpunosti je jednaka po sintaksi i svojstvima deklaraciji strukture, osim u ključnoj riječi union koja se koristi umjesto ključne riječi struct [Lovrenčić, 2010]. Na slici prikazan je primjer korištena unije. Slika Definiranje unije i struktura u jeziku C++ Struktura racunalo se pomoću unije pod proširuje sa strukturama stolno_racunalo i prijenosno_racunalo. Unutar strukture racunala definira se polje i broj računala koja će biti 38

42 unesena. Prilikom unošenja podataka o računalu korisnik bira želi li unijeti stolno ili prijenosno računalo, te se prema tome dodatni podaci spremaju u strukturu stolno_racunalo ili prijenosno_racunalo, dok su osnovni podaci spremljeni u strukturu racunalo. 39

43 5. Zaključak Programiranje je umijeće pisanja računalnih programa. U povijesti se pojam objektnoorijentirano programiranje prvi puta pojavljuje u dokumentaciji jezika Smalltalk kojeg je razvila grupa stručnjaka na čelu s Alanom Kayom u tvrtki Xerox PARC. Tijekom narednih godina razvijaju se programski jezici poput Pascala i C-a koji su utjecali na daljnji razvoj objektnoorijentiranih jezika više razine. U današnje vrijeme objektno-orijentirano programiranje sve je popularnije, stoga je vrlo korisno poznavati i razumijevati objektno-orijentirano programiranje i glavne značajke objektno-orijentiranih jezika. Razvijanje objektno-orijentiranih softvera moguće je u bilo kojem jeziku više razine, poput jezika C++, C#, Java, Python, Delphi, i dr. Za razumijevanje složenijih računalnih programa bitno je poznavanje mehanizama agregacije koji se formiraju od jednostavnijih tipova podataka i složenih tipova niže razine. Mehanizmi agregacije su polja, znakovni nizovi, strukture, unije i klase. Od navedenih mehanizama agregacije jedino programski jezik C++ sadrži sve mehanizme. Polje je mehanizam agregacije koji se najčešće koristi. Polje čini niz varijabli istog tipa koje se nalaze na uzastopnim memorijskim lokacijama, te se u svim navedenim jezicima definira i koristi na sličan način. Znakovni nizovi se mogu definirati kao polje tipa char ili kao poseban tip podatka string. U jezicima više razine, poput C#, Java i Python češće se koristi varijabla tipa string za spremanje znakovnih nizova iz razloga što je string objekt, a jezici više razine imaju ugrađene funkcije za rad s takvim objektima (npr. funkcija ToUpper() u jeziku C# pretvara sva mala slova u velika). Struktura je mehanizam agregacije koja je iz programskoj jezika C naslijeđena u C++ i C#. U jeziku C++ i C# struktura se definira i koristi na gotovo identičan način. Glavna razlika je u alokaciji varijable koja je tipa strukture. Programski jezik Delphi također sadrži strukturu, ali se umjesto ključne riječi struct za definiranje strukture koristi riječ Record. Jezici Java i Python ne sadrže strukturu, ali se ona može na jednostavan način implementirati pomoću klase ili pomoću dodatnih biblioteka koji dodaju sličan mehanizam strukturi (namedtuple u jeziku Python). Klase i objekti su osnovne karakteristike svih objektno-orijentiranih jezika, te se u navedenim jezicima definiraju i koriste na sličan način. U programskom jeziku C++ postoji još jedan mehanizam agregacije koji je naslijeđen iz strukturnog programiranja, odnosno iz jezika C. Taj mehanizam naziva se unija, te on omogućuje da se alternativni podaci čuvaju u istom memorijskom prostoru, što danas više nije toliko bitno iz razloga što računala ima znatno više memorije. Programski jezik C++ dobar je izbor jezika za početnike iz razloga što nasljeđuje C jezik i njegovu proceduralnu i strukturnu paradigmu, te još k tome sadrži objektno-orijentiranu, funkcionalnu i generičku paradigmu. Nakon savladavanja jezika C++ prelazak na druge 40

PREDMET. Osnove Java Programiranja. Čas JAVADOC

PREDMET. Osnove Java Programiranja. Čas JAVADOC PREDMET Osnove Java Programiranja JAVADOC Copyright 2010 UNIVERZITET METROPOLITAN, Beograd. Sva prava zadržana. Bez prethodne pismene dozvole od strane Univerziteta METROPOLITAN zabranjena je reprodukcija,

More information

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt Funkcionalno programiranje Interoperabilnost jezika Scala i Java Prevođenje u Java bajt kod Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući

More information

VRIJEDNOSTI ATRIBUTA

VRIJEDNOSTI ATRIBUTA VRIJEDNOSTI ATRIBUTA Svaki atribut (bilo da je primarni ključ, vanjski ključ ili običan atribut) može i ne mora imati ograničenja na svojim vrijednostima. Neka od ograničenja nad atributima: Null / Not

More information

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo Nasledjivanje klasa Modifikator new class A { public virtual void F() { Console.WriteLine("I am A"); } } class B : A { public override void F()

More information

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi DELEGATI Bezbedni pokazivači na funkcije Jer garantuju vrednost deklarisanog tipa. Prevodilac prijavljuje grešku ako pokušate da povežete

More information

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010 Programiranje Programski jezik C prof.dr.sc. Ivo Ipšić 2009/2010 Sadržaj Ulazno-izlazne funkcije Datoteke Formatirane datoteke Funkcije za rad s datotekama Primjeri Datoteke komunikacija između programa

More information

PROGRAMIRANJE. Amir Hajdar

PROGRAMIRANJE. Amir Hajdar PROGRAMIRANJE Amir Hajdar Teme 2 Klase i objekti u Javi Primjer kroz klasu Krug Atributi i metode Inicijalizacija objekata (konstruktori) Polymorphism Statičke varijable i metode This Klase i objekti u

More information

Programiranje III razred

Programiranje III razred Tehnička škola 9. maj Bačka Palanka Programiranje III razred Naredbe ciklusa for petlja Naredbe ciklusa Veoma često se ukazuje potreba za ponavljanjem nekih naredbi više puta tj. za ponavljanjem nekog

More information

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets CSS CSS CSS: Cascading Style Sheets - Opisuje izgled (appearance) i raspored (layout) stranice - Sastoji se od CSS pravila, koji defini[u skup stilova selector { property: value; 1 Font face: font-family

More information

PARALELNO PROGRAMIRANJE

PARALELNO PROGRAMIRANJE Predavanje 09 Odjel za matematiku 1 PARALELNO PROGRAMIRANJE POSIX threadovi za C++ Predavanje 09 Odjel za matematiku 2 Programske niti (thread) unutar procesa Danas ćemo se upoznati s POSIX thread bibliotekom

More information

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1 NIZOVI Niz deklarišemo navođenjemtipa elemenata za kojim sledi par srednjih zagrada[] i naziv niza. Ako je niz višedimenzionalni između zagrada[] se navode zarezi, čiji je broj za jedan manji od dimenzija

More information

Vežbe - XII nedelja PHP Doc

Vežbe - XII nedelja PHP Doc Vežbe - XII nedelja PHP Doc Dražen Drašković, asistent Elektrotehnički fakultet Univerziteta u Beogradu Verzija alata JavaDoc za programski jezik PHP Standard za komentarisanje PHP koda Omogućava generisanje

More information

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa Uvod u programiranje - vežbe Kontrola toka izvršavanja programa Naredbe za kontrolu toka if, if-else, switch uslovni operator (?:) for, while, do-while break, continue, return if if (uslov) naredba; if

More information

Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365

Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365 Windows 8 Licenciranje, razlike u verzijama Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje Serverski proizvodi Server 2012, System centar 2012, SQL 2012, Sharepoint

More information

String. String. Kreiranje string objekta pomoću string literala (konstanti) Kreiranje string objekta

String. String. Kreiranje string objekta pomoću string literala (konstanti) Kreiranje string objekta String string ili znakovni niz (string) nije niz znakova u Javi su stringovi klase String paketa java.lang!!! Usporedba: char gf = G ; Niz znakova String char [] gf = { G, e, o, d, e, t, s, k, i ; String

More information

dr. sc.. Josip Musić Originalne slideove izradio:

dr. sc.. Josip Musić Originalne slideove izradio: Uvod u programiranje Programiranje 1 (450) Poglavlje 1 Uvod u računala, Microsoft.NET i VB.NET (dio 2 od 2): Pregled.NET platforme dr. sc.. Josip Musić jmusic@fesb.hr 1 Originalne slideove izradio: Teo

More information

Naredbe za kontrolu toka

Naredbe za kontrolu toka Naredbe za kontrolu toka Naredbe za kontrolu toka Nakon odslušanog bit ćete u stanju: objasniti semantiku naredbi za kontrolu postupaka navesti sintaksu naredbi if, if-else i case u programskom jeziku

More information

RAČUNARSKI PRAKTIKUM II

RAČUNARSKI PRAKTIKUM II Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM II Predavanje 07 - Uvod u PHP 4. svibnja 2015. Sastavio: Zvonimir Bujanović PHP PHP Interpretirani skriptni

More information

NAPREDNO I OBJEKTNO ORIJENTIRANO PROGRAMIRANJE

NAPREDNO I OBJEKTNO ORIJENTIRANO PROGRAMIRANJE NAPREDNO I OBJEKTNO ORIJENTIRANO PROGRAMIRANJE Objektno orijentirani jezici Kod proceduralnih jezika podaci su pasivan element. OO jezici imaju i proceduralne i neproceduralne elemente, procedure i podaci

More information

Prva recenica. Druga recenica.

Prva recenica. Druga recenica. Algoritmi i programiranje Predavanje 4 METODE LOKALNE, GLOBALNE VARIJABLE I KONSTANTE METODA je imenovani izdvojeni slijed naredbi koji rješava određeni zadatak i po potrebi se poziva jednom ili više puta

More information

Sberbank Business Online na Mozilla FireFox

Sberbank Business Online na Mozilla FireFox Sberbank Business Online na Mozilla FireFox Verzija 1.6 Srpanj 2016. Sberbank d.d. Stranica 1 SADRŽAJ 1 INSTALACIJA... 2 2 POKRETANJE MOZILLE FIREFOX... 3 2.1 IMPORT SECURITY MODULA... 4 2.2 AUTOMATSKI

More information

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a Webmail sistem ima podršku za SSL (HTTPS). Korištenjem ovog protokola sva komunikacija između Webmail sistema i vašeg Web čitača je kriptovana. Prilikom pristupa

More information

Uputstvo za korišćenje logrotate funkcije

Uputstvo za korišćenje logrotate funkcije Copyright AMRES Sadržaj Uvod 3 Podešavanja logrotate konfiguracionog fajla 4 Strana 2 od 5 Uvod Ukoliko je aktivirano logovanje za RADIUS proces, može se desiti da posle određenog vremena server bude preopterećen

More information

OUR KNOWLEDGE FOR YOUR SUCCESS. Iskustva u razvoju i implementaciji ADF aplikacije

OUR KNOWLEDGE FOR YOUR SUCCESS. Iskustva u razvoju i implementaciji ADF aplikacije Iskustva u razvoju i implementaciji ADF aplikacije Sadržaj Opis aplikacije za AZ Mirovinski Fond Internacionalizacija aplikacije Integracija sa Oracle Reports Iskorištenje postojeće PL/SQL logike Kreiranje

More information

Algoritmi i strukture podataka 2. Čas, Uvod u C++

Algoritmi i strukture podataka 2. Čas, Uvod u C++ Algoritmi i strukture podataka 2. Čas, Uvod u C++ Aleksandar Veljković 2017/2018 1 Uvod Jezik C++ je jezik koji pripada objektno orijentisanoj paradigmi, ipak, u okviru ovog kursa naglasak neće biti na

More information

JavaScript i HTML DOM

JavaScript i HTML DOM 4. vježbe iz WEB programiranja četvrtak, 22. ožujka 2012. JavaScript 1. dio JavaScript i Što je DOM? Kako JS koristi DOM? Pristup elementima dokumenta Promjena i učitavanje vrijednosti tagova Primjer 1.

More information

Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list.

Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list. Ime i prezime: Asistent: Predava : Programiranje (C) 1. kolokvij 14. 4. 2003. 1. 2. 3. 4. 5. 6. 7. Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj

More information

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0. Kontrolne naredbe Primjeri: Opšti oblik razgranate strukture (if sa ) if (uslov) Naredba 1 ili blok naredbi1 Naredba 2 ili blok naredbi2 Učitati broj x i štampati vrijednost double x, z; Scanner in=new

More information

VB komande. Programiranje 1

VB komande. Programiranje 1 VB komande Programiranje 1 Zadatak 1: Sastaviti program koji se sastoji iz jedne ListBox kontrole, jedne Textbox kontrole i dva komandna dugmeta. Klikom na prvo komandno dugme umeće se u ListBox sadržaj

More information

PKI Applet Desktop Application Uputa za instalaciju programske potpore

PKI Applet Desktop Application Uputa za instalaciju programske potpore 1 SADRŽAJ 1. UVOD 3 2. PODRŽANI OPERATIVNI SUSTAVI 3 3. PROGRAMSKI PREDUVJETI ZA INSTALACIJU PROGRAMSKE POTPORE 3 4. INSTALACIJA PROGRAMSKE POTPORE 3 5. DEINSTALACIJA PROGRAMSKE POTPORE 6 2 1. Uvod PKI

More information

Uputa za instaliranje programske potpore za operativni sustav WINDOWS

Uputa za instaliranje programske potpore za operativni sustav WINDOWS ZABA SignErgy Desktop aplikacija Uputa za instaliranje programske potpore za operativni sustav WINDOWS SADRŽAJ 1. UVOD 3 2. PODRŽANI OPERATIVNI SUSTAVI 3 3. PROGRAMSKI PREDUVJETI ZA INSTALACIJU PROGRAMSKE

More information

Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb,

Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb, Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb, 13.04.2017. Podešavanje Hyper-V Servera 2016 za RSAT upravljanje Dario Štefek Lokacije za preuzimanje: Microsoft Hyper-V Server 2016 https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-2016

More information

VDSL modem Zyxel VMG1312-B10A/B30A

VDSL modem Zyxel VMG1312-B10A/B30A VDSL modem Zyxel VMG1312-B10A/B30A Default Login Details LAN IP Address http://192.168.2.1 User Name user Password 1234 Funkcionalnost lampica Power lampica treperi kratko vrijeme nakon uključivanja modema,

More information

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133 Binarne hrpe Potpuno binarno stablo binarno stablo u kojem svaki čvor koji nije list ima točno 2 nasljednika. Binarna hrpa potpuno binarno stablo u kojem svaki čvor koji nije list ima veću ključnu vrijednost

More information

NIZOVI.

NIZOVI. NIZOVI LINKOVI ZA KONZOLNI C# OSNOVNO http://www.mycity.rs/net/programiranje-u-c-za-osnovce-i-srednjoskolce.html http://milan.milanovic.org/skola/csharp-00.htm Niz deklarišemo navođenjem tipa elemenata

More information

Programske paradigme Funkcionalna paradigma

Programske paradigme Funkcionalna paradigma Programske paradigme Funkcionalna paradigma 1. čas: Uvod u funkcionalno programiranje. Programski jezik Haskel. Upoznavanje sa razvojnim okruženjem. Tipovi podataka. Funkcionalno programiranje Stil u programiranju

More information

Upute za postavljanje Outlook Expressa

Upute za postavljanje Outlook Expressa Upute za postavljanje Outlook Expressa Prije postavljanja klijenata morate obavezno obaviti prvu prijavu na web mail kako bi aktivirali vaš račun na novom sustavu. Ukoliko niste obavili prvu prijavu, nećete

More information

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

OBJEKTNO ORIJENTISANO PROGRAMIRANJE OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 12: NASLEĐIVANJE Miloš Kovačević Đorđe Nedeljković 1 /17 OSNOVNI KONCEPTI - Statički i dinamički tipovi podataka - Prepisivanje metoda superklase - Polimorfizam

More information

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 08 Zvonimir Bujanović Slaven Kožić Vinko Petričević Uvod: (X)HTML i CSS Na ovim i idućim vježbama naučit ćemo osnove jezika za opisivanje

More information

Izrada VI laboratorijske vježbe

Izrada VI laboratorijske vježbe Izrada VI laboratorijske vježbe 1. Programirati proceduru koja se aktivira sa Standard palete alatki klikom na button Fajlovi. Prilikom startovanja procedure prikazuje se forma koja sadrži jedan list box

More information

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end. NAREDBA CIKLUSA SA PREDUSLOVOM WHILE 1.Odrediti vrednosti s i p nakon izvrsenja sledecih naredbi za dato a=43, a=34, a=105 program p1; var a,s,p:integer; write('unesite a:');readln(a); p:=a; s:=0; while

More information

Nizovi. Programiranje 1

Nizovi. Programiranje 1 Nizovi Programiranje 1 VB Nizovi Zamislite da imate 10,000 šešira i da morate svakome od njih dati jedinstvenu oznaku. Kako biste to napravili? Bilo bi razumno svakom šeširu dati njegov broj. Sada možete

More information

PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I POLIMORFIZAM

PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I POLIMORFIZAM PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I 1. Definicija svake klase sadrzi kljucnu rec iza koje se navodi ime klase: class public extends 2. Kada je funkcija clanica definisana izvan

More information

Numeričke metode i praktikum

Numeričke metode i praktikum Numeričke metode i praktikum Aleksandar Maksimović IRB / 23/03/2006 / Str. 1 vektori Vektor u 3D prostoru. C: int v1[3]; v1[0]=a;v1[1]=b;v1[2]=c; Fortran: INTEGER V1(3) V1(1)=a V1(2)=b V1(3)=c Skalarni

More information

Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak...

Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak... Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak... Prof. dr. sc. Tomislav Pribanić Izv. prof. dr. sc. Vedran Podobnik Doc. dr. sc. Marija Seder Sveučilište u Zagrebu Fakultet elektrotehnike

More information

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET Katedra za elektroniku Računarska elektronika Grupa br. 11 Projekat br. 8 Studenti: Stefan Vukašinović 466/2013 Jelena Urošević 99/2013 Tekst projekta :

More information

4.1 Učitavanje podatka tipa string Učitavanje brojčanih vrijednosti Rad sa dinamičkim objektima... 7

4.1 Učitavanje podatka tipa string Učitavanje brojčanih vrijednosti Rad sa dinamičkim objektima... 7 Java zadaci Zadaci 1. Priprema novog projekta... 1 2. Organizacija klasa u fajlove... 2 3. Ispis vrijednosti u konzolni prozor... 3 4. Učitavanje vrijednosti sa konzolnog prozora... 4 4.1 Učitavanje podatka

More information

OSNOVE PROGRAMIRANJA

OSNOVE PROGRAMIRANJA OSNOVE PROGRAMIRANJA Struktura aplikacije Visual Basica Za svaku formu u aplikaciji postoji pripadajuci modul forme (.frm) koji sadrži njen programski kod Modul forme sadži event procedure - dijelovi koda

More information

SVEUČILIŠTE U MOSTARU FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI BAZE PODATAKA 2. Doc.dr.sc. GORAN KRALJEVIĆ BAZE PODATAKA 2 1

SVEUČILIŠTE U MOSTARU FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI BAZE PODATAKA 2. Doc.dr.sc. GORAN KRALJEVIĆ BAZE PODATAKA 2 1 SVEUČILIŠTE U MOSTARU FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI BAZE PODATAKA 2 Doc.dr.sc. GORAN KRALJEVIĆ BAZE PODATAKA 2 1 Baze podataka 2 Web: http://www.fpmoz.ba/gkraljevic Pitanja, primjedbe,

More information

Objektno orijentirano programiranje. Auditorne vježbe

Objektno orijentirano programiranje. Auditorne vježbe Objektno orijentirano programiranje Auditorne vježbe Elektrotehnički fakultet Osijek Kneza Trpimira 2b 31000 Osijek www.etfos.hr 1. UVOD U C++ 1.1 Strukturno programiranje i C++ U programiranju danas dominiraju

More information

Jezik Baze Podataka SQL. Jennifer Widom

Jezik Baze Podataka SQL. Jennifer Widom Jezik Baze Podataka SQL SQL o Jezik koji se koristi u radu sa relacionim bazama podataka o Nije programski jezik i manje je kompleksan. o Koristi se isključivo u radu za bazama podataka. o SQL nije case

More information

Sadržaj. Verzija 03/2017 Primjenjuje se od 20. novembra godine

Sadržaj. Verzija 03/2017 Primjenjuje se od 20. novembra godine Sadržaj 1 Web hosting 3 2 Registracija domena 3 3 Internet marketing 3 4 E mail paketi 4 5 Virtuoz 4 6 Internet Security servis 5 7 Kolokacija servera 6 8 Cloud usluge 6 9 Aktivni servisi koji nijesu u

More information

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje WEB programiranje HTML & CSS Autor/i: Juraj Benić 2018 1. Zadatak Kreirati stranicu kojoj će naslov biti Zadatak 1. i veličina teksta 20px te staviti

More information

Razvoj hibridnih mobilnih aplikacija pomoću PhoneGap platforme

Razvoj hibridnih mobilnih aplikacija pomoću PhoneGap platforme INFOTEH-JAHORINA Vol. 12, March 2013. Razvoj hibridnih mobilnih aplikacija pomoću PhoneGap platforme Igor Dujlović Elektrotehnički fakultet Banja Luka Banja Luka, BiH dujlovic@gmail.com Zoran Đurić Elektrotehnički

More information

Cjenovnik usluga informacionog društva

Cjenovnik usluga informacionog društva Cjenovnik usluga informacionog društva Verzija: 01/2018 Sadržaj 1 Web hosting 3 2 Registracija domena 3 3 Internet marketing 3 4 E mail paketi 4 5 Virtuoz 4 6 Internet Security servis 5 7 Kolokacija servera

More information

TEHNIKA I INFORMATIKA U OBRAZOVANJU

TEHNIKA I INFORMATIKA U OBRAZOVANJU TEHNIKA I INFORMATIKA U OBRAZOVANJU Konferencija 32000 Čačak 9-11. Maja 2008. UDK: 004 : 371 Stručni rad VEZA ZAVISNOSTI ACCESS Momčilo Vujičić 1, Munir Šabanović 2 Rezime: U radu je opisana veza zavisnosti

More information

Prirodno-matematički fakultet u Nišu Departman za fiziku. dr Dejan S. Aleksić Programiranje u fizici

Prirodno-matematički fakultet u Nišu Departman za fiziku. dr Dejan S. Aleksić Programiranje u fizici Programiranje u fizici Prirodno-matematički fakultet u Nišu Departman za fiziku dr Dejan S. Aleksić Programiranje u fizici 7-8 Definicija, inicijalizacija promenljivih 2/21 u C-u Program napisan u programskog

More information

PROGRAMIRANJE. Teme. Packages Reference objekata Inheritance nasljeđivanje Exceptions. Amir Hajdar

PROGRAMIRANJE. Teme. Packages Reference objekata Inheritance nasljeđivanje Exceptions. Amir Hajdar PROGRAMIRANJE Amir Hajdar Teme 2 Packages Reference objekata Inheritance nasljeđivanje Exceptions Packages API Application Programmer Interface Sve klase ponuđene u sklopu Java jezika, uključujući i kompajler

More information

Uvod u Javu. Programski jezik Java Izvršavanje Java programa BlueJ razvojno okruženje Elementi Jave Tipovi podataka Prvi programi

Uvod u Javu. Programski jezik Java Izvršavanje Java programa BlueJ razvojno okruženje Elementi Jave Tipovi podataka Prvi programi 2 Uvod u Javu Programski jezik Java Izvršavanje Java programa BlueJ razvojno okruženje Elementi Jave Tipovi podataka Prvi programi 12 Java i objektno orijentirano programiranje Programski jezik Java Krajem

More information

Računarske osnove Interneta (SI3ROI, IR4ROI)

Računarske osnove Interneta (SI3ROI, IR4ROI) Računarske osnove terneta (SI3ROI, IR4ROI) Vežbe MPLS Predavač: 08.11.2011. Dražen Drašković, drazen.draskovic@etf.rs Autori: Dražen Drašković Naučili ste na predavanjima MPLS (Multi-Protocol Label Switching)

More information

Case Study Hrvatska pošta: Korisničko iskustvo iz snova. Tomislav Turk Samostalni sistem inženjer, Combis d.o.o. Zagreb,

Case Study Hrvatska pošta: Korisničko iskustvo iz snova. Tomislav Turk Samostalni sistem inženjer, Combis d.o.o. Zagreb, Case Study Hrvatska pošta: Korisničko iskustvo iz snova Tomislav Turk Samostalni sistem inženjer, Combis d.o.o. Zagreb, 27.12.2018. Sadržaj Hrvatska pošta prije projekta Izazovi projekta Tehnologije korištene

More information

namespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

namespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); } Spojnice using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO;

More information

KINEMATIČKA ANALIZA MEHANIZAMA INDUSTRIJSKIH ROBOTA KORIŠTENJEM PROGRAMSKOG JEZIKA MATLAB

KINEMATIČKA ANALIZA MEHANIZAMA INDUSTRIJSKIH ROBOTA KORIŠTENJEM PROGRAMSKOG JEZIKA MATLAB 10 th International Scientific Conference on Production Engineering DEVELOPMENT AND MODERNIZATION OF PRODUCTION KINEMATIČKA ANALIZA MEHANIZAMA INDUSTRIJSKIH ROBOTA KORIŠTENJEM PROGRAMSKOG JEZIKA MATLAB

More information

Nasleđivanje i izvedene klase u jeziku C++

Nasleđivanje i izvedene klase u jeziku C++ Tema 08 Nasleđivanje i izvedene klase u jeziku C++ dr Vladislav Miškovic vmiskovic@singidunum.ac.rs Fakultet za informatiku i računarstvo - Tehnički fakultet OBJEKTNO ORIJENTISANO PROGRAMIRANJE 2016/2017

More information

KURSORI BAZE PODATAKA U ORACLE 11g

KURSORI BAZE PODATAKA U ORACLE 11g KURSORI BAZE PODATAKA U ORACLE 11g SAŽETAK Kursor baze podataka je privatno SQL područje u kojem se čuvaju informacije za procesiranje određene SQL naredbe. Oracle PLSQL jezik koristi implicitne i eksplicitne

More information

8. NIZOVI. // deklaracija niza od 10 elemenata: data[0], data[1],..data[9] int data[10] ; S elementima niza se operira kao s prostim varijablama

8. NIZOVI. // deklaracija niza od 10 elemenata: data[0], data[1],..data[9] int data[10] ; S elementima niza se operira kao s prostim varijablama 8. NIZOVI Niz je indeksirani skup podataka - elemenata niza. Niz se deklarira imenom iza kojeg se u uglatim zagradama zapisuje broj elemenata niza, a ispred imena se zapisuje tip elemenata. // deklaracija

More information

Programski jezik JAVA PREDAVANJE

Programski jezik JAVA PREDAVANJE Programski jezik JAVA PREDAVANJE 8 2018 www.etf.ac.me Polja za potvrdu i Radio tasteri Polja za potvrdu i radio tasteri nijesu uzajamno isključivi, što znači da ako imate pet polja za potvrdu u jednom

More information

VHDLPrimeri Poglavlje5.doc

VHDLPrimeri Poglavlje5.doc 5. VHDL opis kola koja obavljaju osnovne aritmetičke funkcije Sabirači Jednobitni potpuni sabirač definisan je tablicom istinitosti iz Tabele 5.1. Tabela 5.1. cin a b sum cout 0 0 0 0 0 0 0 1 1 0 0 1 0

More information

16. Sigurnije programiranje

16. Sigurnije programiranje 16. Sigurnije programiranje 16.1 Pretvorba tipova Pretvorba realnog broja u cijeli broj se može izvršiti naredbama: int i; double d; ili: i = (int) d; i = int(d); U cilju bolje kontrole pretvorbe tipova

More information

Uputstvo za podešavanje mail klijenta

Uputstvo za podešavanje mail klijenta Uputstvo za podešavanje mail klijenta 1. Podešavanje Thunderbird mail klijenta 1.1 Dodavanje mail naloga Da biste podesili Vaš mail klijent (u ovom slučaju Thunderbird) da prima i šalje mail-ove potrebno

More information

Programiranje III razred

Programiranje III razred Tehnička škola 9. maj Bačka Palanka Programiranje III razred Konverzija tipova Konverzija tipova Prilikom komunikacije aplikacije sa korisnikom, korisnik najčešće unosi ulazne podatke koristeći tastaturu.

More information

Uvod, varijable, naredbe, petlje

Uvod, varijable, naredbe, petlje 8. JavaScript Uvod, varijable, naredbe, petlje M. Zekić-Sušac 1 Što je JavaScript? JavaScript je najpopularniji skriptni jezik na Internetu kojeg podržavaju svi poznatiji preglednici (Internet Explorer,

More information

KLASIFIKACIJA JELENA JOVANOVIĆ. Web:

KLASIFIKACIJA JELENA JOVANOVIĆ.   Web: KLASIFIKACIJA JELENA JOVANOVIĆ Email: jeljov@gmail.com Web: http://jelenajovanovic.net PREGLED PREDAVANJA Šta je klasifikacija? Binarna i više-klasna klasifikacija Algoritmi klasifikacije Mere uspešnosti

More information

PITANJA ZA II KOLOKVIJUM KLASE I OBJEKTI

PITANJA ZA II KOLOKVIJUM KLASE I OBJEKTI PITANJA ZA II KOLOKVIJUM KLASE I OBJEKTI 1. Enkapsulacija je podataka. skrivanje apstrakcija nasledivanje 2. Unutar deklaracije klase navode se: definicije funkcija clanica prototipovi (deklaracije) funkcija

More information

RAČUNARSKI PRAKTIKUM II

RAČUNARSKI PRAKTIKUM II Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM II Predavanje 04 - Uvod u PHP 14. ožujka 2016. Sastavio: Zvonimir Bujanović PHP PHP Interpretirani skriptni

More information

ARDUINO KROZ JEDNOSTAVNE PRIMJERE - pripreme za natjecanja -

ARDUINO KROZ JEDNOSTAVNE PRIMJERE - pripreme za natjecanja - ARDUINO KROZ JEDNOSTAVNE PRIMJERE - pripreme za natjecanja - PRIPREMA 5-2015 DVOSMJERNA SERIJSKA KOMUNIKACIJA Paolo Zenzerović, mag. ing. el. Zagreb, 2015. 2 ARDUINO KROZ JEDNOSTAVNE PRIMJERE DVOSMJERNA

More information

Računarski praktikum 4

Računarski praktikum 4 Sveučilište u Zagrebu PMF Matematički odjel Klase i objekti Računarski praktikum 4 Vježbe 08 Matko Botinčan Vinko Petričević Krunoslav Puljić 6.11.2007. Računarski praktikum 4 - Vježbe 07 2 Proceduralni

More information

Broj Pitanje Bodovi 1. Navedi osnovne razloge uvođenja objektno orjentiranog pristupa? 2. Što je klasa u programskom jeziku?

Broj Pitanje Bodovi 1. Navedi osnovne razloge uvođenja objektno orjentiranog pristupa? 2. Što je klasa u programskom jeziku? Veleučilište u Rijeci Poslovni odjel Ispit iz OOT I - Grupa A 28.6.2008 Stručni studij informatike Ime i prezime: JMBAG: Bod/ocj: Broj Pitanje Bodovi 1. Navedi osnovne razloge uvođenja objektno orjentiranog

More information

Sistemska programska podrška. Programska podrška. MS Windows. MS Windows NT

Sistemska programska podrška. Programska podrška. MS Windows. MS Windows NT Programska podrška Sistemska Namijenjena je pokretanju računala i zatim što djelotvornijem iskorištenju. Aplikativna Namijenjena je rješavanju konkretnih korisničkih poslova Sistemska programska podrška

More information

Informacioni sistemi i baze podataka

Informacioni sistemi i baze podataka Fakultet tehničkih nauka, Novi Sad Predmet: Informacioni sistemi i baze podataka Dr Slavica Kordić Milanka Bjelica Vojislav Đukić Rad u učionici (1/2) Baze podataka (db2015): Studentska korisnička šema

More information

VIŠESTRUKO NASLJEĐIVANJE - SAN ILI JAVA 8?

VIŠESTRUKO NASLJEĐIVANJE - SAN ILI JAVA 8? VIŠESTRUKO NASLJEĐIVANJE - SAN ILI JAVA 8? SAŽETAK Višestruko nasljeđivanje klasa je dosta dugo vremena neopravdano držano kao kompleksno i nepotrebno. Vjerojatno je jedan od glavnih razloga taj što je

More information

Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0

Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0 POM - Pomoć korisnicima Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0 IZUM, 2016 COBISS, COMARC, COBIB, COLIB, IZUM su zaštićeni znaci u posedu

More information

9. RAD S DATOTEKAMA PODATAKA

9. RAD S DATOTEKAMA PODATAKA Rad s datotekama 7-1 9. RAD S DATOTEKAMA PODATAKA U programiranju se često radi sa skupovima podataka koji se čuvaju na jedinicama perfernih memorija, a koji se organizuju u posebne cjeline koje nazivamo

More information

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Sustavi za praćenje i vođenje procesa Seminarski rad LOGIČKI ANALIZATOR (PC kao instrument) 26. svibnja 2007. Ivan Grubišić 0036404380 1. Logički analizator Logički

More information

Blokovska struktura C++ programa ima četiri razine:

Blokovska struktura C++ programa ima četiri razine: Blokovska struktura C++ programa ima četiri razine: 1. razina datoteke (temeljna kompilacijska jedinica) 2. razina definicije (tijela) funkcije 3. razina bloka kontrolnih struktura (sekvenca, iteracija,

More information

NASLOV SEMINARSKOG RADA (16 pt, Bold) Seminarski rad. (16 pt, Bold)

NASLOV SEMINARSKOG RADA (16 pt, Bold) Seminarski rad. (16 pt, Bold) Sveučilište u Zagrebu (12 pt, Bold) Ekonomski fakultet (12 pt, Bold) Naziv diplomskog studija (12 pt, Bold) NASLOV SEMINARSKOG RADA (16 pt, Bold) Seminarski rad (16 pt, Bold) Ime i prezime studenta/studentice,

More information

EXTENDING PHP WITH MODULES MODULARNO PROŠIRENJE PHP-A. Davor Lozić, Alen Šimec Tehničko veleučilište u Zagrebu. Abstract. 1. Introduction 1.

EXTENDING PHP WITH MODULES MODULARNO PROŠIRENJE PHP-A. Davor Lozić, Alen Šimec Tehničko veleučilište u Zagrebu. Abstract. 1. Introduction 1. DOI: 10.19279/TVZ.PD.2015-3-1-09 EXTENDING PHP WITH MODULES MODULARNO PROŠIRENJE PHP-A Davor Lozić, Alen Šimec Tehničko veleučilište u Zagrebu Abstract The purpose of this article is to show how to extend

More information

Lab. vježba PROGRAMIRANJE ZA INTERNET. Upute za laboratorijske vježbe. (izradio: Marin Bugarić) CSS3

Lab. vježba PROGRAMIRANJE ZA INTERNET. Upute za laboratorijske vježbe. (izradio: Marin Bugarić) CSS3 Lab. vježba 6 PROGRAMIRANJE ZA INTERNET Upute za laboratorijske vježbe (izradio: Marin Bugarić) CSS3 P R O G R A M I R A N J E Z A I N T E R N E T Općenito Posljednja verzija Cascading Style Sheetsa, verzija

More information

Strukture Klase i OOP

Strukture Klase i OOP Strukture Klase i OOP Strukture (tip struct) Podatkovni tip struct Derivirani - izvedeni podatkovni tip stvara ga programer grupa logički povezanih podataka različitih podatkovnih tipova (npr. char, int,

More information

Sveučilište Jurja Dobrile u Puli Fakultet za ekonomiju i turizam "Dr. Mijo Mirković" Marino Pereša. JavaScript. Završni rad. Pula, 2015.

Sveučilište Jurja Dobrile u Puli Fakultet za ekonomiju i turizam Dr. Mijo Mirković Marino Pereša. JavaScript. Završni rad. Pula, 2015. Sveučilište Jurja Dobrile u Puli Fakultet za ekonomiju i turizam "Dr. Mijo Mirković" Marino Pereša JavaScript Završni rad Pula, 2015. Sveučilište Jurja Dobrile u Puli Fakultet za ekonomiju i turizam "Dr.

More information

NEKE OBJEKTNE OSOBINE ORACLE PL/SQL 9i JEZIKA (usporedba sa OOPL jezicima C++, Eiffel i Java)

NEKE OBJEKTNE OSOBINE ORACLE PL/SQL 9i JEZIKA (usporedba sa OOPL jezicima C++, Eiffel i Java) NEKE OBJEKTNE OSOBINE ORACLE PLSQL 9i JEZIKA (usporedba sa OOPL jezicima C++, Eiffel i Java) SAŽETAK Oracle korporacija je 1997. godine objavila Oracle 8.0 verziju baze i nazvala ju objektnorelacijskom.

More information

KOMPAJLIRANJE IZVORNOG KODA U UPRAVLJIVE MODULE SOURCE CODE COMPILATION INTO MANAGED MODULES

KOMPAJLIRANJE IZVORNOG KODA U UPRAVLJIVE MODULE SOURCE CODE COMPILATION INTO MANAGED MODULES TEHNOLOGIJA, INFORMATIKA I OBRAZOVANJE ZA DRUŠTVO UČENJA I ZNANJA 6. MeĎunarodni Simpozijum, Tehnički fakultet Čačak, 3 5. jun 2011. TECHNOLO GY, INFO RM ATICS AND EDUCATION FOR LEARNING AND KNOWLEDGE

More information

Programski jezik JAVA

Programski jezik JAVA Programski jezik JAVA 1.1. L i teratu ra 1. L. Lemay, Ch.L. Perkins, Teach Yourself JAVA in 21 Days, Sums- Net, 1996. 2. P.Niemeyer, J. Peck, Exploring Java, O Reilly & Associates, Inc.1996. 3. K. Arnold,

More information

Geant2 - JRA1. Upravljanje mjerenjem i performansama mreža (perfsonar, baza multi-domain nadzorne usluge) Danijel Matek (Srce)

Geant2 - JRA1. Upravljanje mjerenjem i performansama mreža (perfsonar, baza multi-domain nadzorne usluge) Danijel Matek (Srce) Geant2 - JRA1 Upravljanje mjerenjem i performansama mreža (perfsonar, baza multi-domain nadzorne usluge) Danijel Matek (Srce) 21.11.2007, CUC2007, Rijeka Što je to JRA1? Glavni zadatak JRA1 (Performance

More information

Java. Ugnježdeni tipovi IMI PMF KG OOP 09 AKM. najveći deo teksta je preuzet sa slajdova Prof. Dragana Milićeva (ETF Bg) namenjenih pedmetu OOP2

Java. Ugnježdeni tipovi IMI PMF KG OOP 09 AKM. najveći deo teksta je preuzet sa slajdova Prof. Dragana Milićeva (ETF Bg) namenjenih pedmetu OOP2 Java IMI PMF KG OOP 0 AKM 1 Ugnježdeni tipovi najveći deo teksta je preuzet sa slajdova Prof. Dragana Milićeva (ETF Bg) namenjenih pedmetu OOP2 Ugneždeni tipovi IMI PMF KG OOP 0 AKM 2 Unutrašnje klase

More information

SMARTPHONE TO MICROCONTROLLER COMMUNICATION ANDROID FRAMEWORK FOR STUDENTS

SMARTPHONE TO MICROCONTROLLER COMMUNICATION ANDROID FRAMEWORK FOR STUDENTS DOI: 10.19279/TVZ.PD.2016-4-3-11 SMARTPHONE TO MICROCONTROLLER COMMUNICATION ANDROID FRAMEWORK FOR STUDENTS SUSTAV ZA IZRADU ANDROID APLIKACIJE ZA KOMUNIKACIJU S MIKROUPRAVLJAČEM NAMIJENJEN STUDENTIMA

More information

OSNOVE PROGRAMIRANJA RAČUNALO PROGRAM OSNOVNE GRUPE SOFTVERA PROGRAMSKI JEZIK

OSNOVE PROGRAMIRANJA RAČUNALO PROGRAM OSNOVNE GRUPE SOFTVERA PROGRAMSKI JEZIK RAČUNALO OSNOVE PROGRAMIRANJA Hardver električni, elektronički i mehanički dijelovi od kojih je građeno računalo te njegovi pojedini priključci Softver programi koje računalo koristi da bi izvršilo određeni

More information

PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA

PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA SPECIFIKACIJA BAZE PODATAKA ZA PROJEKAT NAZIV_PROJEKTA Veb knjižara - Specifikacija baze podataka 1 10.04.2017. Verzija V 1.0 Datum: 20. mart 2017. Istorija

More information

GUI - događaji (Events) i izuzeci. Bojan Tomić

GUI - događaji (Events) i izuzeci. Bojan Tomić GUI - događaji (Events) i izuzeci Bojan Tomić Događaji GUI reaguje na događaje (events) Događaj je neka akcija koju korisnik programa ili neko drugi izvrši korišćenjem perifernih uređaja (uglavnom miša

More information

SenseGrid: Aplikacija za suradno opažanje okoline putem uređaja s operativnim sustavom Android

SenseGrid: Aplikacija za suradno opažanje okoline putem uređaja s operativnim sustavom Android SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 2784 SenseGrid: Aplikacija za suradno opažanje okoline putem uređaja s operativnim sustavom Android Sandro Gržičić Zagreb, lipanj

More information