3. razred - Računarstvo i informatika

3. razred - Računarstvo i informatika

Objektno orijentisano programiranje - teorija

Pascal

Pascal je razvio švajcarski profesor Niklaus Wirth. On je svom programskom jeziku dao ime po francuskom fizičaru, matematičaru i filozofu Blaise Pascal-u, tvorcu prve mehaničke računske mašine za sabiranje. Pascal je prvi put predstavljen 1965. godine, prva verzija je objavljena 1968. godine sa prevodiocem napisanim u programskom jeziku Fortan (Formula Translator). Druga verzija prevodioca je napisana u samom Pascal-u i objavljena je 1971. godine. Godine 1974. objavljena je verzija koja se uzima kao standard i pravi početak ovog programskog jezika.

Istovremeno (1972) Amerikanac Denis Ritchie razvija programski jezik C zasnovan na jednakim proceduralnim i strukturnim postavkama kao i Pascal, ali sa većim mogućnostima već u standardnoj izvedbi za manipulisanje vrstama podataka, a samim tim i većim mogućnostima za smanjenje zauzeća memorije. Dok je programski jezik C poslužio Kenu Tomsonu i Denisu Ritchiju za programiranje UNIX-a sedamdesetih godina, UCSD verzija Pascala korišćena je na Univerzitetu u Kaliforniji, u San Dijegu za pisanje p-Systema. p-System se mogao instalirati na veliki broj tadašnjih računara zahvaljujući činjenici da je trebalo samo programirati module koji su prenosili i kompajlirali p-system na dati kompjuter.

Sedamdesetih godina Pascal stiče veliku popularnost te se u velikoj meri koristi za aplikacijsko i sistemsko programiranje. Operativni sistemi za Apple (Lisa i Macintosh) s kraja sedamdesetih i početka osamdesetih bili su razvijani u Pascalu, zbog čega pisanje programa u C-u za navedene sisteme nije imalo smisla jer su programi morali biti pisani tako da rade s tipovima podataka koje podržava standardni Pascal kao i sam API (engleski API - Application Programming Interface), u Pascalu napisan Apple operativni sistem. Do 1980-ih Pascal je izučavan na većini fakulteta informatičkog usmerenja u svetu.

Delphi

Verzije programa

Pojavom Windows okruženja (a kasnije i Windows operativnog sistema) se pojavila i potreba za pisanjem programa u tim okruženjima. Programerska kuća Borland je za ove zadatke prizvela program Delphi i pratila trendove u računarstvu. Sledi kratak istorijat verzija ovog programa.

Rane godine Borland-a (1995-2004)

Borland Delphi

Delphi (kasnije poznat kao Delphi 1) objavljen je 1995. za 16-bitni Windows 3.1, i bio je prvi rani primer onoga što je kasnije postalo poznato kao brz razvoj aplikacionih (BRA) alata (engleski RAD - Rapid Application Development). Delphi je prevazišao Borlandov "Turbo Paskal za Windows", kao evoluciju za Windows podršku Borlandovog Turbo Pascala i Borland Paskala, veoma brzog 16-bitnog maternjeg koda MS-DOS kompajlera sa svojim sofisticiranim integrisanim razvojnim okruženjem (engleski IDE - Integrated Development Environment) i tekstualnih korisničkih inferfejs alata za DOS (Turbo Vizija). Rani Turbo Paskal (za MS-DOS) je napisan u dijalektu Paskala u kasnijim dodacima verzije dodat je objekat i nazvan Objektni Paskal. Delphi je oduvek koristio Objektni Paskal, koji je nastavio da se razvija, kao osnovni objektno-orijentisani jezik.

Borland Delphi 2

Delphi 2 objavljen 1996, podržavao je tridesetdvobitna Windows okruženja. Delphi 1 je bio u paketu sa šesnaestobitnim Windows 3.1 aplikacijama. Nova "Brz izvveštaj" komponenta menja Borland ReportSmith. Kasnije je pretvorena u Javu.

Borland Delphi 3

Delphi 3 ovjavljen 1997, je dodao VCL komponente inkapsulirajući 4.71 verziju Winodws čestih kontrola (kao što su "Rebar" i "Toolbar"), TDataset arhitektura se odvojila od BDE, DLL debagovanja, code insight tehnologije, paketa komponenti, šablona komponenti, DecisionCuba i Teechart komponenti za statističko grafisanje, VebBrokera, ActiveFormsa, MIDAS three tier architecture, paketa komponenti i integracija sa COM putem interfejsa.

Inprise Delphi 4

