You are on page 1of 22

1

Uvod u programiranje i programske jezike


Ciljevi lekcije
U prvom delu lekcije se daje uvod u programiranje, paradigme programiranja i osnovne elemente objektno
orijentisane paradigme sa sledeim ciljevima:

Uvod u programiranje i paradigme.


Upoznavanje sa objektno orijentisanom paradigmom.
Upoznavanje pojma klase i objekta.
Upoznavanje sa nainima za opis klasa, kreiranje objekata i pristup lanovima klasa.
Upoznavanje sa pojmom nasledjivanja i izvodjenja.
Upoznavanje sa pojmom i namenom konstruktora i destruktora.

U drugom delu lekcije se opisuje razvojno okruenje MS Visual Studio 2005 u kome e svi primeri u okviru
kursa biti ilustrovani. Cilj ovog dela je:

Upoznavanje sa osnovnom idejom okruenja za brzi razvoj aplikacija (RAD) okruenja.


Upoznavanje sa nainom startovanja razvojnog okruenja MS Visual Studio 2005.
Upoznavanje sa nainom kreiranja konzolne aplikacije iz razvojnog okruenja MS Visual Studio 2005.

Neophodna predznanja
Da bi se uspeno pratila ova lekcija poeljno je da polaznici kursa budu upoznati sa nekim vidom programiranja (najee
proceduralno programiranje u bilo kom viem programskom jeziku npr. Pascal, C, Basic, itd.). Potrebno je da polaznici
budu upoznati sa osnovnim pojmovima koji se sreu kod uenja programiranja i nekog programskog jezika npr.:

naredba,
linija koda,
slubena re,
promenljiva,
konstanta,
dodela,
potprogram (funkcija),
povratna vrednost,
...

Za jezik se moe rei da predstavlja jednu od najveih tekovina ljudske civilizacije. Prirodni jezici koji su u upotrebi u
svakodnevnoj komunikaciji ljudi, nastali su iz potrebe za meusobnim sporazumevanjem u obavljanju razliitih
aktivnosti. Bogatstvo renika jednog prirodnog jezika zavisi od starosti i kulture naroda koji ga koristi, ali isto tako i od
delatnosti kojima se taj narod bavi.
Pored prirodnih postoje i vetaki jezici koji su nastali kao unapred definisan skup pravila za sporazumevanje u odreenoj
oblasti. Najbolji primer za to su matematika i raunarske nauke gde su u irokoj upotrebi skupovi vetakih entiteta
poznati po imenu formalni jezici. Formalni jezici se, kao i prirodni, odlikuju skupovima karaktera, semantikim i
gramatikim pravilima. Posebnu grupu vetakih jezika ine programski jezici. Nastaju sa razvojem raunara iz potrebe

2
da se pojednostavi pisanje programa kojima se upravlja tokom obrade podataka na njima. Zbog toga se moe rei da su
programski jezici sredstvo komunikacije izmeu ljudi i raunara. Do danas je razvijen veliki broj programskih jezika i
njihov broj prelazi 4000. U isto vreme broj aktivnih prirodnih (ljudskih) jezika se kree oko brojke od pet hiljada.
Programski jezici se mogu klasifikovati u vie kategorija po vie razliitih kriterijuma. Jedan od esto korienih
kriterijuma je i zavisnost od maine na kojoj se izvrava. Tako postoje: mainski zavisni i mainski nezavisni jezici. U
mainski zavisne jezike svrstavaju se jezici koji su u direktnoj zavisnosti sa procesorom na kome se program izvrava. To
su pre svega mainski jezik i maini orijentisani asemblerski i makro asemblerski jezici. Oni ine grupu jezika niskog
nivoa. Grupu mainski nezavisnih jezika ine programski jezici visokog nivoa ili proceduri orijentisani programski jezici
kao i programski jezici veoma visokog nivoa, aplikativni ili problemu orijentisani programski jezici.
Sa razvojem programskih jezika uporedo je iao i razvoj programskih paradigmi i stilova programiranja pa tako imamo
sledee vrste programiranja: modularno, strukturno, rekurzivno, objektno, logiko, paralelno, simboliko, itd.
Najznaajnije programske paradigme medju programskim jezicima vieg nivoa su proceduralna i objektno orijentisana.
Tradicionalno proceduralno programiranje se sastoji od niza funkcija i njihovih poziva dok se objektno orijentisano bazira
na objektima i njihovoj medjusobnoj komunikaciji. Kako se svaki realan sistem moe opisati kao skup objekata koji se
nalaze u nekoj interakciji sasvim je prirodno da objektno orijentisana paradigma bolje i skladnije oslikava realni svet i
omoguava loginije projektovanje i realizaciju programa. Normalno, jedan problem se moe reiti i pomou
tradicionalnog proceduralnog programiranja i pomou objektnog programiranja. Razlike su samo u naporu koji se ulae u
razvoj a kasnije i odravanje programa. Uopteno reeno objektno orijentisana paradigma donosi novine koje je ine
osnovom velikog broja savremenih programskih jezika. Takav jezik je i C#.NET (nadalje u tekstu e biti pisano samo C#)
koji e biti predmet ovog kursa. Jo jedna znaajna karakterisitika programskog jezika C# je i mogunost razvijanja
razliitih vrsta aplikacija: konzolnih, Windows, Web. Zahvaljujui tome, sintaksom koja je nastala na bazi sintaksi iroko
rasprostranjenih jezika C++ i Java, kao i Microsoft-ovom razvojnom okruenju izuzetno jednostavnom za korienje, C#
danas spada u kategoriju najpopularnijih programskih jezika.
Napomena
C# je programski jezik koji nam omoguuje pisanje kako konzolnih tako i Windows aplikacija, pa ak i aplikacija za Web.
U prvom delu koji se odnosi na osnove programskog jezika C# primeri e se odnositi na delove koda neke konzolne
aplikacije dok e se u drugom delu detaljnije objanjavati razvoj Windows aplikacija te e i primeri biti sa odgovarajuim
grafikim korisnikim interfejsom.

