You are on page 1of 19

Vanja Lukovi C# Konzolne aplikacije Do funkcija 2016

OBJEKTNO ORIJENTISANO
PROGRAMIRANJE
C# programski jezik

Vanja Lukovi C# Konzolne aplikacije Do funkcija 2016


Nastanak C#
C# je jednostavan objektno-orijentisan programski jezik opte namene, koga je razvio
Microsoft tim. Prva verzija (C# 1.0) se pojavila 2001.godine, pa su se ubrzo pojavljivale nove
verzije ovog programskog jezika. Poto je naslednik C i C++ jezika, dobio je ime sharp po
inspiraciji muzike notacije i znai da se napisana nota izvodi za pola koraka vie. C# je
naprednija verzija C++ (C++++). Fajlovi pisani u ovom jeziku imaju ekstenziju cs.
ta je .NET Framework?
NET Framework je revulucionarna platforma koju je kreirao Microsoft za razvoj aplikacija.
To je 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#, C++, Visual Basic, Jscript. Takoe je mogue da se
kombinuju pojedini delovi koda iz razliitih programskih jezika.
NET Framework sadri veliku biblioteku klasa. Ova biblioteka se sastoji od razliitih modula,
koji se koriste u zavisnosti od potrebe. Tako npr. neki moduli sadre blokove za kreiranje
windows aplikacija, drugi deo za mreno programiranje, a neki drugi za Web razvoj. Neki
moduli su podeljeni u neke specifinije podmodule.
Rezervisane rei u C#
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

in (generic modifier)

int

interface

internal

is

lock

long

namespace

new

null

object

operator

out

out (generic modifier)

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

void

volatile

while

Vanja Lukovi C# Konzolne aplikacije Do funkcija 2016


Kreiranje konzolnih aplikacija u Microsoft Visual C# 2010 Express
Poetak rada poinje startovanjem Visual Studio ili Visual C# Express Edition. Start ->
Programs -> Microsoft Visual Studio 2010 Express -> Microsoft Visual C# 2010 Express.
Na slici 1 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 1. 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 dodeli ime
(Name) konzolne aplikacije, izabere lokacija (Location) na kojoj e aplikacija biti sauvana.

Vanja Lukovi C# Konzolne aplikacije Do funkcija 2016

Primer 1. Ispisati tekst na ekranu.


using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Prva aplikacija kod C# programiranja!");
Console.ReadKey();/*trai se pritiskanje nekog tastera
prekid rada programa*/
}
}
}

za

direktiva za definisanje prostora imena nae aplikacije i slui za njenu


jedinstvenu identifikaciju.
using direktive ukuivanja odgovarajuih .NET biblioteka klasa.
Console.WriteLine() je funkcijija lanica Console klase za ispis na ekran, nakon ega se
vri prelaenje u novi red.
Console.Write () - je funkcijija lanica Console klase za ispis na ekran.
Console.ReadKey() funkcija lanica Console klase, koja eka unos nekog znaka sa
tastature da bi program zavrio.
namespace

Komentari
Slue za objanjenja u toku pisanja programa. Pomou komentara program postaje itljiviji za
oveka, prevodiocu (kompajleru) je potpuno sve jedno da li postoji sto hiljada linija
komentara ili ni jedna jedina. Komentar poinje znakovima /* , a zavrava se znakovima */
pr: /* ovo je KOMENTAR u jednom
ili
u vie redova */

Ako je za komentar dovoljan jedan red teksta moemo koristiti znakove //


pr: // ovo je komentar u jednom redu

Promenljive i tipovi podataka


Promenljive se moraju na poetku deklarisati pre upotrebe. Tipovi podataka u C# su dati u
tabeli 1.

Vanja Lukovi C# Konzolne aplikacije Do funkcija 2016