Inprise Delphi 4 je objavljen 1998. IDE (engleski IDE - Integrated Development Environment) je objavljen sa potpuno osveženim editorom i time postao stabilniji. VCL (engleski VCL - Visual COmponent Library) je dodao dodatak za ActionLists i ograničenja. Dodatna poboljšanja bila su metodska preopterećenja, dinamički nizovi, Windows 98 dodatak, Java interoperabilnost, drajveri baza podataka sa visokim preformancama, CORBA razvoj, i Majkrosoft BackOffice dodatak. To je bila poslednja isporučena verzija sa Delphijem 1 za šesnaestobitno programiranje.

Borland Delphi 5

Borland Delphi 5 je objavljen 1999. godine. Dodat je koncept frejmova, paralelno razvijanje, sposobnosti prevoda, unapređene integrisane debagere, XML dodatak, ADO dodatak za baze podataka i interfejs brojanja referenci.

Lazarus

Lazarus projekat je objavljen 1999. Cilj projekta je pravljenje potpuno besplatnog IDE (engleski IDE - Integrated Development Environment) za početnike i programere. Najveća prednost mu je da, ukoliko se ne koriste platformsko specifična rešenja, kod se može kompajlirati za bilo koji sistem. Sistem je zasnovan na Free Pascal-u.

Kylix

2001. godine Borland je objavio veziju Delphi-ja za Linux koja je nazvana Kylix. Za brzo i jeftino dobijanje proizvoda upotrebili su Wine bibliioteku a ne Linux-ove biblioteke (glibc). Troškovi razvoja Kylix-a sa prirodnom glibc bibliotekom i nedostatak prihvatanja ovog proizvoda od strane Linux programera u to vreme su doveli do slabe prodaje, i Kylix je napušten nakon verzije 3. To je bio prvi pokušaj da se doda podrška Linux-u u porodici Delphi proizvoda.

Borland Delphi 6

Pokušali su da podrže Linuks i Windows za "cross-platform" razvijanje, i "cross-platform" alternativa za VCL poznata kao CLX isporučena je 2001. objavljivanjem Delphija 6. Ovo je bio drugi pokušaj da se doda Linux podrška u Delphijevu porodicu. Delphi 6 je imao istu CLX verziju (CLX 1) kao i prva verzija Kylix-a. CLX 1 je napravljen pre Delphija 6 njegove osobine su bazirane na VCL 5 i neke su nedostajale, međutim, one su uključene u VCL 6, i isporučene sa Delphijem 6.

Borland Delphi 7

Delphi 7 objavljen avgusta 2002. je postao standardna verzija koju su Delphi programeri koristili više od bilo koje druge verzije. To je jedan od najuspešnijih IDE-a (engleski IDE - Integrated Development Environment), koje je napravio Borland, zbog svoje stabilnosti, brzine i skromnih hardverskih zahteva, ostao je u aktivnom korišćenju do 2011. Delphi 7 je dodao pordšku za Wiondows XP teme, i još dodataka za izradu web aplikacija. Bio je poslednja verzija Delphija koja nije zahtevala obaveznu software aktivaciju.

Borland Delphi 8

Delphi 8 objavljen decembra 2003. je bio ".NET-only" distribucija koja je kompajlirala Delphi Objekt Paskal kod u .NET CIL; IDE (engleski IDE - Integrated Development Environment) je prerađen samo zbog toga. IDE se promenio u spojen interfejs (nazvan Galileo) sličan Majkrosoftovom "Visual Studio.NET". Delphi 8 je bio dosta kritikovan za svoj loš kvalitet i svoju nesposobnost da napravi prirodne aplikacije (Win32 API/x86 kod). Neposobnost da generiše prirodne aplikacije je bila osobina samo ove verzije, sposobnost je vraćena sledećom verzijom (Delphi 2005).

Kasnije godine Borland-a (2004-2008)

Borland Delphi 2005