Objektno orijentisana paradigma


Bilo koji sistem se sastoji iz objekata koji meusobno komuniciraju. Svaki objekat ima neke karakteristike
koje ga ine posebnim i razlikuju od drugih objekata. Veoma esto neki objekti imaju iste vrste karakteristika ali
razliite vrednosti. Uzmimo, na primer, lopte za primere takvih objekata. Sve lopte imaju karakteristiku koja se
zove boja ije vrednosti mogu biti razliite od objekta do objekta. Tako vrednosti asocirane uz karakteristiku
koja se zove boja mogu biti crvena, zelena, plava, itd. Objekat pored karakteristika koje se nazivaju i
atributima ima u optem sluaju i sposobnost nekakvog funkcionisanja tj. objekat se karakterie i skupom
funkcionalnosti koje se zadaju odgovarajuim funkcijma lanicama tj. metodama. Tako na primer, neke lopte
odskau kada padnu na tlo vie, a neke manje. Neke lopte mogu da plivaju (gumene), a neke ne mogu (lopte
napravljene od olova tj. metalne kugle ).

Programi se piu sa ciljem da se rei neki problem tako to se svaki problem vezuje za neki sistem koji se opisuje
(modeluje) na specifian nain. Stoga je najprirodniji nain za reavanje problema odgovarajuim programom, korienje

3
objekata. Objekti predstavljaju osnovu objektno orijentisane (OO) paradigme. OO paradigma opisuje tj. modeluje sistem
na prirodan nain. Ako se ovako posmatraju stvari onda se grubo moe rei da se programiranje korienjem OO
paradigme sastoji od:

Identifikovanja objekata.

Identifikovanja atributa objekata kao i njihovih vrednosti.

Identifikovanje funkcionalnosti objekata.

Klasifikacija objekata prema atributima i funkcionalnostima u kategorije tj. klase. Rezultat klasifikacije je
definicija klasa sa svim potrebnim svojstvima (atributima) i funkcionalnostima koje se nazivaju jo i metode.

Identifikovanje komunikacije izmeu objekata (koji objekti komuniciraju, kada i na koji nain, tj. koje poruke
razmenjuju.).

Generisanje klasa.

Generisanje objekata i njihova komunikacija.

Unitavanje objekata.

Pitanja
1) ta su atributi objekta?
2) ta su metode?
3) ime se karakterie svaki objekat?
4) Koje su aktivnosti u programiranju primenom OO paradigme?

