seminarski rad - programiranje u c#

Upload: selmirije2

Post on 02-Mar-2016

1.425 views

Category:

Documents


65 download

DESCRIPTION

Kratak seminarski rad na temu programiranja u jeziku C#

TRANSCRIPT

Programiranje Windows aplikacija u C#

Programiranje Windows aplikacija u C#

Sadraj

1.Uvod22.Programski jezik C#33.Osnove programiranja u C#53.1.Tipovi podataka, deklaracija i definicija promenljive53.2.Klasa, objekat84..NET Framework124.1.Objektno - orijentisano programiranje (Klase, objekti i metode)124.2.Kljune rei u C#124.3.Kreiranje konzolnih aplikacija u Microsoft Visual C# 2010 Express135.Programiranje Windows aplikacija u C#155.1.Visual Studio166.Zakljuak217.Literatura21

1. UvodProgramski jezikCspada u proceduralne programske jezike koji je razvijen u ranim70-imgodinama20. stoljea. Autor ovog programskog jezika jeDennis Ritchie, no znaajan doprinos nastanku C-a dali suKen Thompsonkao autor programskog jezika B iMartin Richards, autor programskog jezikaBCPL. Dennis Ritchie je stvorio ovaj programski jezik za rjeavanje praktinih problema kodiranjasistemskih programai jezgreoperacijskog sustavaUNIX, koji je praktiki u cijelosti napisan uC-u.Programski jezikCdosta se mijenjao tokomgodinate je u vie navrata neformalno i formalno standardiziran. Prva vanija inaica poznata je pod nazivom "K&R C", to jeengl. kraticaprezimenadvaju autora najpoznatijeg C prirunika "The C Programming Language", a to suBrian Kernighani Dennis Ritchie. Prvo izdanje te vrlo saeto i precizno pisaneknjigekoje datira iz1978. godine ujedno jede factostandardiziralo jezik u 70-ima. Drugo izdanje iz1988. godine opisuje "ANSI C", standard kojeg je1983. godine definiraoamerikinacionalni institut za standardizaciju, a koji je i danas najbolje podran. Donedavni je standard bio ISO/IEC standard skraeno poznat kao "C99", no krajem 2011. usvojen je ISO/IEC 9899:2011, poznat kao "C11", za koji su kompajleri jo u razvoju.Kao jedan od najvanijih jezika u povijesti komercijalneraunalneindustrije,Cje do danas ostao jedini programski jezik prilagoen za sve raunalne platforme, od malih sustava pa do mrenih superraunala. Programi napisani u njemu vrlo su bliski nainu radahardverate u naelu zahtijevaju od programera dobro razumijevanje radaprocesora,memorije,ulazno-izlaznih sklopovaitd. No, rad s registrima procesora i adresiranje memorije apstrahirani su pomou koncepta varijabli i pokazivaa to uz eksplicitne kontrolne strukture i funkcije znatno olakava programiranje u odnosu na izravno programiranje u strojnim jezicima.Tokom1980-ih,Bjarne Stroustrupzajedno s drugim istraivaima u Bell Labs proirujeCdodavajui sposobnosti objektno orijentiranog programiranja, a naziv ovog novog programskog jezika jeC++. Naalost, ta je 100%-na kompatibilnost ujedno i razlog to su problemi koje programiranje uC-u nosi sa sobom naslijeeni u C++-u. Efikasno i sigurno programiranje uC-u vrlo je zahtjevna vjetina koja trai viegodinje iskustvo pa je stogaCjezik koji se ne preporuuje poetnicima, posebice ako im programiranje nije primarni posao.Mnogobrojni problemi vezani prije svega za upravljanje memorijom koje programer mora sam eksplicitno kodirati razlog su da je danas veina novih korisnikih aplikacija napisana u nekom modernijem jeziku koji ima ugraeno automatsko upravljanje memorijom (engl. garbage collection), ne doputa izravan rad s memorijom pomou pokazivaa te ima podrku za upravljanje kodom odnosno njegovom okolinom za vrijeme njegova izvoenja. Danas se relativno rijetko ukazuje potreba za pisanjem novih korisnikih aplikacija izravno uC-u, pa ak i u vrlo malim sustavima kao to su primjericemobilni telefoni. Glavno podruje njegove uporabe su sistemski programi na strani posluitelja (engl. servers), programi prevoditelji (engl. compilers) i jezgre operativnih sustava (engl. operating system kernels), gdje je potreba za najveom moguom brzinom izvoenja, efikasnom kontrolom resursa i izravnom kontrolom hardvera od primarne vanosti.C je jezik ope namjene, to znai da se u njemu moe napraviti apsolutno sve: od rjeavanjazadataka, do pisanjadrivera,operacijskih susatava,tekst procesorailiigara. C, kao jezik, ni u emu ne ograniava. Omoguuje i ukljuivanje naredbi pisanih asemblerski, zbog ega je zajedno s mogunou direktnog pristupa pojedinimbitovima,bajtovimaili cijelim blokovima memorije, pogodan za pisanje sistemskogsoftvera. Zbog tih karakteristika C je meu popularnijimprogramskim jezicimai rabe ga mnogiprogrameri. Rezultat toga je postojanje velikog broja prevoditelja za C i alata te stalno dostupne pomoi nainternetu. Programi pisani u C-u su prenosivi (mogu se prevoditi i izvravati na razliitim porodicama raunala uz minimalne ili nikakve ispravke) i obino su vrlo brzi. Postoje mnogiprevoditeljiza jezik C, a jedan od najire koritenih jeGNU C Compiler.2. Programski jezik C#C# je zreo programski jezik koji omoguava izradu aplikacija za Web sa svom potrebnom funkcionalnou. Osim to prua programski okvir za razvoj softvera, omoguava i podrku za pristupanje brojnim bazama podataka. On predstavlja jedan od jezika koji slue za izradu aplikacija koje mogu raditi pod .NET okruenjem. Kako predstavlja evoluciju jezika C i C++, kao takav je kreiran uz korienje svih prednosti ostalih jezika i otklanjanje njihovih mana. Sam razvoj aplikacije je jednostavniji u C# jeziku, a sam jezik je izuzetno moan. S vremena na vreme njegov kod je mnogo razumljiviji u odnosu na druge jezike, ali je neto robusniji i jednostavnije je otkloniti greke u njemu. Sam jezik nema ogranienja u pogledu toga kakve se aplikacije mogu napraviti u njemu, on koristi okruenje i samim tim nema ogranienja u vezi sa moguim aplikacijama. Za programiranje u C# korien je Visual Studio .NET, koji je u mnogome olakao razvoj same aplikacije. Visual Studio .NET pored toga to sadri dizajnerske alatke za aplikacije, alatke za prikazivanje i navigaciju elemenata projekta, omoguava jednostavniju distribuciju i prilagoavanje projekta klijentimai obezbeuje napredne tehnike otklanjanja greaka pri razvoju projekta.Programski jezik C# (C sharp) je proizvod kompanije Microsoft i nastao je kao odgovor na nedostatke postojeih jezika kao to su C, C++ i Visual Basic, u isto vrijeme kombinujui njihove dobre strane.C# je potpuno objektno-orijentisani programski jezik, to znai da svi elementi unutar njega predstavljaju objekt. Objekt predstavlja strukturu koja sadri podatkovne elemente, kao i metode i njihove meusobne interakcije.Kao primjer jednostavnog C# programa, navest emo sljedei kod:Using System;Class Primjer{ statis void Main() { Console.WriteLine("Pozdrav!"); }}Nakon izvoenja ovog programskog koda, na ekranu se ispisuje poruka "Pozdrav!".Using System; je kompajlerska naredba koja mu govori da aplikacija koristi skup elemenata pod nazivomSystem. Na ovaj nain sve funkcije i klase unutar prostora (namespace) Systempostaju izravno dostupne unutar aplikacije. Na primjer, koritena klasiConsoleu naem primjeru pristupa se direktno iako se ona nalazi unutar klase System.