Tabela 1. Tipovi podataka u C#
Tip
Znaenje
bool
true/false vrednosti
byte
8-bitna pozitivna celobrojna vrednost
char
znakovna vrednost
decimal
numeriki tip vrednosti za finansijske obraune
float
realna vrednost
double
realna vrednost dvostruke preciznosti
sbyte
celobrojna oznaena (8 bita)
short
celobrojna vrednost (16 bita)
int
celobrojna vrednost (32 bita)
long
celobrojna vrednost (64 bita)
ushort
Neoznaena celobrojna vrednost (16 bita)
uint
Neoznaena celobrojna vrednost (32 bita)
ulong
Neoznaena celobrojna vrednost veeg opsega (64 bita)
Operatori mogu biti:
unarni - izvravaju se na jednom operandu (promenljivoj)
binarni - koriste se u kombinaciji sa dva operanda
tenarni - koristi se u kombinaciji sa tri operanda (kondicionalni operator: uslov ? prvi_iz
raz: drugi_izraz;)
Konvertovanje promenljivih
Tipovi konverzije promenljivih mogu biti:
1) Implicitna konverzija je automatska konverzija koja se vri pri:
izraunavanju vrednosti izraza, kada kompajler vri automatsko usklaivanje
razliitih tipova podataka koji se koriste u izrazu, ako je to mogue.
pri dodeljivanju vrednosti promenljivoj vrednost se automatski konvertuje u tip
promenljive, ako je to mogue.
Promenljiva tipa I iji je skup moguih vrednosti podskup skupa moguih vrednosti tipa II
(a nikako obratno da se ne bi izgubile informacije i da bi se sauvala preciznost podataka)
se moe implicitno konvertovati u promenljivu tipa II. Implicitne konverzije se najee
primenjuju kod numerikih tipova podataka, prema tabeli 2.
Primer:
double x = 12.45;
int a = 10;
x = x + a;

Pri raunanju vrednosti izraza x+a dolazi do implicitne konverzije podatka a u tip double
(10.0) jer su promenljive x (double) i a (int) razliitog tipa.
Primer:
int x=15, y=4, a1, a2;
double b1, b2, z=15.0;

Vanja Lukovi C# Konzolne aplikacije Do funkcija 2016


a1 = x/y;
b1 = x/y;

Poto su promenljive x i y (int) istog tipa, vrednost izraza x/y je takoe int (3), pa je
vrednost promenljive a1 3, a vrednost promenljive b1 3.00 (pri dodeli celobrojne
vrednosti realnoj promenljivoj dolazi do implicitne konverzije).

b2 = z/y;
// a2 = z/y;

Pri izraunavanju vrednosti izraza z/y dolazi do implicitne konverzije promenljive y u tip
double, jer je promenljiva z tipa double a promenljiva y tipa int, pa je rezultat izraza 3.75.
Promenljiva b2 je tipa double pa je njena vrednost jednaka vrednosti izraza 3.75. U
ranijim verzijama programskog jezika C bilo je mogue promenljivoj celobrojnog tipa
dodeliti vrednost izraza koja je realan broj, kao u redu pod komentarom, pri emu je
promenjiva a2 tipa int dobijala vrednost 3 (implicitna konverzija vrednosti izraza 3.75 u
ceo broj). U programskom jeziku C# takva konverzija nije dozvoljena.
2) Eksplicitna konverzija - Eksplicitnom konverzijom programer od kompajlera zahteva
traenu konverziju. Eksplicitna konverzija se ostvaruje korienjem operatora cast ili
korienjem klase Convert. Operator cast koristimo tako to u zagradama navedemo
tip u koji elimo da konvertujemo vrednost izraza koji sledi za operatorom cast.
Korienjem eksplicitne konverzije moe doi do gubitka informacija, tj. do suavanja
podataka, kada je skup vrednosti u koji se podatak konvertuje podskup skupa vrednosti
podatka koji konvertujemo. Dozvoljene eksplicitne konverzije numerikih tipova
podataka, korienjem operatora cast, date su u tabeli 3.
Primer:
Posmatrajmo sledei kod:
int a;
double b=12.78;
a = b;