Klase i objekti
Klase su kao to smo rekli opisi koji definiu kako e se generisati objekti i koje osobine i funkcionalnosti ti
objekti poseduju. Na primer, elimo da opiemo jednu kolu kao sistem. kolu ine uenici i profesori. Svaki
uenik se moe okarakterisati velikim brojem osobina kao to su: ime, prezime, datum rodjenja, mesto rodjenja,
itd. Takodje se i svaki profesor moe okarakterisati osobinama kao to su ime, prezime, datum rodjenja, mesto
rodjenja. Da li to znai da se uenici i profesori mogu posmatrati kao isti objekti u sistemu koji se zove kola?
Oigledno ne, poto i uenici i profesori imaju pored pobrojanih i neke specifine osobine. Tako uenik kao
osobinu ima i razred koji pohadja, predmete i odgovarajue ocene iz tih predmeta, itd. dok profesori imaju
predmete koje dre, nivo kolske spreme, datum zaposlenja, itd. Oigledno je da u modelu kole imamo dve
osnovne klase: klasu Uenik i klasu Profesor. Instance ovih klasa tj. objekti su konkretni uenici i profesori
kole.
Znai moe se rei da klase predstavljaju opise tj. ablone za opis zajednikih karakteristika grupe objekata.
Klasom se vri generalizacija grupe objekata tj. zanemaruju se karakteristike koje nisu jedinstvene za grupu
objekata posmatranih u jednom kontekstu (na primer u kontekstu jedne kole nije bitno da li neki uenik ima

plave ili crne oi ili pak da li neki uenik ima tetku u Americi). Klasa treba da sadri samo one atribute i metode
koji su bitni za sve objekte koje modeluje klasa u nekom kontekstu. Sve druge specifinosti objekata se
zanemaruju i ne ulaze u opis klase.
Sa druge strane ako posmatramo neki objekat on ima svoje karakteristike tj. atribute i ispoljava neko ponaanje
opisano metodama. Za druge objekte koji komuniciraju sa nekim objektom nije bitno kako objekat realizuje
neke funkcionalnosti ve samo koje funkcionalnosti on poseduje.
Razmotrimo klasu Automobil. On ima kao atribute izmedju ostalog: boju, broj vrata, duinu, irinu, pogonsko
gorivo (benzin, dizel, gas), marku, godinu proizvodnje, predjenu kilometrau, itd. U kontekstu vonje
automobila interesantne su nam funkcije koje nam omoguavaju pokretanje motora vozila (recimo pomou
kljua ili pak kartice ili pak samo pritiskom na dugme), pokretanje vozila unapred, pokretanje vozila unazad,
poveanje brzine, smanjenje brzine, zaustavljanje vozila i zaustavljanje rada motora. Sve ovo nam je potrebno
da bi vozili neki automobil. Toliki ljudi poznaju ove funkcije automobila a veoma mali broj ljudi zna kako
zapravo funkcionie motor sa unutranjim sagorevanjem !!! Ali, da i im je to uopte potrebno sa stanovita
vonje automobila? Zaista nije! Znai kada opisujemo funkcionalnosti objekata neke grupe objekata modelirane
nekom klasom realizacija samih funkcionalnosti e biti vana samo samoj klasi ali ne i drugim objektima koji
koriste objekte te klase. Jednom reju, jedna od postavki objektno orijentisane paradigme je i sakrivanje detalja
koji nisu bitni za korisnike objekata. Da li je to fer? Jeste, jer delovima motora neka se bave konstruktori a mene
interesuje samo kako da upravljam mojim automobilom! Ako nastavimo u ovom pravcu doi emo do sledeeg
pitanja: da li je bitno da li automobil koristi benzin ili gas ako automobil posmatram smao kao sredstvo koje
treba da me preveze od mesta A do mesta B a cena me ne interesuje? Oigledno da ne jer u oba sluaja se
automobil koristi na isti nain.
Iz ove prie se moe zakljuiti da je pri definisanju klase od mnotva karakteristika objekata koji se
modeliraju klasom potrebno izdvojiti samo one atribute i metode koji su bitni za kontekst u kome se posmatraju
dati objekti. Isto tako, sve one koji koriste neki objekat potrebno je osloboditi poznavanja unutranjih detalja
klase (objekta) koji mu nita ne znae u kontekstu komunikacije sa objektom tj. korienja datog objekta.
Za razliku od proceduralnog programiranja gde su podaci bili razdvojeni od procedura za njihovu obradu u
objektno orijentisanoj paradigmi se kroz pojam klase vri objedinjavanje podataka i operacija koje mogu da se
vre nad njima. Ko moe da pristupi kom podatku klase odnosno kojoj metodi klase zavisi od toga kako su im
zadata prava pristupa odnosno kakav im je modifikator pristupa. U programskom jeziku C# postoje sledei
modifikatori pristupa:

private
public
protected
protected internal
internal

Ako niko spolja ne treba da pristupi lanu klase onda se taj lan proglaava privatnim (private). Ako pak lan
klase treba da bude dostupan svima onda se on proglaava javnim (public). Zatieni (protected) lan je
dostupan samo unutar klase ili unutar izvedenih klasa koje su izvedene iz date klase (o pojmu izvedenih klasa e
biti vie rei u narednim lekcijama). Protected internal lan je dostupan samo unutar klase, unutar izvedenih
klasa koje su izvedene iz date klase ili klasa u istom programu. Internal lan je dostupan samo unutar klase ili
klasa u istom programu. Kako je pravo pristupa izuzetno bitno to se na poetku deklaracije svakog lana klase