Slika 1. Nain na koji je C# dobio imeU suprotnom bismo joj morali pristupati na sljedei nain:System.Console;Nadalje definiramo vlastitu klasu naziva Primjer. Za ovo koristimo kljunu rijeClass, te vitiaste zagrade koje idu nakon imena klase, i definiu opseg klase. Drugim rijeima, svi objekti koje definiemo unutar ovih zagrada pripadati e toj klasi.Svaki program mora imati taku u kojoj kree sa izvravanjem, i to je u C# aplikaciji funkcijaMain(). U naem primjeru ta funkcija definisana je pomou dvije kljune rijei:staticivoid.Za kraj ostaje objasniti naredbu za ispis teksta koritenu u primjeru.Ta naredba imenomWriteLinesadrana je u klasiConsole. Svim sastavnim elementima neke klase/objekta pristupamo na nain da napiemo ime klase/objekta te nakon njega stavimo toku i napiemo ime elementa (varijable, funkcije...) kojem pristupamo.FunkcijaWriteLineprima jedan argument, i to upravo tekst kojeg elimo ispisati.Konano, naredba izgleda: Console.WriteLine("Pozdrav!");Jo je bitno napomenuti da u C# jeziku svaka linija zavrava taka-zarezom (eng.semicolon)3. Osnove programiranja u C#Programski jezik C# je nastao 2002. godine u radionici uvene kompanije Microsoft kao proizvod elje da se napravi objektno orijentisani programski jezik (poput Jave) koji omoguava relativno lako kreiranje aplikacija u grafikom korisnikom okruenju (poput programskog jezika Borland Delphi). Ovaj programski jezik je jezik opte primene i namenjen je izradi aplikacija za Microsoft .NET platformu. Sintaksne konstrukcije programskog jezika C# su izgraene na uobiajenoj azbuci (velika i mala slova abecede, cifre, specijalni znaci). Kao i u svakom drugom programskom jeziku postoje takozvene slubene ili rezervisane rei koje imaju svoje unapred definisano znaenje i ne mogu se koristiti za imenovanje bilo kakvih podataka od strane programera. Ovde navodimo skup rezervisanih rei poreanih u leksikografskom poretku: abstract, as, base, bool, break, byte, case, catch, char, checked, class, const, continue,decimal, default , delegate, do, double, else, enum, event, explicit, extern, false, finally,fixed, float, for, foreach, goto, if, implicit, in, int, interface, internal, is, lock, long,namespace, new, null, object, operator, out , override, params, private, protected, public ,readonly, ref, return, sbyte, sealed, short, sizeof, stackalloc, static, string, struct, switch,this, throw, true, try, typeof, uint, ulong, unchecked, unsafe, ushort, using, virtual, volatile,void, whileU ovom dijelu seminarsko rada govori se o tipovima podataka kojima C# manipulie kao i sa graenjem osnovnih sintaksnih i semantikih konstrukcija ovog programskog jezika. 3.1. Tipovi podataka, deklaracija i definicija promenljive Svakom aplikacijom obraujemo podatke. Svi podaci uvaju se u memoriji raunara u obliku nizova bistabilnih elemenata (0 i 1), bez obzira da li podatak predstavlja broj, re, sliku ili zvuk. Razliite vrste podataka registruju se na razliite naine. Takoe, nad razliitim vrstama podataka su dozvoljene razliite operacije. U zavisnosti od vrste podatka, mora se odvojiti odreeni prostor za njegovo registrovanje i obezbediti izvravanje odreenih akcija nad tim podatkom. Raunaru moramo dati informaciju koja vrsta podatka je registrovana da bi ga na pravi nain tumaio i obraivao. Potrebne informacije saoptavamo raunaru tipom podataka. Tipom podataka definisan je: o nain registrovanja podataka u memoriji; o skup moguih vrednosti tih podataka; o skup moguih akcija nad podacima. Promenljiva je ime (identifikator) memorijske lokacije u kojoj aplikacija uva vrednost. Identifikator (ime) koji programer definie gradi se na osnovu sledeeg pravila: Identifikator je niz slova (velikih i malih) engleske abecede, znaka za podvlaenje (_) i cifara. Ime mora da pone slovom ili znakom za podvlaenje. Prema tome, primeri identifikatora su nazivPredmeta, ucenik1, Rezultat, radni_dan, _x, ... dok nazivPredmeta, godisnje-doba, 1dan, ... nisu identifikatori. Vano je napomenuti da C# (poput programskog jezika C) razlikuje velika i mala slova tako da identifikatori GodisnjeDoba i godisnjeDoba nisu isti. U programskom jeziku C# promenljive su podeljene u dve kategorije: vrednosne i referentne promenljive. Memorijska lokacija, imenovana promenljivom vrednosnog tipa, direktno sadri vrednost, dok lokacija imenovana promenljivom referentnog tipa sadri adresu lokacije u dinamikoj memoriji u kojoj se uva vrednost. Za podatke osnovnih tipova (tj. sistemskih struktura) u programskom jeziku C# (int, double, char, bool) ime promenljive predstavlja vrednost a za objekte sistemskih i od strane programera definisanih klasa, ime promenljive predstavlja adresu lokacije u dinamikoj memoriji u kojoj su ti objekti kreirani i gde egzistiraju, pa se njima pristupa indirektno. Referentna promenljiva uva memorijsku adresu podatka, tj. referencira na pravu vrednost. Imenovanje podataka u aplikaciji i definisanje tipa podataka kojem pripadaju postiemo deklaracijom promenljivih na sledei nain: , , ; Deklaracijom promenljive vrednosnog tipa u memoriji se odvaja prostor neophodan za registrovanje podatka zadatog tipa, a pri deklaraciji promenljive referentnog tipa odvaja se prostor za registrovanje adrese memorijske lokacije u kojoj e se nalaziti objekat. int x,y; char p,q; Ucenik ucenik1,ucenik2; Samom deklaracijom ne dodeljuje se vrednost promenljivoj vrednosnog tipa. Ako elimo da dodelimo vrednost promenljivoj (da definiemo promenljivu) koristimo operator = (operator dodele) na sledei nain: =; Tip vrednosti izraza mora se poklapati sa tipom promenljive (ili se implicitnom konverzijom moe konvertovati u tip promenljive).int x,y; x=5; y=!145+x; char p; p=A; Deklaracijom promenljive referentnog tipa ne zauzima se memorija za vrednost ve samo za njenu referencu. Da bismo napravili prostor za vrednost, upotrebljavamo izraz oblika new () Korienjem operatora new odvaja se u dinamikoj memoriji prostor za registrovanje vrednosti tipa . Ovaj operator vraa adresu dodeljenog prostora koju onda moemo dodeliti referentnoj promenljivoj. Primer: mojRefTip x; x= new mojRefTip(); Ucenik a; a=new Ucenik(Pera, Peric); Promenljivoj referentnog tipa x, odnosno a, dodeljujemo adrese memorijskog prostora odvojenog korienjem operatora new. Pozivima metoda mojRefTip() i Ucenik(Pera, Peric), u prostoru odvojenom korienjem operatora new, postavljaju se odgovarajue vrednosti. Moemo zakljuiti da se uvoenje promenljive odvija u dva koraka: o deklaracija promenljive promenljiva vrednosnog tipa se pri deklaraciji ne inicijalizuje ukoliko to nije eksplicitno navedeno: promenljiva referentnog tipa se pri deklaraciji inicijalizuje nulom; o inicijalizacija promenljive za promenljive vrednosnog tipa eksplicitno navodimo vrednost ; za promenljive referentnog tipa operator new odvaja u dinamikoj memoriji prostor za vrednost odgovarajueg tipa. U programskom jeziku C# je data mogunost objedinjavanja ova dva koraka, to vrlo esto koristimo. int x=32, y; mojTip z= new mojTip(); Ucenik a=new Ucenik(Pera, Peric); Osnovni podaci referentnog tipa u programskom jeziku C# su klase a vrednosnog strukture i enumeracijski tip. Promenljiva vrednosnog tipa direktno sadri podatak, dok promenljiva referentnog tipa sadri referencu na vrednost koja je smetena u posebnom memorijskom prostoru. Svaka promenljiva vrednosnog tipa sadri sopstvenu kopiju podatka, pa operacije nad jednom promenljivom nemaju efekta na drugu promenljivu. Dve referentne promenljive mogu sadrati adresu iste vrednosti, pa operacije nad jednom referentnom promenljivom mogu uticati na vrednost na koji referie druga promenljiva. 3.2. Klasa, objekat Do klasa dolazimo polazei od pojedinanih objekata. Posmatranjem objekata uoavamo njihova zajednika svojstva koja zovemo atributima. Takoe, objektima moemo pridruiti iste akcije koje u okviru klase nazivamo metodima klase. Njima opisujemo funkcionalnosti objekata klase. Klasu definiemo navoenjem rezervisane rei class iza koje sledi identifikator klase (ime klase). Posle imena, ako formiramo klasu koja nasleuje neku, prethodno definisanu klasu, navodimo : a zatim sledi ime klase iz koje je izvedena. Zatim u vitiastim zagradama {} definiemo lanove klase (atributi i metodi). class : { opis / definicija lanova klase } Na primer, klasu uenika iz uvodnog primera moemo intuitivno definisati na sledei nain: class Ucenik { String ime, prezime; DateTime datumRodjenja; int razred; int SkolskaGodina; char odeljenje; int [] ocene; double prosek() { } void uci(Lekcija X) { } } Atributima opisujemo odreenu osobinu objekta (ime, prezime, datumRodjenja, razred, odeljenje). Najee, razliiti objekti iste klase imaju razliite vrednosti atributa. esto kaemo da vrednosti atributa definiu stanje objekta. Pri opisu atributa moramo navesti tip kome taj atribut pripada (celobrojni, realni, znakovni, Form, Button) i ime atributa. Pri tome, navedeni tip je prethodno definisan (ugraen u sistem ili definisan od strane programera). int a,b; //celobrojni atributi a i b Button dugme;// atribut dugme, objekat ugraene klase Button U programskom jeziku C#, po navoenju //, piemo komentare napisanog koda. Poev od // pa do kraja linije napisani komentar se pri prevoenju programa ignorie. Ukoliko piemo opirniji komentar, koji obuhvata vie redova, od ostalog dela koda odvajamo ga na poetku sa /* a na kraju sa */. Pristup atributima objekta u programskom jeziku C# realizujemo navoenjem imena objekta, znaka taka (.), pa imena atributa. Na primer, ako je X objekat klase Ucenik, atributu razred pristupamo sa X.razred. Metodom opisujemo ponaanje objekta u odreenoj situaciji i pod odreenim uslovima (npr. metod uci), ali i odreujemo nove vrednosti na osnovu osobina koje objekat poseduje (npr. metod prosek). Na taj nain opisujemo funkcionalnost objekta. Metod klase je imenovani blok naredbi koji se sastoji iz zaglavlja i tela metoda. U zaglavlju navodimo povratni tip (ako metod ne proizvodi vrednost koju vraa, navodimo rezervisanu re void), zatim ime metoda za kojim sledi u malim zagradama spisak parametara metoda. Za svaki parametar navodi se tip kome taj parametar pripada kao i ime parametra. Posle zaglavlja u vitiastim zagradama navodimo telo metoda koje se sastoji iz odgovarajuih naredbi programskog jezika C#. () { } Svi atributi konkretnog objekta dostupni su i vidljivi svim metodima tog objekta i traju dok traje objekat. Za razliku od njih, promenljive deklarisane u okviru nekog od metoda (lokalne promenljive), nastaju izvravanjem tog metoda, vidljive su samo u okviru njega, i gase se zavretkom tog metoda. Zato, ako je potrebno da koristimo vrednost u okviru vie metoda jedne klase (ili u vie izvravanja jednog metoda), moemo je definisati kao atribut klase. Neki od metoda se pokreu kao reakcija na dogaaje koji nastaju tokom izvravanja aplikacije. Za takve metode kaemo da obrauju dogaaje(engl. event handler). Kada u toku izvravanja aplikacije pritisnemo dugme za izlazak iz programa u naslovnoj liniji prozora u kome se izvrava aplikacija, automatski se pokree metod Closing u okviru koga moemo programirati akcije koje e spreiti izlazak iz programa ukoliko uslovi za to nisu ispunjeni. Vrlo esto u toku izvravanja Windows aplikacija korisnik ima mogunost da klikom na dugme usmeri dalje izvravanje aplikacije. Tok izvravanja aplikacije nakon klika na dugme programer definie metodom Click. Poziv metoda objekta u programskom jeziku C# realizujemo na sledei nain: imeObjekta.imeMetoda(lista vrednosti parametara) Na primer, ako je x objekat klase Ucenik, metod prosek pozivamo x.prosek() a metod uci x.uci(L) gde je L objekat klase Lekcija. Svaka klasa sadri metode koji omoguavaju kreiranje objekta, a moe sadrati i metod koji unitava objekat (destruktor). Metode koje kreiraju objekte zovemo konstruktorima. Konstruktori su sastavni deo svake klase i nose njeno ime. Pozivom konstruktora objekat poinje svoj ivot. Klasa moe imati jedan ili vie konstruktora koji se razlikuju po listi parametara. Lista parametara najee sadri vrednosti kojima inicijalizujemo svojstva objekta, a moe biti i prazna. Konstruktor neke klase pozivamo pri definisanju objekta iste klase, korienjem operatora new. Objekat A klase Ucenik moemo definisati izrazom A=new Ucenik("Pera","Peric"); Jedan od osnovnih koncepata objektno orijentisanog programiranja jeste kontrolisanje pristupa lanovima objekta (atributima i metodima). Za svaki lan klase (atribute i metode) moramo definisati nivo pristupa (vidljivosti, dostupnosti, zatite). Na taj nain definiemo koliko je taj lan klase otvoren prema spoljanjem svetu. U programskom jeziku C# postoje vie nivoa pristupa a mi emo, u poetku, koristiti privatni (private) i javni (public ) pristup. Neki lanovi klase mogu da se koriste interno, samo u metodima klase, i metodi drugih klasa im ne mogu pristupiti. Za takve lanove klase kaemo da su privatni i pri njihovom definisanju navodimo rezervisanu re private. Privatnim lanovima klase mogu pristupati samo metodi te klase i to je najvii nivo zatite. Pri opisu javnih lanova klase navodimo rezervisanu re public . Takvi lanovi klase su dostupni svetu van klase i pristup tim lanovima je potpuno slobodan. Podrazumevani pristup lanovima klase je privatni, to znai da su lanovi klase za koje nije naveden nivo pristupa, privatni lanovi. Uobiajeno je da su atributi privatni, a metodi javni lanovi klase. Ukoliko postoji potreba da se izvan klase pristupa privatnim atributima, potrebno je definisati javne metode ili javno svojstvo (engl. property) u okviru klase koji slue za komunikaciju sa privatnim atributom, odnosno omoguava postavljanje vrednosti ili itanje vrednosti atributa. Pri definisanju lanova klase, posle nivoa pristupa, moemo navesti i slubenu re static kojom definiemo da odgovarajui lan postoji i da se koristi i bez kreiranja konkretnih instanci klase. Takvim lanovima pristupamo navoenjem imena klase umesto imena objekta. Bez obzira na broj instanci klase koja sadri atribut static, postoji tano jedna kopija tog atributa u aplikaciji. U navedenom primeru klase Ucenik, lan SkolskaGodina moemo definisati kao static jer je vrednost ista za sve uenike, i u tom sluaju tom atributu pristupamo Ucenik.SkolskaGodina.