Pri pokuaju prevoenja ovog koda dobijamo sledeu poruku o greci:


Cannot implicitly convert type 'double' to 'int'

Da bi se ostvarila uspena dodela vrednosti tipa double promenljivoj tipa int, neophodno
je izvriti eksplicitnu konverziju na sledei nain:
a=(int)b;

Po izvravanju ove komande, promenljiva a dobija vrednost 12. Pri konverziji podatka
tipa double (float, decimal) u tip int, dolazi do odsecanja decimalnog dela podatka.
6

Vanja Lukovi C# Konzolne aplikacije Do funkcija 2016


Primer:
int a = 11, b = 4;
double x;
x = a/b;

Kako su promenljive a i b tipa int, pri raunanju vrednosti izraza a/b ne dolazi do implicitne
konverzije i vrednost izraza je ceo broj 2, ime je dolo do gubitka decimalnog dela rezultata
(2.75). Pri dodeli vrednosti izraza a/b tipa int promenljivoj x tipa double, dolazi do implicitne
konverzije (int u double) i vrednost promenljive x je 2.0. Ako u izrazu a/b upotrebimo
operator cast
x=(double)a/b;

onda se prvo izvrava eksplicitna konverzija vrednosti promenljive a u tip double. Sada su
operandi razliitog tipa pa se vri implicitna konverzija vrednosti promenljive b iz tipa int u
tip double. Posle izvrenih konverzija, rauna se vrednost izraza i dodeljuje promenljivoj x.
Po zavretku operacije dodele, vrednost promenljive x je 2.75. U ovom primeru korienjem
eksplicitne konverzije postigli smo preciznije raunanje vrednosti izraza. Dozvoljene
eksplicitne konverzije numerikih tipova podataka, korienjem operatora cast, date su u
tabeli 3.
Prevoenjem sledeeg koda
int x=212;
string s=(string)x;
string p="123";
int y=(int)p;

dobili bi izvetaj o sledeim grekama:


Cannot convert type 'int' to 'string'
Cannot convert type 'string' to 'int'

jer navedene eksplicitne konverzije nije mogue izvesti operatorom cast, prema taneli 3.
Navedene konverzije, i jo mnoge druge, mogue je obaviti korienjem statikih metoda
klase Convert kojima se podaci osnovnog tipa konvertuju u drugi osnovni tip. Svaki od
metoda konverzije poziva se tako to se navodi ime metoda, a zatim u zagradama izraz ija se
vrednost konvertuje. Korienjem metoda klase Convert prethodni primer moemo zapisati na
sledei nain:
int x = 212;
string s = Convert.ToString(x);
string p = "123";
int y = Convert.ToInt32(p);

Vanja Lukovi C# Konzolne aplikacije Do funkcija 2016


Konverzija pomou metoda klase Convert uspeno se izvrava samo kada je mogue podatak
jednog tipa konvertovati u drugi. Tako, eksplicitna konverzija Convert.ToInt32(p), iz
prethodnog primera, uspeno e se izvriti samo ako string p predstavlja ispravno zapisan ceo
broj u odgovarajuem opsegu.
Metodi klase Convert mogu se primenjivati na vrednosti razliitih tipova podataka. Na
primer, u pozivu metoda
Convert.ToString(vrednost)

vrednost moe biti tipa int, double, float, char


S obzirom na to da su sve poruke kojima Windows aplikacija komunicira sa korisnikom tekst
predstavljen tipom string, neophodno je na to laki nain sve tipove podataka, ako je to
mogue, prevesti u string. Zato sve strukture, kojima su predstavljeni osnovni tipovi
podataka, sadre metod ToString() kojim je omogueno prevoenje vrednosti osnovnog tipa u
string.
Primer:
int x = 212;
string s = x.ToString();
double a = -345.239801;
string p = a.ToString();

Osim navedenih, u programskom jeziku C# postoje i drugi naini konverzija koji se koriste
kod referentnih tipova, ali ih u ovom trenutku neemo razmatrati.
Tabela 2. Implicitna konverzija tipova u C#
Tip
Konverzija
sbyte