navodi pravo pristupa. Ako se ono izostavi podrazumeva se da je privatno. Prava pristupa e kasnije opet biti
razmatrana sa odgovarajuim primerima.
Pitanja
1) ta su klase?
2) ta su objekti?
3) Nabrojati modifikatore pristupa u programskom jeziku C#.
4) ta vai za privatne lanove klase?
5) ta vai za javne lanove klase?

Nasledjivanje
Veoma esto se za dva programa moe rei da su veoma slina jer modeluju sline sisteme koji imaju iste
mnoge karakteristike ali imaju i neke specifinosti. Ako je nivo slinosti velik a nivo specifinosti mali
postavlja se pitanje da li emo razvijati novu aplikaciju "od nule" ili emo pokuati da iskoristimo postojeu.
Ako nam je kriterijum efikasnost tj. vreme onda emo sigurno izabrati ovaj drugi pristup. Ako uporedimo
objekte koji se sreu u ovim aplikacijama primetiemo da je veliki broj objekata veoma slian.
Objektno orijentisana paradigma uvodi pojam nasledjivanja tj. izvodjenja koji predstavlja mogunost da se
jedna klasa definie na osnovu neke druge klase pri emu e ta nova klasa da ima sve osobine koje ima i
postojea klasa, neke osobine e biti promenjene a neke nove e biti dodate. To konkretno znai da ne moramo
da prepisujemo postojeu klasu (poznati "copy-paste" pristup koji se esto koristi u proceduralnom
programranju i predstavlja izvor mnogih greaka) ve samo da navedemo od koje klase polazimo tj. koja je
osnovna ili roditeljska klasa i da modifikujemo ili dodamo neke lanice klase.
Primer
Posmatrajmo klasu Profesor. U jednoj koli postoje i razredne stareine. Oni su takodje profesori ali imaju i
dodatnu funkciju. Znai, moemo da definiemo klasu RazredniStaresina koja e biti izvedena iz klase
Profesor. Dodati lan klase RazredniStaresina je na primer odeljenje kome je dati profesor razredni stareina.
Klasa RazredniStaresina e imati sve one lanove koje ima i klasa Profesor. Ovo je trivijalan primer koji treba
samo da ilustruje koncept izvodjenja ili nasledjivanja. Kasnije e biti dato vie detalja.
Pitanja
1) ta je nasledjivanje?
2) ta je izvodjenje?

Definicija klase u programskom jeziku C#


Klasa se u programskom jeziku C# (nadalje neemo naglaavati da se radi o programskom jeziku C# jer e se nadalje sve
odnositi na ovaj programski jezik) definie na dva naina zavisno od toga da li je osnovna klasa ili klasa koja je izvedena
iz jedne ili vie drugih klasa. Osnovna klasa se definie na sledei nain:

class NazivKlase
{
/*
* telo klase sa svim potrebnim svojstvima,
* metodima i dogaajima
*/
}

Kreiranje objekata
Objekti (instance klasa) se kreiraju pomou operatora new kao u sledeem primeru.
Pravougaonik alfa = new Pravougaonik();

Ovom linijom koda se promenljiva (esto se koristi i termin varijabla) alfa deklarie kao promenljiva tipa Pravougaonik a
ujedno se i kreira objekat klase Pravougaonik i dodeljuje toj promenljivoj. Isti efekat se moe postii i na sledei nain
Pravougaonik alfa;
alfa = new Pravougaonik();

tj. razdvajanjem deklaracije od kreiranja objekta.

Pitanja
1) ta je instanca klase?
2) Kako se kreira objekat klase?

Pristup lanovima klase


lanovi klase su podaci lanovi (atributi) i funkcije lanice (metode). Kada se kreira jedan objekat neke klase pristupanje
njegovim lanovima vri se primenom operatora taka tj.
pristupanje podacima lanovima
imeObjektaKlase.ImeAtributa
pristupanje funkcijama lanicama
imeObjektaKlase.NazivFunkcije(stvarni argumenti)

Primer
Pravougaonik prav1 = new Pravougaonik(2.5, 3.0);
System.Console.WriteLine("Povrsina je " + prav1.Povrsina());
U prvoj liniji je kreiran objekat prav1 klase Pravougaonik a zatim je u drugoj liniji na standardni izlaz
(System.Console.WriteLine) ispisan tekst Povrsina je i povrina objekta prav1 koja se dobija pozivom