4. .NET FrameworkNET Framework je revulucionarna platofrma koju je kreirao Microsoft za razvoj aplikacija. To je takva platforma na kojoj mogu raditi razliite vrste aplikacija (Windows aplikacije, Web aplikacije, Web servisi...). NET Framework je dizajniran tako da moe koristiti bilo koji programski jezik kao to su C++, Visual Basic, Jscript, ak i ranije verzije Cobol. Takoe je mogue da se kombinuju pojedini delovi koda iz razliitih programskih jezika. Npr. kod napisan u C# se moe kombinovati sa kodom iz Visual Basica.NET Framework sadri veliku biblioteku koda koji moe da koristi klijentski jezik (kao to je C#) koristei tehnike objektno-orijentisanog programiranja. Ova biblioteka se sastoji od razliitih modula, pri emu je mogue koristiti pojedine delove u zavisnosti od potrebe. Tako npr. neki moduli sadre blokove za kreiranje windows aplikacija, drugi deo za mreno programiranje, a neki drui za Web razvoj. Neki moduli su podeljeni u neke specifinije pod module.4.1. Objektno - orijentisano programiranje (Klase, objekti i metode)Objekat je primerak (instanca) klase. Klasa predstavlja skup podataka i instrukcija koje se izvode na nekim podacima. Klasa je skup pravila koji odreuju kako e se formirati neki objekat. Svaka klasa ima svoje lanove i to su podaci i kod. Podaci koji se definiu u klasi obino se nazivaju polja (fields). Ovde se koriste termini kao to su funkcija (metoda) koja predstavlja kod programa koji se izvrava nad podacima. Metodi su ustvari podprogrami i oni mogu imati svojstva, dogaaje i konstruktore. Metodi se izvravaju nad poljima koja su definisana u klasi.4.2. Kljune rei u C#abstractasbasebool