short, int, long, float, double ili decimal

byte

short, ushort, int, uint, long, ulong, float, double ili decimal

short

int, long, float, double ili decimal

ushort

int, uint, long, ulong, float, double ili decimal

int

long, float, double ili decimal

uint

long, ulong, float, double ili decimal

long

float, double ili decimal

char

ushort, int, uint, long, ulong, float, double ili decimal

float

double

ulong

float, double ili decimal

Tabela 3. Eksplicitna konverzija tipova u C#


Tip
Konverzija
sbyte

byte, ushort, uint, ulong ili char

byte

sbyte ili char

Vanja Lukovi C# Konzolne aplikacije Do funkcija 2016


short

sbyte, byte, ushort, uint, ulong ili char

ushort

sbyte, byte, short ili char

int

sbyte, byte, short, ushort, uint, ulong ili char

uint

sbyte, byte, short, ushort, int ili char

long

sbyte, byte, short, ushort, int, uint, ulong ili char

ulong

sbyte, byte, short, ushort, int, uint, long ili char

char

sbyte, byte ili short

float

sbyte, byte, short, ushort, int, uint, long, ulong, char ili decimal

double

sbyte, byte, short, ushort, int, uint, long, ulong, char, float ili decimal

decimal sbyte, byte, short, ushort, int, uint, long, ulong, char, float ili double

Tabela 4. Funkcije u C# za eksplicitnu konverziju


Funkcija
Objanjenje
Convert.ToBoolean(argument) argument konvertuje u bool
Convert.ToByte(argument)
argument konvertuje u byte
Convert.ToChar(argument)
argument konvertuje u char
Convert.ToDecimal(argument) argument konvertuje u decimal
Convert.ToSingle(argument)
argument konvertuje u float
Convert.ToDouble(argument)
argument konvertuje u double
Convert.ToSByte(argument)
argument konvertuje u sbyte
Convert.ToInt16(argument)
argument konvertuje u short
Convert.ToInt32(argument)
argument konvertuje u int
Convert.ToInt64(argument)
argument konvertuje u long
Convert.ToString(argument)
argument konvertuje u string
Convert.ToUInt16(argument)
argument konvertuje u ushort
Convert.ToUInt32(argument)
argument konvertuje u uint
Convert.ToUInt64(argument)
argument konvertuje u ulong

Vanja Lukovi C# Konzolne aplikacije Do funkcija 2016


Primer 2. Napisati konzolnu aplikaciju za unos i ispis svoga imena i prezimena.
using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string ime;
string prezime;
Console.WriteLine("Unesi svoje ime:");
ime = Console.ReadLine();
Console.WriteLine("Unesi svoje prezime:");
prezime = Console.ReadLine();
Console.WriteLine("Zdravo {0} {1}!", ime, prezime);
//ili isto to samo realizovano na drugaciji nacin:
Console.WriteLine("Zdravo " + ime + " " + prezime + "!");
Console.ReadKey();
}
}
}

Primer 3. Napisati konzolnu aplikaciju za unos i sabiranje, oduzimanje, deljenje i


nalazenje ostatka dva cela broja (realna broja).
using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int prvi, drugi, rezultatS, rezultatO, rezultatD, ostatak;
string string1, string2;
Console.WriteLine("\nUneti prvi broj ");
string1 = Console.ReadLine();
//konvertovanje unetog broja u int
prvi = Convert.ToInt32(string1); // ili prvi =
int.Parse(string1);
Console.WriteLine("\nUneti drugi broj ");
string2 = Console.ReadLine();

10

Vanja Lukovi C# Konzolne aplikacije Do funkcija 2016