njegove metode Povrsina().


Podsetimo se da je neophodno deklarisati metodu Povrsina() kao javnu da bi moglo da joj se
pristupi!

Napomena
Moe se primetiti da u prethodnom primeru konstruktor klase Pravougaonik ima dva argumenta.
Uoimo da System.Console.WriteLine

takoe predstavlja poziv metode!

Pitanja
1) ta su lanovi klase?
2) Kako se pristupa lanovima klase?

Konstruktori
Konstruktori su funkcije koje karakterie: isto ime kao i ime klase, nemaju povratnu vrednost. Sve ostale karakteristike
koje vae za bilo koju funkciju vae i za konstruktore. Svaki put kada se kreira objekat neke klase zapravo se poziva
konstruktor te klase. Veoma esto se u konstruktorima vri inicijalizacija podataka lanova klase.
Konstruktori mogu biti bez argumenata (tada se zovu podrazumevani konstruktori ili default
konstruktori) ili sa argumentima. Jasno je da moe postojati samo jedan podrazumevani
konstruktor i vie konstruktora sa parametrima. Ako ne definiemo podrazumevani konstruktor
sam sistem e ga kreirati i telo konstruktora e biti prazno.

Znai, svaki put kada se kreira novi objekat neki konstruktor se poziva!
Primer
Definiimo za klasu Pravougaonik podrazumevani konstruktor koji e da postavlja vrednosti atributa duzina i
sirina na nulu i konstruktor koji ima dva parametra kojima se postavljaju poetne vrednosti parametara duzina i
sirina.

8
public class Pravougaonik
{
private float duzina;
private float sirina;
public Pravougaonik() // podrazumevani konstruktor
{
duzina = 0;
sirina = 0;
}
// konstruktor sa parametrima
public Pravougaonik( float duz, float sir)
{
duzina = duz;
sirina = sir;
}

Pitanja
1) ta je konstruktor?
2) ta je podrazumevani konstruktor?
3) Koliko konstruktora sa argumentima moe imati jedna klasa?

Destruktori
Konstruktori se pozivaju svaki put kada se kreira neki objekat. Pri unitavanju objekata pozivaju se destruktori pre samog
unitavanja objekta. Destruktori su funkcije koje imaju isto ime kao i ime klase tj. ime konstruktora sa dodatkom znaka ~
(tilda) kao prvog simbola imena. Za razliku od konstruktora destruktori nemaju definisan kvalifikator pristupa public.
Takodje nemaju ni povratnu vrednost kao ni naredbu return u telu. Destruktori takodje nemaju ni parametre.
~Pravougaonik()
{
}

Pitanja

//

neki

kod

1) ta je destruktor?
2) Da li destruktori imaju definisan kvalifikator pristupa?
3) Da li destruktori imaju povratnu vrednsot?
4) Da li destruktori mogu imati parametre?

Razvojno okruenje MS Visual Studio 2005


Podrazumeva se da e se za razvoj aplikacija odnosno demonstraciju primera koji su sastavni deo ovog kursa koristiti
integrisano okruenje VisualStudio verzija 2005 odnosno programski jezik C#.NET 2005 (Mogue je koristiti i besplatnu
verziju tkz C#.NET Express Edition). Stoga je neophodno upoznati se sa ovim okruenjem koje spada u kategoriju
okruenja za brzi razvoj aplikacija ili RAD (Rapid application development) okruenja. Mnogi koncepti i osobine koje e
biti pokazane u okviru kursa vae i u starijim verzijama MS Visual Studia odnosno u novijem okruenju MS VisualStudio
2008.