Sledeća verzija Delphi 2005 (Delphi 9, takođe Borland Developer Studio 3.0), uključio je Win32 i .NET razvoj u samo jednom IDE (engleski IDE - Integrated Development Environment), ponavljajući Borlandovu vezanost za Win32 programere. Delphi 2005 je uključio dizajniranje uz manipulaciju podacima direktno iz baze podataka. Takođe sadrži unapređeni IDE i dodao je "for ... in" iskaz (po uzoru na C#-ov foreach). Bio je kritikovan za svoje bagove kao i Delphi 8, tako je i Delphi 2005 imao probleme sa stabilnošću koji su bili samo delimično sređivani pomoću servis paketa. Sposobnost za kompajliranje prirodnih Windows aplikacija (*.exe) je vraćena u Delphi 2005 nakon što je bila izbačena iz Delphi 8. CLX podrška je odbačena od ove verzije pa na dalje.

Borland Delphi 2006

Krajem 2005. godine je objavljen Delphi 2006 (Delphi 10, Borland Developer Studio 4.0). Bio je kombinacija razvoja C# i Delphi.NET, Delphi Win32 i C++ u samo jednom IDE-u (engleski IDE - Integrated Development Environment). Bio je mnogo stabilniji od Delphija 8 i Delphija 2005, i bio je još više unapređen dodavanjem servis paketa i ispravki.

Turbo Delphi i C++

"Developer Tools Group" koji je pripadao Borlandovoj softverskoj korporaciji je 6. septembra 2006. godine objavilo verziju Borland Developer Studio, čime je vraćeno ime Turbo. Komplet Turbo je sadržavao Turbo Delphi za "Win32", Turbo Delphi za .NET, Turbo C++ i Turbo C#. Postojale su dve varijante svakog izdanja: Explorer verzija koju je moguće preuzeti besplatno i Profesional verzija čija je cena bila USD899 za nove korisnike i USD399 za update (ažuriranje), što je bilo manje od kompletnog Borland Delphija, koji je imao pristup hiljadama novih komponenti. Za razliku od ranijih Professional izdanja Delphija Explorer se mogao upotrebljavati za komercijalnu upotrebu.

Codegear Delphi 2007

Delphi 2007 (Delphi 11) prva verzija koju je razvio CodeGear, objavljena je 16. marta 2007. godine. "Win32" personality je prva ovjavljena, pre nego što je .NET personality Delphija 2007 baziranoj na ".NET Framework 2.0" objavljena, kao deo CodeGear BRA Studio 2007 produkta. Nove osobine su uključivale podršku za MSBuild i poboljšanja VCLa za Windows Vistu, ali C#Builder su izvačene iz ove verzije jer program nije prodat kao što je očeivano, jer je Visual Studio takođe nudio C#. Dizajner Windows formi za Delphi .NET je takođe izbačen 2007. godine, jer je baziran na delu .NET framework API, koji je Majkrosoft toliko drastično prommenio .NET 2.0 da bi ažuriranje IDEa bilo veliki podvig. Delphi 2007 je takođe predstavio "DBX4" kao novu verziju "dbExpress". Po prvi put Delphi je bilo moguće preuzeti putem interneta i aktivirati licencnim ključem, mogućnost omogućena novom "InstallAware" instalacionom tehnologijom. Internacionalizovana verzija Delphija 2007 se istovremeno isporučila na engleskom, francuskom, nemačkom i japanskom jeziku. BRA Stido 2007 (kodnog imena "Highlander"), koji uključuje .NET i C++Builder razvoj objavljena je 5. septembra 2007. godine.

Delphi Prism

Delphi Prism je razvio RemObjects Software i distribuirao Embarkadero kako bi zamenio Delphi .NET. Predstavlja kombinaciju RemObjektovog uglavnom Delphi kompatibilog .NET kompajlera (bez RTL ili VCL), verzije Majkrosoft Vizual Studio ljuske bez C# ili VB podrške, i pojedinih Embarkadero tehnologija kakva je "dbExpress". Prism je sposobna za cross-platform u meri u kojoj podržava Mono .NET biblioteke. Prism je odvojena linija produkta sa novim izdanjima; Embarkadero Delphi Prism XE2 je izbačena istovremeno kad i Delphi XE2

Godine Embarcadera (2008-...)

Embarcadero Delphi 2009

Delphi 2009 (Delphi 12, kodno ime "Tiburón"), je dodao mnogo novih osobina kao što je potpuno prerađen VCL i RTL za potpunu Unikod podršku, i dodatim generičkih i anonimnih metoda za Win32 prirodno razvijanje. Podrška za .NET razvijanje je izbačena iz mejnstrim Delphi IDEa počevši od ove verzije i snabdevena sa novom Delphi Prism.

Embarcadero Delphi 2010

Delphi 2010 (kodno ime "Weaver" Delphi 14, nije bilo verzije 13), je objavljen 25. avgusta 2009. godine i on je drugo Unikod izdanje Delphija. Uključuje novi kompajler run-time type information (RTTI) sistem, podršku za Windows 7 direkt 2D, touch screen i gestove, formater izvornog koda, vizuelni debager i opciju za staromodnu paletu komponenti u IDEu. Novi "RTTI" sistem pravi veće izvršne datoteke od prethodnih verzija.

Embarcadero Delphi XE

Delphi XE (Delphi 2011 kodno ime "Fulcrum"), je objavljen 30. avgusta 2010. godine sa Delphi podrškom za Amazon EC2 i Majkrosoft Azure.

Delphi Starter Edition

Embarcadero je, 27. januara 2011. godine najavio dostupnost novog "Starter" izdanja namenjenog nezavisnim programerima, studentima i mikro preduzećima za cenu manju od četvrtinme od sledeće najjeftinije verzije.

Embarcadero Delphi XE2

Embarcadero je, 1. septembra 2011. godine objavio BRA Studio XE2 (kodno ime "Pulsar") koji uključuje Delphi XE2, "C++Builder", Prism XE2 i "RadPHP XE2". Delphi XE2 podržava 64-bitni Windows (osim početničkog izdanja), dodatno dugo podržanoj 32-bitnoj verziji, sa vertikalnom kompatibilnošću. Aplikacije za 64-bitne platforme mogu biti kompajlirane, ali ne i testirane ili pokrenute, na 32-bitnim platformama. "XE2" IDE ne može da debaguje 64-bitne programe na Vindous 8 ili novije. Delphi XE2 je opremljen i sa VCLom, i alternativnom bibliotekom pod imenom "FireMonkey" koja podržava Windows, Mek OS X i Apple-ove Ajfon, Ajpod touch i Ajpad prenosne uređaje. "FireMonkey" i VCL nisu kompatibilni ili jedan ili drugi mogu da se odvojeno upotrebe, i starije VCL aplikacije ne mogu da koriste "Firemonkey" osim ako korisnički interfejs nije rekonstruisan novim "FireMonkey" formama i kontrolama.

Embarcadero Delphi XE3

Embarcadero je, 4. septembra 2012. godine, objavio BRA Studio XE3, koji ukljuluje Delphi XE3 i C++Builder. Delphi XE3 prirodno podržava i 32-bitna i 64-bitna izdanja Windowsa (uključujući Windows 8) i obezbeđuje podršku za MacOS X sa "Firemonkey" sa 2/FM² okvirom. iOS podrška je u početku odbačena XE3 izdanjem (sa namerom da podršku vrate odvojenim produktom - Mobile Studiom), aplikacije mogu da nastave sa usmeravanjem na tu platformu, razvijanjem sa Delphijem XE2.

Embarcadero Delphi XE4

Embarcadero je, 22. aprila 2013. godine, objavio BRA Studio XE4, koji uključuje Delphi XE4 i C++Builder. Delphi XE4 je prvo izdanje "FireMonkey" mobilne platforme, u glavnoj ulozi prikazanom cross-platform razvijanje mobilnih aplikacija za iOS Simulatore i iOS Uređaje. U ovoj verziji Embarcadero predstavlja dva nova kompajlera za Delphi mobilne aplikacije, Delphi Cross Compiler za iOS Simluatore i Delphi Cross Compiler za iOS uređaje. Ovi kompajleri se značajno razlikuju od Win64 desktop kompajlera jer oni ne podžavaju "COM", redno sklapanje CPU instrukcija, i šest starijih "string" tipova kao što je "PChar". Novi mobilni kompajleri unapređuju pojam eliminisanih ukazivača (pointers). Novi kompajleri zahtevaju eksplicitni stil organizovanih podataka i formu spoljašnjih APIova i biblioteka. Delphi XE4 "Run-Time Library" (RTL) je optimizovana za 0-bazirane, read-only (nepromenljivih) Unikod nizova, koji se ne mogu indeksirati za svrhu menjanja pojedinačnih karaktera.

Embarcadero Delphi XE5

Embarcadero je 12. septembra 2013. godine objavio BRA Studio XE5, koji uključuje Delphi XE5 i C++Builder. Dodata je podrška za Android (konkretno: ARM v7 uređaje koji pokreću "Gingerbread" (2.3.3-2.3.7), "Ice Cream Sandwich" (4.0.3-4.0.4) i "Jelly Bean" (4.1.x, 4.2.x, 4.3.x)) i iOS 7.

Embarcadero Delphi XE6

Embarcadero je 15. aprila 2014. godine objavio BRA Studio XE6 koji uključuje Delphi XE6 i C++Builder. Dozvoljava kreiranje prirodno kompajlovanih aplikacija za sve platforme, desktop, mobilne, i prenosne uređaje kakav je "Google Glass", sa jednom C++ ili Objektini Paskal (Delphi) kod bazom. BRA Studio XE6 ima podršku za Android 4.4 KitKat. Takođe je postalo moguće napraviti "FireMonkey" mobilne aplikacije za Android.

Embarcadero Delphi XE7

Embarcadero je 2. septembra 2014. godine objavio BRA Studio XE7 koji uključuje Delphi XE7 i C++Builder. Omogućuje Delphi/Objektni Paskal i C++ programerima da prošire postojeće Windows aplikacije i naprave aplikacije koje povezuju desktop i mobilne uređaje uz pomoć gadžeta, uslugama "cloud" i preduzetničkih podataka i API. Takođe omogućuje programerima da prošire Windows aplikacije koristeći wifi i bluetooth aplikaciono privezivanje i kreiranje zajedničkih korisničkih interfejs kodova preko više uređaja.

Embarcadero Delphi XE8

Embarcadero je 7. aprila 2015. godine objavio BRA Studio XE8 koji uključuje Delphi XE8 i C++Builder.

Embarcadero Delphi 10 Seattle

Embarcadero je 31. avgusta 2015. godine objavio BRA Studio 10 Seattle koji uključuje Delphi i C++Builder.

Embarcadero Delphi 10.1 Berlin

Embarcadero je 20. aprila 2016. objavio RAD Studio 10.1 Berlin koji uključuje Delphi i C++Builder. Oba generišu prirodni kod za Windows 32 i 64-bitne platforme, OSX, iOS i Android (ARM, MIPS i X86 procesore).

Izvor Wikipedia

Algoritmi, programi i programski jezici

Algoritam je konačan uređen niz precizno formulisanih pravila kojima se rešava jedan ili čitava klasa problema.

Programski jezik je skup sredstava i pravila predstavljanja algoritma u obliku pogodnom za izvršavanje na računaru.

Program je zapis algoritma na programskom jeziku.

Postupak pisanja programa se naziva programiranje.

Računari su idealni za rešavanje matematičkih problema jer ih odlikuje velika brzina i velika pouzdanost prilikom računanja. Ukoliko se precizno formulišu pravila za rešavanje nekog problema time je napravljen ili razvijen algoritam. Ukoliko se želi rešiti problem pomoću računara na osnovu datog algoritma se može napisati program u bilo kom programskom jeziku.

Postoji mnogo programskih jezika i oni su klasifikovani u: niže i više programske jezike.

Za sve vrste procesora postoje sopstveni programski jezik. Ti (niži programski) jezici se zovu mašinski jezici. Oni su međusobno veoma različiti od procesora do procesora.

Viši programski jezici: Basic, Pascal, C, C++, C#, Java, Prolog, SmallTalk, Modula 2, Fortran, LISP, ADA.

Podvrste (verzije) programskih jezika: ANSI Pascal, Turbo Pascal, FreePascal.

U poslednjih desetak godina smatra se da je programski jezik (ANSI) Pascal jedan od najlakših programskih jezika za učenje.

Objektno Orijentisano Programiranje

U OOP-u se teži pisanju delova koda koji su laki za održavanje i ponovno upotrebljivi (code reuse), a sa druge strane omogućavaju izvršavanje kompleksnih zadataka. Kompletna struktura objektno orjentisanih programa veoma se razlikuje od strukture programa napisanih u nekom proceduralnom jeziku i daje programu intuitivnu, prirodnu stukturu.

Televizor, ulica, drvo, kuća, knjiga su samo neki od objekata koje susrećemo u svakodnevnom životu. Ideja objektnog programiranja je da se taj model objekata iz realnog života prenese i na programiranje. Tako je u programiranju objekat svaki element koga treba predstaviti programu, podrazumevajući pod tim i „žive“ objekte odnosno ljude i životinje. Uopšte OOP i njegova analogija sa objektima i događajima iz svakodnevnog života, nam omogućava drugačiji pristup programiranju – nama lakše razumljivi i prirodniji način, kao i mogućnost razbijanja programa na manje celine, čime obezbeđujemo lakše upravljanje.

OOP principi su zasnovani na primeni koncepta crne kutije. Koncept crne kutije podrazumeva korišćenje nekog objekta, bez konkretnog znanja o načinu funkcionisanja tog objekta. Kao primer možemo navesti televizor. Svako od nas zna šta je i kako da ga koristi, ali se ne zamaramo time kako on radi. Takođe zamena televizora drugim modelom podrazumeva neke razlike između modela, ali suština i osnovna namena televizora ostaje ista, kao i standardi kako ga priključujemo na električnu struju, gde priključiti antentu itd.

Osnovni principi Objektno Orjentisanog Programiranja

Osnovni principi Objektno Orjentisanog Programiranju su:

  • Apstrakcija
  • Enkapsulacija
  • Modularanost
  • Polimorfizam
  • Nasleđivanje

Enkapsulacija i apstrakcija

Enkapsulacija i apstrakcija su pojmovi koji se međusobno nadopunjuju i teško ih je do kraja razdvojiti. Apstrakcija predstavlja proces zapažanja osobina i ponašanja objekata, a enkapsulacija se fokusira na implementaciji koja će dovesti do takvog ponašanja. Najprostije rečeno, na primeru televizora sa početka, apstrakcija bi bila gledanje televizora iz ugla korisnika – odnosno šta radi, a enkapsulacija bi bila konkretna implementacija – kako radi. Pri tome bitan faktor enkapsulacije je skrivanje unutrašnje strukture klase i prikazivanje korisnicima samo onog dela koji treba da vide.

Modularnost

Modularnost se odnosi na postupak razbijanja programa na manje delove koji mogu autonomno funkcionisati. Modularnost se primenjuje kako bi se omogućila višestruka upotreba softverskih komponenti, odnosno takozvana ponovna upotreba koda (code reuse).

Polimorfizam

U direktnoj vezi sa nasleđivanjem je i polimorfizam – verovatno jedno od najmoćnijih svojstava objektno orjentisanog programiranja. To je svojstvo da objekat izvršava operaciju na način svojstven izvedenoj klasi kojoj pripada, mada mu se pristupa kao objektu osnovne klase.

Nasleđivanje

Jedan od fundamentalnih aspekata OOP-a je nasleđivanje. Postoji više vrsta nasleđivanja – nasleđivanje implementacije i nasleđivanje interfejsa. Takođe zavisno od programskog jezika i njegove OOP implementacije nasleđivanja, može se podeliti na jednostruko ili višestruko. Klasa koja se nasleđuje naziva se baznom ili osnovnom klasom, a klasa koja je nasleđuje naziva se izvedenom klasom. Dakle, nasleđivanje je hijerarhijska organizacija klasa, gde jedna klasa nasleđuje drugu i zadržava kompletan sadržaj klase koju nasleđuje i taj sadržaj može proširiti ili redefinisati.

Programi zasnovani na prozorima

Osnovni principi programiranja pravljeni su još u vreme nastanka prvih računara. Zavisno od načina zadavanja komandi operativni sistemi mogu biti:

  • Komandni (DOS, UNIX)
  • Grafički (Windows–i)

Operativni sistem Windows donosi značajne novine, kao što su:

  • grafičko radno okruženje (korisnički interfejs),
  • paralelno izvršavanje više programa (multitasking)
  • mogućnost višekorisničkog rada u mreži.

Da bi u što većoj meri iskoristili nove mogućnosti operativnog sistema, programeri su prinuđeni da menjaju neke principe u postupku rešavanja zadataka pomoću računara.

Do pojave Windows-a komunikacija korisnika i programa bila je veoma složena. Svaki proizvođač programa je imao svoju ideju o tome kakav će interfejs ponuditi korisniku. Korisnik je bio taj koji se morao prilagođavati proizvođaču programa.

U modernim operativnim sistemima, kakav je i Windows, korisnički interfejs je unificiran na taj način što su u operativni sistem ugrađeni elementi koji omogućuju jednostavniju komunikaciju sa korisnikom. Svi elementi interfejsa su grafičke prirode i po izgledu upućuju na aktivnost koja se njima sprovodi.

Pri pisanju programa potrebno je iskoristiti već postojeća rešenja iz operativnog sistema. Korisniku je dovoljno da se upozna sa načinom rada i korišćenjem ovih elemenata na jednom programu. Rad sa svakim novim programom će biti sličan i korisnik će brže ovladati njegovom upotrebom.

Osnovna karakteristika programa pisanih za Windows okruženje je da se svaki program izvršava u posebnom prozoru.

U jednom trenutku može biti pokrenut veći broj programa, a samo jedan je aktivan program (aktivan prozor prima komande sa ulaznih uređaja: miš, tastatura...). Svaki od pokrenutih programa ima svoj prozor u kom se izvršava i može da koristi resurse operativnog sistema.

Elementi grafičke korisničke površine

Sa obzirom na izgled i namenu svi prozori koji se pojavljuju pri radu sa korisničkim programima mogu se klasifikovati u nekoliko grupa:

  • uvodni prozor operativnog sistema (Desktop) ili radna površina,
  • prozor foldera,
  • prozor dokumenta i
  • prozor za dijalog.

Uvodni prozor se pojavljuje pri startovanju operativnog sistema Windows i sastoji se od određenog broja sličica koje se nazivaju ikonice.

Prozor foldera je u vezi sa hijerarhijskom organizacijom podataka u operativnom sistemu Windows. U prozoru foldera mogu se naći drugi folderi (podfolderi) ukoliko postoje i datoteke kao organizovani skupovi informacija. Primer: My Documents.

Prozor aplikacije predstavlja površinu na kojoj se izvršava korisnički program (aplikacija). Prozvod koji formira korisnički program naziva se dokument. Primer: MS Word, Paint, MS PowerPoint,...

Prozori za dijalog su različiti zavisno od namene. Najčešće se pojavljuju u obliku prozora za upozorenje ili u obliku prozora za davanje dodatnih informacija operativnom sistemu za dalji rad. Mogu biti prosti ili složeni. Složeni dijalog prozori sadrže više TAB-ova (strana). Primer: Display Properties.

Veličina prozora za dijalog i radne površine ne može se menjati – unapred je definisana.

Programi rukovođeni događajima

Još jedna karakteristika operativnog sistema Windows je da je osetljiv na događaje, prepoznaje ih i svojim ugrađenim mehanizmima reaguje na njih. Kad Windows “oseti” određeni događaj, on pokušava da "ukaže" aktivnom programu o kom događaju je reč, šaljući odgovarajuću poruku. Aktivni program treba da interpretira tu poruku, prepozna događaj na koji se ta poruka odnosi i zatim da reaguje u skladu s tim.

Programski paket Delphi omogućava pisanje programa koji se izvršavaju samo ukoliko se određeni događaj desi. Događaj može da se desi u bilo kom trenutku u toku rada programa. Bez pomoći Delphi-ja ili nekog sličnog programskog jezika korisnici ne bi bili u stanju da rade sa događajima koji se odigravaju u proizvoljnom trenutku.

Programi rukovođeni događajima omogućavaju korisnicima da izvršavaju zadatke po bilo kom redosledu. Kod programa rukovođenih događajima jedna akcija korisnika može da pokrene jedan događaj ili niz događaja. U svetu programiranja i računara događaji mogu biti veoma različiti: pritisak tastera na tastaturi, pomeranje miša, klik mišem, izbor komande iz linije menija, pomeranje prozora od strane korisnika, dostignut vremenski trenutak programiran na internom satu računara...

U Delphi-ju postoje dva osnovna tipa događaja:

  • događaji koje je prouzrokovao korisnik i
  • događaji koje je prouzrokovao operativni sistem.

Pravljenje Windows programa olakšala je pojava objektno orijentisanog programiranja (OOP).

Osnovni pojmovi objektno orjentisanog programiranja su:

  • komponente
  • objekti
  • metode
  • svojstva
  • događaji

Komponente su elementi ugrađeni u Delphi-ju za višestruku upotrebu i koriste se za formiranje objekata.

Objekat je osnovni element Delphi-ja koji ima odgovarajuća svojstva koja određuju njegove karakteristike, metode koje definišu njegovo ponašanje i mogućnost prepoznavanja događaja na koje mogu reagovati.

Metod je programski kod pridružen objektu, koji određuje kako će objekat manipulisati sa informacijama i kako će reagovati na događaje.

Svojstva su karakteristike objekta kao što su, npr: veličina, položaj, boja ili font teksta.

Objektno orjentisano programiranje je zasnovano na tri osnovna principa:

  • Enkapsulacija (Encapsulation)
  • Nasleđivanje (Inheritance)
  • Polimorfizam (Polymorphism)

Enkapsulacija znači da su sve informacije o objektu (svojstva) i procesima nad njim (metodi) sadržani u definiciji objekta. Primer: objekt - računarski sistem.

Nasleđivanje znači da se jedan objekat može opisati na osnovu opisa drugog objekta. Primer: opis prenosnog računara.

Polimorfizam znači da mnogi objekti mogu imati isti metod, a odgovarajuća akcija se preuzima iz objekta koji poziva metod. Primer: tekst se može prikazati na ekranu ili štampaču.

Problemi koje rešava DELPHI

Delphi je programski paket namenjen kreiranju Windows aplikacija (programa) za personalne računare. Krajnji proizvod Delphi-ja je izvršni program (EXE), koji rešava zadatke za koje je kreiran u okruženju operativnog sistema Windows.

Programski jezik koji koristi Delphi je modernizovana verzija Pascala pod nazivom objekt Pascal. Prva verzija Delphi-ja je nastala 1995. godine, kao direktna posledica nastanka Windows-a 95.

Tipovi podataka, promenljive, deklaracije

Imena - identifikatori

Imena ili identifikatori se koriste za označavanje osnovnih objekata jezika: promenjivih, konstanti, tipova, funkcija i procedura. Ime u Pascal-u može biti sastavljeno samo od brojeva i slova.

Prvi znak imena mora biti slovo.

Za ime se ne sme upotrebljavati znak za prazno mesto. Ne smeju da se upotrebljavaju rezervisane reči, ni standardna imena koja se koriste za označavanje standardnih funkcija i za označavanje standardnih tipova podataka (integer, real, string...).

Imena u Pascal-u nisu osetljiva na kombinacije malih i velikih slova (Gim je isto kao i giM).

Deklaracija promenljivih i konstanti se izvršava na samom početku procedure (između procedure i begin-a). Upotrebljavaju se ključne reči var i const.

Tipovi podataka

U sledećoj tabeli su navedeni numerički tipovi podataka, mesto u Bajtima koje zauzimaju podaci kao i opsezi vrednosti koje pokrivaju dati podaci:

Tip podatakaDužina u BajtovimaOpseg vrednosti
ShortInt1-128 / 127
Byte10 / 255
Char10 / 255
WideChar20 / 65.535
SmallInt2-32.768 / 32.767
Word20 / 65.535
LongInt4-2.147.483.648 / 2.147.483.647
Int648-9.223.372.036.854.775.808 / 9.223.372.036.854.775.807
Integer4-2.147.483.648 / 2.147.483.647
Cardinal40 / 2.147.483.647
Single41.5 E-38 / 3.4 E38
Double85.0 E-324 / 1.7 E308
Real85.0 E-324 / 1.7 E308
Extended103.4 E-4932 / 1.1 E4932
Comp8-9.223.372.036.854.775.808 / 9.223.372.036.854.775.807
Currency8-9.223.372.036.854.775.808 / 9.223.372.036.854.775.807
Boolean1True ili False
Variant16Varies

U sledećoj tabeli su prikazani tekstualni tipovi podataka:

Tip podatkaOpseg
Charjedan karakter, mali alfabet
WideCharjedan karakter, međunarodni alfabet
AnsiCharjedan karakter, mali alfabet
ShortStringstring do 255 karaktera
Stringstring Char-a bilo koje dužine
AnsiStringstring AnsiChar-a bilo koje dužine
WideStringstring WideChar-a bilo koje dužine

Rezervisane reči

U Pascal-u su sledeće reči rezervisane:

Rezervisane reči
andarraybegin
caseconstdiv
downtodoelse
endfilefor
functiongotoif
inlabelmod
nilnotof
orprocedureprogram
recordrepeatset
thentotype
untilvarwhile
with--

Standardne funkcije

Neke od standardnih funkcija u Pascal-u su sledeće:

ImeFunkcija
+sabiranje
-oduzimanje
*množenje
/deljenje
absabsolutna vrednost broja
divcelobrojno deljenje
moddeljenje s ostatkom
sqrkvadrat
sqrtkvadratni koren
sinsinus
coskosinus
tantangens
truncceli deo razlomka (integer)
intceli deo razlomka (real)
frac decimalni deo razlomka (real)

Klase

U izradi.

Izrazi

U izradi.

Naredbe

U izradi.

Grananja

Upotrebljavaju se dve vrste grananja:

if ... then ...

if then

Logički iskaz između ključnih reči if i then za rezultat ima vrednosti tačno (true) ili netačno (false).

Ukoliko je rezultat iskaza tačan izvršava se Naredba 1, ukoliko je rezultat iskaza netačan, ne dešava se ništa.


Na primer:

if a = b then
  d := 5;

if c > -3 then
  gtd := 23;

if not((b*38-25*c) <> 15) then
  abc := -35;

if ((a > 5) and (b < -9)) then
  pera := 332;

Obratiti pažnju da tačka-zarez dolazi na sam kraj naredbe.


if ... then ... else ...

if then else

Ključna reč else kao i Naredba 2 se upotrebljava samo po potrebi, nije obavezna.

Ukoliko je rezultat iskaza tačan izvršava se Naredba 1, ukoliko je rezultat oskaza netačan, izvršava se Naredba 2.


Na primer:

if a = b then
  d := 5
else
  d := -5;

if c > -3 then
  gtd := 23
else
  dfg := -5;

if not((b*38-25*c) <> 15) then
  abc := -35
else
  abc := 45;

if ((a > 5) and (b < -9)) then
  pera := 332
else
  pera := 31;


Obratiti pažnju da tačka-zarez dolazi na sam kraj naredbe.

case ... of ... end

case

Naredba case se završava ključnom rečju end. između ključnih reči case i of se nalazi promenljiva čije se stanje proverava.

Između ključnih reči of i else su nabrojane vrednosti promenljive za koje se nakon dvotačke zadaju i naredbe koje će se odvijati za dati slučaj stanja promenljive.

Između ključnih reči else i end se nalazi naredba koja če se izvršiti ukoliko stanje zadate promenljive nije opisano pre ključne reči else.

Upotreba ključne reči else nije obavezna.


Na primer:

case a of
  1 : feg := 5;
  2 : feg := 45;
  3 : feg := 323;
else
  feg := 0;
end;


Obratiti pažnju da tačka-zarez dolazi na sam kraj svih naredbi.

Petlje

Postoje tri vrste petlji:

for ...
while ... do ...
repeat ... until ...

Funkcije i procedure

U izradi.

Nizovi i datoteke

U izradi.