//konvertovanje unetog broja u int
drugi = Convert.ToInt32(string2); //ili drugi =
int.Parse(string2);
//izracunavanje rezultata
rezultatS = prvi + drugi;
rezultatD = prvi / drugi;
rezultatO = prvi - drugi;
ostatak = prvi % drugi;
//ispis rezultata
Console.WriteLine("Rezultat sabiranja je: " + rezultatS); //ili
Console.WriteLine("Rezultat sabiranja je: {0}", rezultatS);
Console.WriteLine("Rezultat oduzimanja je: " + rezultatO);
//ili
Console.WriteLine("Rezultat oduzimanja je: {0}", rezultatO);
Console.WriteLine("Rezultat deljenja je: " + rezultatD); //ili
Console.WriteLine("Rezultat deljenja je: {0}", rezultatD);
Console.WriteLine("Ostatak deljenja je: " + ostatak); //ili
Console.WriteLine("Ostatak deljenja je: {0}", ostatak);
//ili
Console.WriteLine("Rezultat sabiranja je " + rezultatS +
"\nRezultat oduzimanja je " + rezultatO + "\nRezultat deljenja je " +
rezultatD + "\nOstatak je " + ostatak); //ili
//ili
Console.WriteLine("Rezultat sabiranja je {0}, rezultat
oduzimanja je {1}, rezultat deljenja je {2}, a ostatak je {3}", rezultatS,
rezultatO, rezultatD, ostatak); //ili
Console.ReadKey();
}
}
}

je funkcijija lanica Console klase za unos podataka preko tastature,


pri emu se podrazumeva da se podaci unose u jednom redu. Ova funkcija vraa string
vrednost unetog podatka.
Console.ReadLine()

je funkcijija lanica Console klase za unos podataka preko tastature, pri


emu podaci mogu biti uneti i iz vie redova. Ova funkcija vraa string vrednost unetog
podatka.
Console.Read ()

U funkciji Console.WriteLine, {0}, {1},... , oznaavaju mesta na kojima e se u tekstu


ispisati vrednost promenljivih, redom kako su navedene iza poruke koja se ispisuje na ekranu.
Na kraju ispisa prelazi se na novi red.

11

Vanja Lukovi C# Konzolne aplikacije Do funkcija 2016


Uslovi (grananje) u programu
Kao kod C programskog jezika, moe se koristiti jednostruko grananje
if (uslov)
{
// Nesto se radi
}

ili viestruko
if (uslov1)
{
// Radi neto
}
else
{
if (uslov2)
{
// Radi neto drugo
}
else
{
if (uslov3)
{
// Radi neto drugo
}
else
{
// Radi neto drugo
}
}
}

Primer 3. Napisati konzolnu aplikaciju u kojoj se na osnovu broja poena koje je student
osvojio na pismenom ispitu izracunava ocena prema sledecoj tabeli:
poeni
91..100
81.. 90
71.. 80
61.. 70
51.. 60
0.. 50
using
using
using
using

ocena
10(deset)
9 (devet)
8 (osam)
7 (sedam)
6 (est)
5 (pet)

System;
System.Collections.Generic;
System.Linq;
System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int poeni, ocena;
string korisnickoIme;

12

Vanja Lukovi C# Konzolne aplikacije Do funkcija 2016


Console.WriteLine("Unesi svoje ime:");
korisnickoIme = Console.ReadLine();
Console.WriteLine("Zdravo {0}!", korisnickoIme);
Console.WriteLine("\nUneti broj osvojenih poena:");
poeni = Convert.ToInt32(Console.ReadLine());
if (poeni < 0 || poeni > 100)
Console.WriteLine("Greska pri unosu broja poena!");
else if (poeni < 50)
{
ocena = 5;
Console.WriteLine("Ocena je: {0}", ocena);
}
else if (poeni < 61)
{
ocena = 6;
Console.WriteLine("Ocena je: {0}", ocena);
}
else if (poeni < 71)
{
ocena = 7;
Console.WriteLine("Ocena je: {0}", ocena);
}
else if (poeni < 81)
{
ocena = 8;
Console.WriteLine("Ocena je: {0}", ocena);
}
else if (poeni < 91)
{
ocena = 9;
Console.WriteLine("Ocena je: {0}", ocena);
}
else
{
ocena = 10;
Console.WriteLine("Ocena je: {0}", ocena);
}
Console.ReadKey();
}
}
}