Napomena
Microsoft Express edition softverski proizvodi (VisualStudio, C#, VB, C++, ...) se mogu besplatno preuzeti i
besplatno koristiti i za potrebe edukacije.
Najnovije verzije sa oznakom 2008 se mogu preuzeti sa sajta http://www.microsoft.com/express/download/
dok se verzija 2005 i prethodne verzije mogu preuzeti sa sajta http://msdn.microsoft.com/enus/vstudio/cc952313.aspx

RAD i razvojna okruenja


Stalna potreba za skraivanjem vremena razvoja softvera dovela je do pojave integrisanih okruenja za razvoj
aplikacija (IDE). Ova okruenja su objedinjavala sve alate potrebne za razvoj aplikacija tj. editor, kompajler,
linker, debager, itd. Pojavom Windowsa i windows programiranja i razvojem objektno orijentisane paradigme i
na njoj zasnovanih objektno orijentisanih programskih jezika doveli su do pojave novih okruenja koja pruaju
mogunost brzog razvoja aplikacija (Rapid Application Development). Razvoju ovih okruenja pogodovao je i
novi pristup u razvoju aplikacija. Aplikacija se posmatra kao interfejs, sastavljen od vie formi na kojima se
nalaze odgovarajue kontrole, preko koga korisnik komunicira sa aplikacijom. Korisnik pokree aplikaciju koja
oekuje akcije korisnika i kada ih prepozna pokuava da odgovori na njih tako to izvrava neku obradu. Akcije
korisnika se nazivaju dogadjajima (engl. event). Dogadjaji mogu biti ili izazvani pritiskom odgovarajuih
tastera ili kombinacije tastera kao to su Enter, Tab, Alt + neki karakter, itd. ili pak pomou mia kao na primer
klik na levo dugme mia, klik na desno dugme mia, prelazak pointera mia preko neke kontrole itd.
Programiranje se zapravo svodi na pisanje koda koji treba da se izvri kao odgovor aplikacije na dogadjaje.
Stoga se ovaj nain progamiranja naziva i programiranje vodjeno dogadjajima (event driven programming).
Za svaki dogadjaj se pie odgovarajua funkcija koja se izvrava po aktiviranju dogadjaja. Razvoj neke
aplikacije se zapravo svodi na dve faze:

10

fazu kreiranja interfejsa i


fazu pisanja koda.

S druge strane sve Windows aplikacije po svom izgledu dosta lie jdna na drugu jer koriste sline elemente tj.
kontrole. Zato RAD okruenja nude gotove klase za pojedine elemente interfejsa ili pak sloenije esto
koriene elemente (npr. Dijalog za otvaranje fajla ili pak dijalog za izbor boje). Sva RAD okruenja grubo
reeno lie po skupinama funkcionalnosti koje nude (npr. razvojno okruenje Delphi ili pak Visual Studio). Cilj
je omoguiti to jednostavnije izvravanje i faze kreiranja interfejsa aplikacije i faze kodiranja. Tako, sva RAD
okruenja nude Toolbox sa velikim brojem kontrola koje predstavljaju elemente interfejsa standardne kod
Windows aplikacija. Zatim tu se nalazi i centralni deo u kome se u modu za dizajn kreira vizuelni izgled
interfejsa ili se pak prikazuje odgovarajui kod. Za pregled svih elemenata projekta postoji odgovarajui
explorer. Za pregled osobina klasa tj. objekata klasa postoji prozor sa svim osobinama i njihovim vrednostima i
dogadjajima koje moe da prepozna odgovarajua kontrola.
Elementi MS Visual Studio 2005
Poto emo koristiti RAD okruenje VisualStudio 2005 kompanije Microsoft prikazaemo detaljnije njegove
elemente. Okruenje je prikazano na slici 1.:

11

Slika 1: Razvojno okruenje MS Visual Studio 2005


Pojedini elementi okruenja su oznaeni brojevima od 1 do 7. I to:
1 Toolbox (deo u kome se nalaze gotove sistemske komponente koje nudi okruenje podeljene po
kategorijama (CommonControls, Containers, Menus&Toolbars, Data, Components, Printing, Dialogs,
Crystal Reports, General).
2 Deo za dizajniranje formi i editor koda.
3 Solution Explorer (pregled svih fajlova u projektu)
4 Properties (prozor za prikaz i podeavanje osobina i dogadjaja za selektrovanu kontrolu).
5 Deo za prikaz informacija (o grekama prilikom kompajliranja, upozorenjima, itd.)
6 Linija menija
7 Toolbar (Linija sa alatima)
Okruenje ima i mogunost prilagodjavanja potrebama i navikama programera. Pored toga okruenje nudi i niz
pogodnosti za razvoj aplikacije kako u fazi projektovanja tj. dizajna interfejsa tako i u fazi kodiranja. Na primer,
u fazi dizajna pri postavljanju kontrola na formu pojavljuju se pomone linije radi lakeg poravnavanja kontrola
i podeavanja njihove veliine ili pak u fazi kodiranja se nakon navodjenja imena objekta i take odmah
pojavljuje pomoni prozor sa listom svih moguih metoda i atributa koji su dostupni za dati objekat (tzv. Intelli
Sense). Ako izaberemo metodu i napiemo otvorenu zagradu za poetak unoenja argumenata odmah se
pojavljuje pomo koja nam prikazuje definiciju metode i pomae da izvrimo unos pravih argumenata tj.
argumenata odgovarajueg tipa. Isto tako se dobija informacija ako postoji vie metoda sa istim imenom tj. ako
je dolo do preoptereenja metoda (vie metoda sa istim imenom ali sa razliitim brojem parametara ili pak
razliitim tipom parametara). Kao to emo videti kasnije dok testiramo nae primere sve ove stvari znaajno
skrauju vreme potrebno za generisanje tj. razvoj aplikacije. ta vie, pokazaemo kako je mogue dobiti
aplikaciju bez ispisane i jedne linije koda! Proces kompajliranja i linkovanja je takodje pojednostavljen kroz
stavke Build u meniju Debug. Ako dodje do greke okruenje prikazuje listu greaka sa objanjenjima i prua
mogunost pozicioniranja na linije koje sadre greku. Ako je greka semantike prirode tj. program ne radi
onako kako smo predvideli da radi onda nam okruenje omoguuje relativno jednostavnu analizu programskog
koda pomou ugradjenog debagera o kome e kasnije biti vie rei. Pobrojali smo samo deo mogunosti koje
nudi okruenje. Za potpuno upoznavanje sa mogunostima okruenja potreban je dugotrajniji rad. Neke od
mogunosti okruenja emo upoznati i kroz realizaciju primera.
Pitanja
1) ta je IDE?
2) ta je RAD?
3) ta su dogadjaji?