breakbytecasecatch

charcheckedclassconst

continuedecimaldefaultdelegate

dodoubleelseenum

eventexplicitexternfalse

finallyfixedfloatfor

foreachgotoifimplicit

inin (generic modifier)intinterface

internalislocklong

namespacenewnullobject

operatoroutout (generic modifier)override

paramsprivateprotectedpublic

readonlyrefreturnsbyte

sealedshortsizeofstackalloc

staticstringstructswitch

thisthrowtruetry

typeofuintulongunchecked

unsafeushortusingvirtual

voidvolatilewhile

4.3. Kreiranje konzolnih aplikacija u Microsoft Visual C# 2010 Express

Na slici 2 je prikazana startna strana, na kojoj se mogu odabrati ponuene mogunosti za formiranje novog projekta izborom opcije New Project ili otvaranje ve postojeeg projekta izborom opcije Open Project.

Slika 2. Izgled startnog prozora Microsoft Visual C# 2010 Express

Pri kreiranju konzolne aplikacije izabere se opcija sa padajueg menija FileNew Project. Zatim se u okviru panela Templates izabere Console Application. Potom se dobija sledee:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { } }}Da bi aplikacija bilo ta radila potrebno je dodati bar jednu liniju koda ispod glavne funkcije static void Main(string[] args). Primjer 1. Ispisati tekst na ekranu.using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { Console.WriteLine("Prva aplikacija kod C# proogramiranja!"); Console.ReadKey();/*trai se pritiskanje nekog tastera za prekid rada programa*/ } }}namespace predstavlja .NET nain da se kod i njegov sadraj jedinstveno identifikuju. Takoe se koristi za kategorizaciju elemenata u .NET Framework. namespace je deklarisan za kod aplikacije koja se u ovom sluaju naziva ConsoleApplication1.using System;-predstavlja korienje System namespace (odnosi se na biblioteku klasa .NET Framework, iju biblioteku koristi C#). Za vee projekte moe se kreirati sopstveni namespaces.class Primer{ -definicija klase Primer. Poetak klase poinje sa otvorenom vitiastom zagradom {, a zavrava se sa }.static void Main()-poinje glavni metod, gde se izvrava program. Ovaj metod poinje sa static, to znai da je statiki i void - ne vraa vrednost.Console.WriteLine("Jednostavan C# program."); -WriteLine() je funkcija koji kao rezultat vraa string koji mu je prosleen. Console- podrava konzolni I/O. U kombinaciji se kompajleru govori da je WriteLine() lanica Console klase.Izrazi u C# se zvravaju sa taka-zarezom (;).Console.ReadKey(); - funkcija za unos nekog znaka sa tastature (za prekid rada programa)Ovaj program se unosi izborom opcije New Project, pa se bira u okviru Online Template opcija Empty Project. Na padajuem meniju se izabere opcija Build Build Solution (F6), a potom sa padajueg menija Debug Start Without Debugging. (Ukoliko je u padajuem meniju ne postoje ove opcije treba izabrati opciju Tools Settings Expert Settings).Ukoliko se fajl ne snimi pod nekim imenom, dodeljuje mu se automatski ime CodeFile1.cs. Naravno, postoji mogunost preimenovanja. Pri izvravanju aplikacije pojavie se u komand propmptu tekstualna poruka: Jednostavan C# program.5. Programiranje Windows aplikacija u C#Nakon upoznavanja sa tim ta je u stvari jezik C# i kako se uklapa u .NET okruenje, doao je trenutak da zaponemo sa pisanjem koda. U tom poslu koristiemo Visual Studio .NET (VS), pa treba da nauimo osnovne stvari o torn razvojnom okruenju. VS je ogroman i komplikovan proizvod, tako da u prvo vreme korisniku moe delovati zastraujue, ali uz njegovu pomo pravljenje jednostavnih aplikacija moe biti iznenaujue prosto. im ponemo sa korienjem VS-a uvideete da nije potrebno mnogo znati o njemu da bismo se poigrali sa C# kodom. Kasnije emo videti neke mnogo komplikovanije operacije koje je mogue izvesti u VS-u, ali za sada su dovoljna osnovna znanja. Poto zavirimo u VS, sastaviemo dve proste aplikacije. Za sada se neemo mnogo optereivati kodom, samo emo se upoznati sa tim koje su procedure potrebne da bi se aplikacija napravila i da bi funkcionisala kako treba, mada e sve to uskoro postati sporedno. Prva aplikacija koju emo napraviti bie jednostavna konzolna aplikacija. Konzolne aplikacije ne koriste grafiko okruenje Windowsa, tako da ne moramo da brinemo o dugmadima, menijima, interakciji sa pokazivaem mia i tako dalje. Umesto toga, pokrenuemo aplikaciju iz komandne linije i komunicirati sa njom na mnogo prostiji nain. Druga aplikacija e biti bazirana na Windows formularima. Njen izgled, kao i rad sa njom, bie vrlo prepoznatljiv onima koji su koristili Windows i njeno kreiranje ne zahteva nita vise rada nego prethodna. Ipak, sintaksa njenog koda je mnogo komplikovanija, mada esto neemo morati da vodimo rauna o detaljima. Dodatna fleksibilnost Windows aplikacija nije neophodna da bi se nauio C# jezik, dok jednostavnost konzolnih aplikacija omoguuje da se skoncentriemo na uenje sintakse, a da za to vreme ne brinemo o tome kako aplikacija izgleda niti kakav je oseaj raditi sa njom.5.1. Visual StudioKada prvi put uitate VS, odmah se pojavi nekoliko prozora, od kojih je veina prazna, zajedno sa nizom elemenata menija i ikona sa paletama alatki. Ukoliko prvi put pokreete VS bie vam predstavljena lista sa vrednostima namenjena za korisnike sa iskustvom u radu na prethodnim izdanjima ovog razvojnog okruenja. Automatski odabrani element! su sasvim u redu, za sada ih prihvatite jer tu nema niega to se kasnije ne moe promeniti. Izgled VS okruenja je u potpunosti prilagodljiv, ali su nam sasvim dovoljne ve postavljene vrednosti. One su sreene na sledei nain:

Slika 3. Korisniki interfejs Visual Studia paketaGlavni prozor, koji prikazuje uvodnu poetnu stranu" kada se VS pokrene, jeste onaj u kome se prikazuje ceo na kod. Ovaj prozor je podeljen na kartice tako da moemo lako skakati sa jedne na drugu datoteku tako to emo pritisnuti miem njihovo ime. Ovaj prozor ima i druge funkcije: moe prikazati grafiki korisniki interfejs koji dizajniramo za na projekat, iste tekstualne datoteke, HTML, kao i razliite alate ugraene u VS. Opisaemo svaki, kako na njega naiemo tokom rada. Iznad glavnog prozora nalaze se palete sa alatkama, kao i VS meni. Ovde moete nai nekoliko razliitih paleta sa alatkama rangiranih po funkcionalnosti - od alatki za snimanje i uitavanje datoteka, preko izgradnje i pokretanja projekta, do kontrola za otklanjanje greaka. O svima njima emo priati kada nam budu zatrebali. Slede kratki opisi glavnih karakteristika VS-a, koje ete najee koristiti: Server Explorer i Toolbox paleta sa alatkama izbacuju sopstvene menije kada se preko njih prede miem, i otvaraju nam nove dodatne mogunosti, kao to su pristup i podeavanje karakteristika i servisa samog servera, i pristup korisnikom interfejsu za izradu elemenata Windows aplikacija. Solution Explorer prozor prikazuje informacije o trenutno uitanim reenjima. Reenje je po terminologiji VS-a jedan ili vise projekata zajedno sa njihovom konfiguracijom. Ovde moemo videti razliiti pogled na projekte unutar reenja, kao to su datoteke iz kojih se sastoje i njihov sadraj. Properties prozor omoguuje detaljniji pogled na sadrinu projekta i dozvoljava nam da izvedemo dodatno konfigurisanje pojedinih elemenata. Na primer, taj prozor moemo koristiti da promenimo izgled dugmeta unutar Windows formulara. Task List and Output prozor prikazuje informacije prilikom kompajliranja projekta zajedno sa zadacima koji treba da se izvre (slino listi zadataka u Microsoft Outlooku). Ovi zadaci se mogu uneti runo, a mogu biti i automatski generisani od VS-a. Primjer:Napravite novi projekat konzolne aplikacije birajui File | New | Project... iz menija:

Izaberite Visual C# Projects direktorijum unutar prozora Project Types:, i tip projekta Console Application u okviru prozora Templates: (za ovo ete morati malo da pomerite prozor na dole). U okviru za tekst Location: promenite putanju u C:\Temp\SoftIng\LecturesCode\Vezba1 (ovaj e direktorijum biti automatski napravljen ukoliko ve ne postoji), i ostavite podrazumevani tekst u okviru za tekst Name: Pozdrav Svete.

Pritisnite miem na dugme OK. Kada se projekat inicijalizuje dodajte sledee redove u datoteku koja se bude pojavila u glavnom prozora:

Izaberite Debug | Start Without Debbuging iz menija. Posle nekoliko trenutaka trebalo bi da vidite sledee:

Takoe samu konzolnu aplikaciju moemo pokrenuti i na drugi nain: Odaberite Start | Programs | Microsoft Visual Studio .NET 2003 | Visual Studio .NET Tools | Visual Studio .NET Command Prompt. Pojavie se komandni prozor i bie definisane sve promenljive okruenja potrebne prevodiocima i alatkama Visual Studija. Ako se pokrene obino komandno okruenje, bez zadavanja tih promenljivih, .NET alatke nee raditi.

Posle otvaranja komandnog prozora .NET-a uite u folder u kome ste sauvali ovu konzolnu aplikaciju. Unesite u komandnom prozoru sledeu komandu, koja prevodi kod konzolne aplikacije: csc Class.cs Naravno programiranje pod celim Visual Studio .NET je tkz. Case Sensity, osetljiv velika i mala slova. Tako da morate da obratite panju pri kucanju koda. Ovde to nije sluaj, ali nije naodmet da se navikavate na velika i mala slova. Prvo ete dobiti obavetenje o verziji prevodioca i izvrnog okruenja, a zatim i o autorskim pravima. Pokrenute program i biete pozdravljeni na sledei nain: C:\> Class1 Pozdrav svete na jeziku C# ! C:\> Funkcija Console.WriteLine() dodaje tekstu indikator novog reda (engl. Newline character). U windowsu je to kombinacija znaka za poetak reda i znaka za prelazak u novi red. Da biste u nekoliko iskaza pisali u istom redu, koristite funkciju Write(). Ona zahteva da sami dodate indikator novog reda. Sada u prethodnom programu zamenite iskaz WriteLine() sledeim iskazima: Console.Write ("Zdravo svete " ) ; Console.Write ( "na jeziku C#! \ r \n" ) ; Obrnuta kosa crta (\) ispred znaka je signal prevodiocu da je u pitanju izlazna sekvenca (engl. escape sequence). Iz sledee tabele vidi se da C# koristi iste izlazne znake kao i C++. Ako iza obrnute kose crte stavite neki dragi znak, dobiete od prevodioca poruku da nije prepoznao izlazni znak.

6. ZakljuakKreiran kako bi se iskoristile ogromne mogunosti .NET platforme, C# se ubrzo pokazao kao nevjerovatno univerzala programski jezik sposoban da zadovolji zahtjeve kako najsloenijih programskih zadataka kakvi se sreu na serverima, radnim stanicama i superaunarima pa sve do malih mobilnih uredjaja. Njegova sposobnost da direktno upravlja hardverom ini ga veoma monim sredstvom pri kreiranju novih i modifikovanju postojeih operativnih sistema. Uprkos svim svojim prednostima i sposobnostima, C# kao i njegove prethodnika karakterie sloenosti sintakse i samog procesa programiranja. Zbog toga, on predstavlja jezik vie klase namijenje za rad iskusnim, vrhunskim programerima koji su u stanju pravilno i u punoj mjeri iskoristiti njegove mogunosti.7. Literatura

1. Objektno orjentisano programiranjeu jeziku C#, Dragan Miliev, Beogra 1996.2. Osnovni elementi programskog jezika C, Skripta3. Programiranje u C, Skripta, Univerzitet u Zagrebu4. C# - Auditorne vjebe, Skripta, Univerzitet u Beogradu5. Tehnike vizuelnog programiranja u C#, Zoran irovi, Ivan Dunerski, Via elektrotehnika kola, Beograd, 2006.6. Programiranje u C#, Skripta, Elektrotehniki fakultet Mihajlo Pupin, Zrenjanin7. Programski jezik C#, Mario Bonjak, Univerzitet u Zagrebu

1 | Strana