switch izraz
switch (operand)
{
case operand1:
kod za izvrsavanje;
break;
case operand2:
kod za izvrsavanje;
break;
. . .
case operandN:

13

Vanja Lukovi C# Konzolne aplikacije Do funkcija 2016


kod za izvrsavanje;
break;
default:
kod za izvrsavanje ako ni jedan uslov nije ispunjen;
break;
}

Primer 4. Napisati konzolnu aplikaciju u kojoj se za uneti mesec ispisuje broj dana u
mesecu.
using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int mesec;
string korisnickoIme;
string prestupna;
Console.WriteLine("Unesi svoje ime:");
korisnickoIme = Console.ReadLine();
Console.WriteLine("Zdravo {0}!", korisnickoIme);
Console.WriteLine("Uneti redni broj meseca");
mesec = Convert.ToInt32(Console.ReadLine());
switch (mesec)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
Console.WriteLine("Ovaj mesec ima 31 dan");
break;
case 4:
case 6:
case 9:
case 11:
Console.WriteLine("Ovaj mesec ima 30 dana");
break;
case 2:
Console.WriteLine("Da li je godina prestupna
(da/ne)?");
prestupna = Console.ReadLine();
if (prestupna == "da")
Console.WriteLine("Posto je godina prestupna, ovaj
mesec ima 29 dana");
else
Console.WriteLine("Posto godina nije prestupna ovaj
mesec ima 28 dana");
break;

14

Vanja Lukovi C# Konzolne aplikacije Do funkcija 2016


default:
Console.WriteLine("Nekorektan broj meseca");
break;
}
Console.ReadKey();
}
}
}

Ciklusi
for ciklus
Opti oblik for ciklusa je:
for(inicijalizacija; uslov; iteracija)
izraz;

Opti oblik for ciklusa koji ima oblik izraza koji treba da se izvre:
for(inicijalizacija; uslov; iteracija)
{
niz izraza;
}

Primer 5. Napisati konzolnu aplikaciju za unos broja i odreivanje sume brojeva od 1


do unetog broja i faktorijela tog broja.
using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Text;