12

4) Koji su osnovni elementi razvojnog okruenja MS Visual Studio 2005?

Startovanje Visual Studia 2005


Startovanje VisualStudia2005 se moe uiniti u 4 koraka tj. klika (kao to je to prikazano na slici 2):
1.
2.
3.
4.

Klik na Start button (uobiajeni poloaj je donji desni ugao ekrana)


Klik na AllPrograms
Klik na Microsoft Visual Studio 2005
Klik na Microsoft Visual Studio 2005

Slika 2: StartovanjeVisualStudio 2005

Pitanja
1) Kako se startuje MS Visual Studio 2005?

Kreiranje konzolne aplikacije u razvojnom okruenju


VisualStudio2005
Potrebna predznanja
Da bi radili sa DOS komandama (npr. izmena radnog direktorijuma i startovanje kreiranih programa iz DOS
prozora) potrebno je :

znati kako se pokree DOS prozor


osnovne komande DOS operativnog sistema (npr. izmena radnog direktorijuma)

13

Za poetak bie opisan nain kako se kreira konzolna aplikacija u razvojnom okruenju Visual Studio 2005 kako bi mogli
da proverimo date primere. Kasnije e biti vie detalja o razvoju Windows aplikacija u ovom okruenju.
Po startovanju razvojnog okruenja treba kreirati novi projekat iz menija File New Project kao to je to prikazano na
slici 3.

Slika 3: Kreiranje novog projekta


U prozoru za izbor projekta (prikazan na slici 4) treba izabrati tip projekta (Project type) i neka to bude Visual C# Windows Console Application. Treba navesti naziv projekta i putanju do direktorijuma gde e taj projekat biti
memorisan. Na slici 3 je za naziv projekta izabrano NazivProjekta a za putanju D:\KursCSharp.

14

Slika 4: Izbor vrste projekta


Pritiskom na dugme OK kreira se projekat i prikazuje se prozor u kome se unosi kod kao to je to prikazano na slici 5.
Uoite da prozor za pisanje koda nije prazan i da je izgenerisan namespace NazivProjekta, klasa Program i Main
funkcija.

Da bi kreirali na prvi program u telu funkcije Main treba uneti kod tako da funkcija Main izgleda kao:
static void Main(string[] args)
{
System.Console.WriteLine("Ovo je konzolna aplikacija");
}

15

Slika 5: Poetni izgled prozora za unos koda

