P. 1
C# srpski uvod

C# srpski uvod

|Views: 3,012|Likes:
Published by Marko Čopić

More info:

Published by: Marko Čopić on Oct 19, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

07/11/2013

pdf

text

original

C# SADRŽAJ VEŽBI

I C# JEZIK 1. UVOD U C# (MICROSOFT VISUAL C# 2010 EXPRESS) 2. TIPOVI PODATAKA, PROMENLJIVE, OPERATORI 3. KONTROLA TOKA PROGRAMA (GRANANJE I CIKLUSI) 4. FUNKCIJE 5. NIZOVI I STRUKTURE 6. KLASE, METODE I OBJEKTI 7. NASLEĐIVANJE, POLIMORFIZAM 8. DODATNE TEHNIKE OOP II WINDOWS PROGRAMIRANJE 9. OSNOVNO WINDOWS PROGRAMIRANJE (DUGMIĆI, LABELE, TEXTBOX, ...) 10. NAPREDNE WINDOWS FORME (MENIJI, TOOOLBAR, KREIRANJE APLIKACIJA I KONTROLA) III PRISTUP PODACIMA 11. RAD SA FAJLOVIMA 12. LINQ

1

Klasa predstavlja skup podataka i instrukcija koje se izvode na nekim podacima.0 koja je završena 12. Jscript. Pošto je naslednik C i C++ jezika. Web aplikacije.orijentisano programiranje (Klase. Metodi su ustvari podprogrami i oni mogu imati svojstva.. god. To je takva platforma na kojoj mogu raditi različite vrste aplikacija (Windows aplikacije. Objektno . NET Framework sadrži veliku biblioteku koda koji može da koristi klijentski jezik (kao što je C#) koristeći tehnike objektno-orijentisanog programiranja. Ova biblioteka se sastoji od različitih modula. Ovde se koriste termini kao što su funkcija (metoda) koja predstavlja kod programa koji se izvršava nad podacima.).Nastanak C# C# je jednostavan objektno-orijentisan programski jezik opšte namene.NET Framework? NET Framework je revulucionarna platofrma koju je kreirao Microsoft za razvoj aplikacija. Metodi se izvršavaju nad poljima koja su definisana u klasi. Ključne reči u C# abstract break char continue do event finally foreach in internal namespace operator params readonly as byte checked decimal double explicit fixed goto in (generic modifier) is new out private ref base case class default else extern float if int lock null out (generic modifier) protected return bool catch const delegate enum false for implicit interface long object override public sbyte 2 . dobio je ime sharp po inspiraciji muzičke notacije i znači da se napisana nota izvodi za pola koraka više. Fajlovi pisani u ovom jeziku imaju ekstenziju cs. događaje i konstruktore. drugi deo za mrežno programiranje. Poslednja verzija C# je 4. Podaci koji se definišu u klasi obično se nazivaju polja (fields). Prva verzija (C# 1. pa su se ubrzo pojavljivale nove verzije ovog programskog jezika. Razvio ga je Microsof tim koji je vodio Andres Hejlsberg.. čak i ranije verzije Cobol. objekti i metode) Objekat je primerak (instanca) klase. Npr. kod napisan u C# se može kombinovati sa kodom iz Visual Basica.0) se pojavila 2001. C# je naprednija verzija C++ (C++++). Klasa je skup pravila koji određuju kako će se formirati neki objekat. Web servisi. Visual Basic. Šta je . pri čemu je moguće koristiti pojedine delove u zavisnosti od potrebe. Aprila 2010. Svaka klasa ima svoje članove i to su podaci i kod. Neki moduli su podeljeni u neke specifičnije pod module. Takođe je moguće da se kombinuju pojedini delovi koda iz različitih programskih jezika.godine. neki moduli sadrže blokove za kreiranje windows aplikacija. Tako npr. NET Framework je dizajniran tako da može koristiti bilo koji programski jezik kao što su C++. a neki drui za Web razvoj.

Collections. System. namespace ConsoleApplication1 { class Program { static void Main(string[] args) { } } } 3 .Text.Linq. System. Potom se dobija sledeće: using using using using System. System. na kojoj se mogu odabrati ponuđene mogućnosti za formiranje novog projekta izborom opcije New Project ili otvaranje već postojećeg projekta izborom opcije Open Project.sealed static this typeof unsafe void short string throw uint ushort volatile sizeof struct true ulong using while stackalloc switch try unchecked virtual Kreiranje konzolnih aplikacija u Microsoft Visual C# 2010 Express Na slici 1 je prikazana startna strana. Zatim se u okviru panela Templates izabere Console Application. Slika 1. Izgled startnog prozora Microsoft Visual C# 2010 Express Pri kreiranju konzolne aplikacije izabere se opcija sa padajućeg menija File→New Project.Generic.

System. class Primer{ -definicija klase Primer.ReadKey().Collections. static void Main()-počinje glavni metod.Collections. Primer 2. Naravno.NET Framework. čiju biblioteku koristi C#). (Ukoliko je u padajućem meniju ne postoje ove opcije treba izabrati opciju Tools → Settings → Expert Settings).WriteLine("Prva aplikacija kod C# proogramiranja!"). pa se bira u okviru Online Template opcija Empty Project. dodeljuje mu se automatski ime CodeFile1. namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console. Početak klase počinje sa otvorenom vitičastom zagradom {. a završava se sa }. što znači da je statički i void .Text.Generic. Izrazi u C# se zvršavaju sa tačka-zarezom (. Ispisati tekst na ekranu. postoji mogućnost preimenovanja.). gde se izvršava program.Linq. System."). System.WriteLine("Jednostavan C# program.ne vraća vrednost.funkcija za unos nekog znaka sa tastature (za prekid rada programa) namespace Ovaj program se unosi izborom opcije New Project. using System. Napisati konzolnu aplikaciju za unos i sabiranje dva cela broja. a potom sa padajućeg menija Debug → Start Without Debugging. Takođe se koristi za kategorizaciju elemenata u . 4 . Ukoliko se fajl ne snimi pod nekim imenom./*traži se pritiskanje nekog tastera za prekid rada programa*/ } } } predstavlja . Na padajućem meniju se izabere opcija Build →Build Solution (F6). Za veće projekte može se kreirati sopstveni namespaces. Console.NET Framework.Da bi aplikacija bilo šta radila potrebno je dodati bar jednu liniju koda ispod glavne funkcije static void Main(string[] args). using using using using System. using using using using System. System.ReadKey(). Console. System. U kombinaciji se kompajleru govori da je WriteLine() članica Console klase. namespace je deklarisan za kod aplikacije koja se u ovom slučaju naziva ConsoleApplication1. Pri izvršavanju aplikacije pojaviće se u komand propmptu tekstualna poruka: Jednostavan C# program. . -WriteLine() je funkcija koji kao rezultat vraća string koji mu je prosleđen.Text. Console.Linq.podržava konzolni I/O. System.cs.NET način da se kod i njegov sadržaj jedinstveno identifikuju. Primer 1.-predstavlja korišćenje System namespace (odnosi se na biblioteku klasa . Ovaj metod počinje sa static.Generic. Console.

WriteLine("Zdravo {0}!".WriteLine("Unesi drugi broj"). System. string2 = Console. using using using using System.WriteLine("Razlika {0} i {1} je {2}.Parse(string2). prviBroj + drugiBroj).WriteLine("Unesi prvi broj:").Parse(string1). rezultat.WriteLine("Uneti prvi broj "). Komentari za blok instrukcija se pišu tako što počinju sa "/*" nakon čega sledi tekst komentara. drugi. string string1./* sa metodom ReadLine() se unosi prvi string koji ne stoji kao argument*/ Console.WriteLine("Zbir broja {0} i {1} je {2}.ReadLine().ToDouble(Console. System./*sa {0}.". Ukoliko se komenar piše u jednom redu.Linq. Console. Komentari u C# su obično obojeni zeleno. a završavaju se sa"*/".ReadLine()).ReadLine(). korisnickoIme = Console. namespace ConsoleApplication1 { class Program { static void Main(string[] args) { double prviBroj. Primena komentara u konzolnoj aplikciji.WriteLine("Unesi svoje ime:"). string1 = Console. Primer 3.WriteLine("Uneti drugi broj ").Collections. Osnovna njihova namena je da objasne deo koda koji se nalazi u toj liniji.ReadLine()). } } } Komentari Komentari se koriste da bi aplikaciju razumeli oni koji ne znaju šta taj program radi. drugi = int. {1} i {2} su predstavljena mesta za tri promenljive*/ Console. drugiBroj. Console. prvi = int. Zbog toga se koriste komentari za blokove ili linijski komentari.//realne promenljive string korisnickoIme. pa se zato nazivaju linijski komentari.ToDouble(Console. drugiBroj.Generic./* {0} oznacava mesto gde ce se stampati sadržaj promenljive korisnickoIme*/ Console. on počinje sa "//" a završava se sa enterom.ReadKey(). prviBroj = Convert. Console.".//string koji se unosi Console. Console. prviBroj.WriteLine("Rezultat sabiranja je: ").ReadLine().WriteLine(prvi + " + " + drugi + " = " + rezultat). drugiBroj = Convert. korisnickoIme). Ovakvi komentari se obično pišu u više redova. Može se odnositi na više linija koda ili na jednu liniju.namespace ConsoleApplication2 { class Program { static void Main(string[] args) { int prvi.Text. System. Console. Console. string2. 5 ./*konvertuje string u double tip */ Console. rezultat = prvi + drugi.

ReadKey(). Tabela 2.". long. int. float.koristi se u kombinaciji sa tri operanda (kondicionalni operator a:b?c) Konvertovanje promenljivih Tipovi konverzije promenljivih mogu biti: Implicitna konverzija-konverzija iz tipa I u tip II je moguća u svim slučajevima. float. i pravila izvođenja konverzije su jednostavna. double ili decimal byte short. prviBroj. prviBroj / drugiBroj). Console. drugiBroj. ushort. Console. double ili decimal 6 .drugiBroj). Eksplicitna konverzija-konverzija iz tipa I u tip II je moguća samo u određenim slučajevima ili su pravila za konverziju prilično komplikovana. Console.koriste se u kombinaciji sa dva operanda tenarni . prviBroj. drugiBroj. int.izvršavaju se na jednom operandu (promenljivoj) binarni . prviBroj . prviBroj % drugiBroj). Tipovi podataka u C# su dati u tabeli 1.drugiBroj. long. prviBroj * drugiBroj). Tabela 1.". Tipovi podataka u C# Tip Značenje bool Predstavlja true/false vrednosti byte 8-bitni pozitivna celobrojna vrednost char Znakovne vrednosti decimal Numerički tip vrednosti za finansijske obračune double Realne vrednosti dvostruke preciznosti float Realne vrednosti int Celobrojne vrednosti (32 bitne) long Celobrojne vrednosti većeg opsega (64 bitne) sbyte 8-bitna celobrojna označena (+ i -) vrednost short 16-bitna celobrojna vrednost uint Neoznačena celobrojna vrednost ulong Neoznačena celobrojna vrednost većeg opsega ushort Neoznačena celobrojna vrednost manjeg opsega Operatori mogu biti: unarni . double ili decimal short int. drugiBroj.". float. long. Console.WriteLine("Kolicnik {0} i {1} je {2}. prviBroj.WriteLine("Ostatak deljenja {0} i {1} je {2}. Implicitna konverzija tipova u C# Tip Konverzija sbyte short. uint. ulong. prviBroj. } } } Promenljive i tipovi podataka Promenljive se moraju na početku deklarisati pre upotreba.WriteLine("Proizvod {0} i {1} je {2}.

short. byte. double ili decimal long. ulong ili char sbyte. ulong ili char sbyte. uint. uint. int. uint. ushort. int. byte. short. ulong. byte. ulong. ulong ili char sbyte ili char sbyte. byte. float ili decimal sbyte. float. ulong. ushort. ulong. long. int. short. byte. byte. ushort. int. double ili decimal Tabela 3. float ili double 7 . double ili decimal double float. uint. char ili decimal sbyte. ushort. long. short ili char sbyte. short. uint. byte. ushort. short. ushort. short. int. uint. float. float. short. byte. long. ulong. long. ushort. long ili char sbyte. uint. ushort. double ili decimal long. Eksplicitna konverzija tipova u C# Tip Konverzija sbyte byte short ushort int uint long ulong char float double decimal byte. ulong.ushort int uint long char float ulong int. byte ili short sbyte. double ili decimal float. uint. long. ulong ili char sbyte. float. char. byte. char. ushort. double ili decimal ushort. uint. uint. int ili char sbyte. int.

On ima svoje prednosti i nedostatke. a nedostatak što se može dobiti kod koji je teško razumljiv.ToInt64(argument) argument konvertuje u long Convert. može se koristiti jednostruko grananje if (uslov) { // Nesto se radi } ili višestruko if (uslov1) { // Radi nešto } else { if (uslov2) { // Radi nešto drugo } else { if (uslov3) { // Radi nešto drugo } else { // Radi nešto drugo 8 .ToSingle(argument) argument konvertuje u float Convert. Funkcije u C# za eksplicitnu konverziju Funkcija Objašnjenje Convert. Programska linija se na neki način obeleži (slovima ili brojevima) i navede goto slovo/broj.ToByte(argument) argument konvertuje u byte Convert.ToInt32(argument) argument konvertuje u int Convert.ToInt16(argument) argument konvertuje u short Convert.ToDouble(argument) argument konvertuje u double Convert.ToDecimal(argument) argument konvertuje u decimal Convert.ToBoolean(argument) argument konvertuje u bool Convert.ToUInt64(argument) argument konvertuje u ulong Kontrola toka programa goto goto izraz se koristi kada je neophodno da se preskoči neki deo koda ili da se vrati na prethodni. Prednost je u jednostavnom prelasku sa jednog dela koda na drugi.ToUInt32(argument) argument konvertuje u uint Convert.ToSByte(argument) argument konvertuje u sbyte Convert. Uslovi (grananje) u programu Kao kod C programskog jezika.ToUInt16(argument) argument konvertuje u ushort Convert.ToChar(argument) argument konvertuje u char Convert.ToString(argument) argument konvertuje u string Convert.Tabela 4.

} Primer 4.Linq.WriteLine("Uneti broj do koga se vrsi sabiranje (odredjuje faktorijel) "). System. break. i++) { sum += i. using using using using System.} } } switch izraz switch (operand) { case operand1: kod za izvrsavanje.Collections. int fact = 1. for (int i = 1. iteracija) izraz. } Ciklusi for ciklus Opšti oblik for ciklusa je: for(inicijalizacija.Text. n = Convert. System. i <= n. iteracija) { niz izraza. Opšti oblik for ciklusa koji ima oblik izraza koji treba da se izvrše: for(inicijalizacija.Generic. . break. break. namespace ConsoleApplication1 { class MainClass { public static void Main() { int n.ReadLine()). Console. default: kod za izvrsavanje ako ni jedan uslov nije ispunjen.. break. case operand2: kod za izvrsavanje. uslov. case operandN: kod za izvrsavanje.ToInt32(Console.. // i je pomocna primenljiva fact *= i. Napisati konzolnu aplikaciju za unos broja i određivanje sume brojeva od 1 do unetog broja i faktorijela tog broja. sum = 0. System. } 9 . uslov.

using using using using System. while ciklus Ovaj ciklus se koristi u slučaju kada je nepoznat broj iteracija (ponavljanja) ciklusa.Collections. 10 . e. e--. do while ciklus do-while ciklus se mora izvršiti bar jednom. Console. n. Console.ToInt32(Console. int rezultat. Opšti oblik ovog ciklusa je: do { izrazi. Primer 5.n. e = i. System.} } } Console.WriteLine("Suma brojeva od 1 do {0} je {1} ".ReadLine()). } } } } } Console.ReadLine()).WriteLine("Uneti stepen koji se trazi "). broj = Convert. } while(uslov).Linq. n = Convert. Napisati konzolnu aplikaciju za unos nekog celog broja i ispisivanje stepena od 1 do n zadatog broja. sum).Text. while (e > 0) { rezultat *= broj.WriteLine(broj + " na " + i + " je " + rezultat). System. Console. broj.ToInt32(Console. Opšti oblik while ciklusa je: while(uslov) izraz. i < n. for (i = 0. namespace ConsoleApplication1 { class MainClass { public static void Main() { int i.WriteLine("Faktorijel je " + fact).WriteLine("Uneti broj ciji se stepen trazi "). i++) { rezultat = 1. System.Generic.

WriteLine("Uneti broj je: " + broj).WriteLine("Do koje vrednosti uloga zelite da dodjete?"). using using using using System. do { ulog *= kamatnaStopa. System.ReadLine()). do { sledecibroj = broj % 10. Console. ulog ce dostici {1}.Collections.". krajnjiUlog. System. System. System.WriteLine("Koliki je vas ulog u banci?").ToInt32(Console. namespace ConsoleApplication1 { class MainClass { public static void Main() { int broj. Napisati konzolnu aplikaciju na primeru proračuna broja godina do koje treba određeni ulog banke da naraste. namespace ConsoleApplication1 { class Program { static void Main(string[] args) { double ulog. System. krajnjiUlog = Convert.ReadLine()).Text. Console. } while (ulog < krajnjiUlog).Text.Write(sledecibroj). } } } Primer 7. Console.ToDouble(Console.ToDouble(Console.Collections.ToDouble(Console. Console. } while (broj > 0).Write("Broj u inverznom poretku je: ").ReadKey(). Console. kamatnaStopa = 1 + Convert.WriteLine("Kolika je kamatna stopa (u %)?").Generic. Console.Linq. ++ukupnoGodina. System. ulog).WriteLine("Uneti broj"). broj = broj / 10.WriteLine("Za {0} god.Linq.ReadLine()).Generic. kamatnaStopa. using using using using System. 11 .0. Console. Napisati konzolnu aplikaciju za unos celog broja i ispisivanje tog broja u inverznom poretku. broj = Convert. int ukupnoGodina = 0. Console. int sledecibroj.ReadLine()) / 100. Console.ukupnoGodina.Primer 6. ulog = Convert.

Ova funkcija kao rezultat vraća void ili int.: Primer 8. imenaGlumaca.Console.ReadKey(). } } } Funkcije Kada je reč o funkcijama prvo treba objasniti funkciju Main(). } Console. System.. namespace Ciklusi { class Program { static void Main(string[] args) { string[] imenaGlumaca = { "Matthew McConaughey". pa su moguće sledeće verzije ove funkcije: static static static static void Main() void Main(string[] args) int Main() int Main(string[] args) Opcionalni parametar args u Main() funkciji obezbeđuje način za dobijanje informacija izvan aplikacije. Console. "Al Pacino"}. Tako na 12 . Kod OOP funkcije se nazivaju metode.Collections. a može se uključiti string[] args parametar. } } } foreach ciklus foreach ciklus se koristi za adresiranje svakog elemena u nizu koristeći sledeću sintaksu: foreach (<osnovni tip> <ime> in <niz>) { može se koristi <ime> za svaki element } Ovaj ciklus ide kroz svaku promenljivu i postavlja je u promenljivu <ime>. Napisati konzolnu aplikaciju za primenu foreach ciklusa.Length). Ne mora se voditi računa koliko je elemenata u nizu npr.Text.WriteLine(). System. foreach (string imeGlumca in imenaGlumaca) { Console. System.WriteLine("Ovo su {0} moja omiljena glumca:". "Brus Willis". Funkcije u C# predstavljaju blokove koda koji se mogu izvršavati u bilo kom delu aplikacije.Linq. using using using using System.Generic. ali taj termin će se kasnije koristiti kod klasa.WriteLine(imeGlumca).

using using using using System. } 13 . a mogu biti sa ili bez argumenata. "Marko". Funkcije utiču na čitljivost koda.Text. Napisati konzolnu aplikaciju za formiranje funkcije Osoba(imena) i pozivanje funkcije u glavnom programu. Console. može se pozvati funkcija u bilo kom delu aplikacije. namespace FunkcijaZaIspisTeksta { class Program { //Definicija funkcije Pisi() static void Pisi() { Console.Linq.ReadKey(). System.ReadKey().primer. Napisati konzolnu aplikaciju za formiranje funkcije Pisi() i pozivanje funkcije u glavnom programu. Funkcija se poziva u glavnom programu navođenjem imena funkcije i eventualno prosleđivanjem parametara.Generic.Generic. System. } } } Primer 10. Primer 9. " + ime).WriteLine("Ovo je tekst"). Argumenti funkcije se navode u zaglavlju funkcije. System. namespace Funkcija { class Program { static void Main(string[] args) { Osoba("Ana"). Osoba("Marija". System. a dovoljno je samo jednom da se napiše. using using using using System.Collections. } static void Main(string[] args) { Pisi().//poziv funkcije Pisi() Console. } static void Osoba(params string[] imena) { foreach (string ime in imena) Console. System. Definicija i poziv funkcije Funkcije se mogu smestiti ili pre ili posle glavne funkcije Main(). ako se u traži ispis nekog teksta. "Nikola"). iza čega se dalje piše telo funkcije (ono što funkcija treba da uradi).Text.Linq.Collections. System.WriteLine("Hello.

} } 14 .

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->