namespace ConsoleApplication1
{
class MainClass
{
public static void Main()
{
int n, sum = 0;
int fact = 1;
string korisnickoIme;
Console.WriteLine("Unesi svoje ime:");
korisnickoIme = Console.ReadLine();
Console.WriteLine("Zdravo {0}!", korisnickoIme);
Console.WriteLine("\nUneti broj do koga
(odredjuje faktorijel) ");
n = Convert.ToInt32(Console.ReadLine());

for (int i = 1; i <= n; i++)

15

se

vrsi

sabiranje

Vanja Lukovi C# Konzolne aplikacije Do funkcija 2016


{
sum += i; // i je pomocna primenljiva
fact *= i;
}
Console.WriteLine("Suma brojeva od 1 do {0} je: {1} ",n, sum);
Console.WriteLine("Faktorijel je: {0}", fact);
Console.ReadKey();
}
}
}

while ciklus
Ovaj ciklus se koristi u sluaju kada je nepoznat broj iteracija (ponavljanja) ciklusa. Opti
oblik while ciklusa je:
while(uslov) izraz;

Primer 6. Napisati konzolnu aplikaciju za unos nekog celog broja i ispisivanje stepena
od 1 do n zadatog broja.
using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Text;

namespace ConsoleApplication1
{
class MainClass
{
public static void Main()
{
int i, e, n, broj;
int rezultat;
string korisnickoIme;
Console.WriteLine("Unesi svoje ime:");
korisnickoIme = Console.ReadLine();
Console.WriteLine("Zdravo {0}!", korisnickoIme);
Console.WriteLine("\nUneti broj ciji se stepen trazi ");
broj = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Uneti stepen n do koga se trazi stepenovanje
zadatog broja");
n = Convert.ToInt32(Console.ReadLine());
for (i = 0; i < n; i++)
{
rezultat = 1;
e = i;
//stepenovanje brojeva od 1 do i
while (e > 0)
{
rezultat *= broj;

16

Vanja Lukovi C# Konzolne aplikacije Do funkcija 2016


e--;
}
Console.WriteLine(broj + " na " + i + " je " + rezultat);
}
Console.ReadKey();
}
}
}

do while ciklus
do-while ciklus se mora izvriti bar jednom. Opti oblik ovog ciklusa je:
do {
izrazi;
} while(uslov);

Primer 7. Napisati konzolnu aplikaciju za unos celog broja i ispisivanje tog broja u
inverznom poretku.
using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Text;

namespace ConsoleApplication1
{
class MainClass
{
public static void Main()
{
string korisnickoIme;
int broj;
int sledecaCifra;
Console.WriteLine("Unesi svoje ime:");
korisnickoIme = Console.ReadLine();
Console.WriteLine("Zdravo {0}!", korisnickoIme);
Console.WriteLine("\nUnesi neki viecifreni celi broj");
broj = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Uneti broj je: " + broj);
Console.Write("Broj u inverznom poretku je: ");
do
{
sledecaCifra = broj % 10;
Console.Write(sledecaCifra);
broj = broj / 10;
} while (broj > 0);

17

Vanja Lukovi C# Konzolne aplikacije Do funkcija 2016


Console.ReadKey();
}
}
}

foreach ciklus
foreach ciklus se koristi za adresiranje svakog elemena u nizu koristei sledeu sintaksu:
foreach (<osnovni tip elemenata niza> <prom> in <niz>)
{
koriscenje <prom> za pristup svakom elementu niza <niz>
}

Ovim ciklusom se postie iteracija kroz svaki pojedinaan element niza <niz>, ija vrednost
se dodeljuje promenljivoj prom, sve dok se ne doe do kraja niza. Na ovaj nain se elementi
niza mogu koristiti u programu, pri emu se ne mora voditi rauna o tome koliko ima
elemenata u nizu.
Primer 8. Napisati konzolnu aplikaciju za primenu foreach ciklusa.
using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Text;

namespace Ciklusi
{
class Program
{
static void Main(string[] args)
{
string[] imenaStudenataKursa = { "Milan Nedic", "Jovan Stojic",
"Dragana Avramovic" };
Console.WriteLine("Ovo su {0} studenata kursa objektno
orijentisanog programiranja u C#:", imenaStudenataKursa.Length);
foreach (string ime in imenaStudenataKursa)
{
Console.WriteLine(ime);
}
Console.ReadKey();
}
}
}

Enumerisani tipovi podataka


Enumerisani tipovi su takvi tipovi podataka koji predstavljaju simbolicke konstante, gde se
definie neki niz od n simolikih konstanti, koje redom uzimaju celobrojne vrednosti od 0 do
n-1. Definiu se sa kljunom rei enum nakon koga sledi deklaracija simbolikih konstanti.
Ukoliko se eli dodeliti neka druga vrednost sibolikih konstanti, eksplicitno se dodeljuje u
okviru definicije tako to se koristi operator =.

18

Vanja Lukovi C# Konzolne aplikacije Do funkcija 2016


Primer 9. Napisati konzolnu aplikaciju za definisanje enumerisanog tipa podatka
StraneSveta i implementaciju takvog tipa podatka u glavnoj metodi.
using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Text;

namespace EnumerisaniTipoviPodataka
{
enum StraneSveta
{
istok = 1,
zapad = 2,
sever = 3,
jug = 4
}
class Program
{
static void Main(string[] args)
{
StraneSveta mojaStrana = StraneSveta.istok;
Console.WriteLine("Strana sveta je {0}", mojaStrana);
}
}
}

19

You might also like