Da bi mogli da vidimo rezultat izvrenja naeg programa potrebno je izvriti build operaciju i pokrenuti program.
Najjednostavniji nain je istovremeni pritisak na tastere Ctrl i F5 (kasnije e ovaj postupak biti objanjen dataljnije). Kao
rezultat dobija se DOS prozor sa ispisanom porukom Ovo je konzolna aplikacija a zatim obavetenje korisniku da
pritiskom na bilo koji taster dolazi do zatvaranja ovog prozora, kao to je to prikazano na slici 6. Ako bi eleli da
izbegnemo pojavljivanje poruke Press any key to continue moemo da startujemo aplikaciju samo sa F5. Medjutim, po
ispisu poruke Ovo je konzolna aplikacija prozor e se odmah zatvoriti. Da bi ovo izbegli dovoljno je da u telu funkcije
Main unesemo sledeu liniju koda:
Console.ReadKey ();
Efekat ove linije je da se eka da korisnik unese neki karakter. Po pritisku bilo kog tastera prozor aplikacije se zatvara.
Trei nain za pokretanje aplikacije je pokretanje iz komandne linije (DOS prozor). Ako je folder (direktorijum, fascikla)
u kome se nalazi projekat F (u naem primeru to je D:\KursCSharp) izvrna verzija programa se nalazi u folderu
F\NazivProjekta\bin\Debug i zove se NazivProjekta.exe. Dovoljno je promeniti radni direktorijum na
F\NazivProjekta\bin\Debug (startovanje slede'e DOS omande u DOS proyoru "cd F\NazivProjekta\bin\Debug"), otkucati
NazivProjekta i aplikacija e se startovati.

16

Slika 6: Prva konzolna aplikacija

Pitanja
1) Kako se kreira konzolna aplikacija u MS Visual Studio 2005?
2) Kako se pokree aplikacija u MS Visual Studio 2005?

Razvojno okruenje MS Visual Studio 2008


Activity
Razvojno okruenje MS Visual Studio 2008 je u velikoj meri slino okruenju MS Visual Studio 2005 te ne bi
trebalo da bude bilo kakvih problema da se sadraj ovog kursa isprati korienjem bilo kog od ova dva
okruenja.

Startovanje MS Visual Studia 2008


Activity
Startovanje MS Visual Studio 2008 je slino kao i startovanje prethodne verzije 2005. Slinost u radu
verzije 2008 sa verzijom 2005 je velika tako da e se samo u ovom delu napraviti paralela da bi se ta slinost
ilustrovala a nadalje e biti koriena samo jedna verzija.

17

Slika 1: Startovanje MS Visual Studia 2008

Kreiranje projekta - konzolna aplikacija


Activity
Kreiranje novog projekta se obavlja iz menija na nain ilustrovan na slici 1 (File-New-Project...).

18

Slika 1: Kreiranje novog projekta


Po kreiranju projekta treba definisati o kojoj vrsti projekta se radi. Na slici 2 je ilustrovano kreiranje C#.NET
projekta iji je naziv MojPrviCSharpProjekat koji se nalazi u folderu
D:\Users\Gaga\kursAkreditacija\2009\MaterijalZaKurs\exeLearnFiles\GotoviKurs\Verzija20102011 a koji
predstavlja konzolnu aplikaciju (Console Application). Podrazumevano je isto ime i za projekat i za Solution
(Name je isto sa Solution Name) ali i to moze da se promeni.

19

Slika 2: Kreiranje C# projekta konzolne aplikacije


Po kreiranju projekta otvara se file Project.cs (cs je extenzija za C# fajlove) u kome se moe uoiti klasa
Program i funkcija Main koja se izvrava kada startujemo aplikaciju (isto kao i u programskim jezicima C i C+
+). Izgled okruenja datog projekta MojPRvicSharpProjekat je prikazan na slici 3.

20

Slika 3: Startovan projekat MojPrviCSharpProjekat


Telo funckije Main je inicijalano prazno. Unesimo kod kao to je to prikazano na slici 4.

Slika 4: Main funkcija sa linijom koda za prikaz poruke Ovo je konzolna aplikacija

21

Unetom linijom se na izlaz (konzolu) prikazuje poruka Ovo je konzolna aplikacija. Ovaj prikaz je omoguen
pozivom metode WriteLine klase Console iz System namespace-a.
Startovanje kreirane aplikacije se moe obaviti na vie naina. Jedan od njih je CTRL + F5 kada se program
najpre bilduje i ako je sve korektno napisano ovaj proces e se zavriti uspeno o emu e biti ispisana poruka u
donjem delu okruenja u prozoru Output (sa uobiajenom porukom ========== Build: 1 succeeded or up-todate, 0 failed, 0 skipped ==========) i otvorie se konzola sa startovanom aplikacijom. U naem sluaju e u
konzoli biti ispisana poruka Ovo je konzolna aplikacija kao to je prikazano na slici 5.

Slika 5: Startovana konzolna aplikacija


Prethodni nain pokretanja aplikacije se moe izvriti u dva koraka: u prvom koraku moe da se porkene samo
bildovanje aplikacije kao to je to prikazano na slici 6, a zatim se moe pozvati aplikacija na izvrenje.

22

Slika 6: Bildovanje projekta


Na slici 6 se moe videti da je mogue bildovanej samo tekueg projekta ili pak bildovanej celog Solution-a
koji u optem sluaju moe sadrati vei broj projekata.

You might also like