Professional Documents
Culture Documents
sekvenca,
Sekvenca
Sekvenca je upravljaka struktura kod koje se linije koda koje je ine izvravaju
redom jedna za drugom po redosledu u kome se nalaze u bloku.U programskom
jeziku C# sekvenca se implementira korienjem bloka u kome se nalazi jedna ili
vie linija koda.
Primer: Upravljaka struktura Sekvenca
{
linija_koda_1
linija_koda_2
...
linija_koda_n
double x, y, z;
int i;
x=x+1;
y=4+x;
z=y-x;
i = 5;
Selekcija
U praksi je mnogo ei sluaj da se obrada ulaznih podataka znaajno razlikuje
zavisno od njihovih vrednosti. Selekcija ili grananje je upravljaka struktura koja
prua mogunost izbora zavisno od nekog uslova. U sluaju da je uslov zadovoljen
izvrava se jedan skup linija koda tj jedan blok odnosno ako uslov nije zadovoljen
onda se izvrava drugi skup linija koda tj drugi blok.
if
switch
if (izraz)
Naredba1
else
Naredba2
if ( x > y )
veciBroj = x;
else
vecibroj = y;
absx = -x;
if ( x < 0 )
absx = -x;
else
absx = x;
if ( x > y)
if ( x > z )
najveciBroj = x;
else
najveciBroj = z;
else
if ( y > z )
najveciBroj = y;
else
najveciBroj = z;
}
Postoje situacije gde su viestruka grananja takva da se izbor jedne od vie moguih
alternativa vri na osnovu neke vrednosti (vrednost neke promenjive ili pak izraza).
switch ( izraz )
...
default: B; break;
B1, B2, ..., BN i B su ili jednostavne naredbe ili neke upravljake strukture ili blokovi.
switch ( izraz )
...
}
Primer: switch sa break
switch( tekuci )
{
case 1: Text+=januar\n; break;
case 2: Text+=februar\n; break;
case 3: Text+=mart\n; break;
case 4: Text+=april\n; break;
case 5: Text+=maj\n; break;
case 6: Text+=jun\n; break;
case 7: Text+=jul\n; break;
case 8: Text+=avgust\n; break;
case 9: Text+=septembar\n; break;
case 10: Text+=oktobar\n; break;
case 11: Text+=novembar\n; break;
case 12: Text+=decembar;
}
Kod koji u promenljivu brojDana upisuje broj dana tekueg meseca odnosno 0 ako
tekui mesec nije korektno unet je:
switch( tekuci )
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
brojDana = 31; break;
case 2:
brojDana = 28; break;
case 4: case 6: case 9: case 11:
brojDana = 30; break;
default:
brojDana = 0; break;
}
Iteracija
Veoma esto se ukazuje potreba za ponavljanjem nekih naredbi vie puta tj. za
ponavljanjem nekog postupka u vie iteracija. Iteracije se realizuju upotrebom
upravljakih struktura koje se nazivaju petlje. Postoji vie vrsta petlji i one se mogu
klasifikovati po vie kriterijuma. Ako je kriterijum broj izvravanja tela petlje onda
postoje dve vrste petlji:
a) petlje sa konstantnim brojem prolaza (brojaka petlja),
b) petlje sa promenljivim brojem prolaza.
U programskom jeziku C# postoje dve vrste programskih petlji:
1. for - petlja,
2. foreach - petlja.
1. while - petlja,
2. do-while - petlja.
for - petlja
for - petlja je petlja sa konstantnim brojem prolaza i naziva se jo i brojaka petlja.
Opti oblik for petlje u programskom jeziku C# je:
for (<izraz1>; <izraz2>; <izraz3>)
<telo petlje>
gde:
<izraz1> - vri inicijalizaciju promenljivih koje se koriste u petlji
<izraz2> - predstavlja uslov na osnovu koga se odluuje da li e se telo petlje jo
izvravati ili se izvravanje petlje prekida
<izraz3> definie promenu vrednosti promenljivih koje se koriste u petlji.
Navedena promena se vri nakon svake iteracije
<telo petlje> telo petlje predstavlja jedna naredba, struktura ili blok.
foreach - petlja
Opti oblik foreach petlje je:
telo petlje
Primer
Neka je zadat celobrojni niz nekiNiz definisan kao:
Sledeom foreach petljom se prolazi kroz sve elemente niza nekiNiz i oni se
prikazuju na standardnom izlazu
element niza je = 1
element niza je = 5
element niza je = 2
element niza je = 7
element niza je = 3
while - petlja
while petlja ima opti oblik
while (<uslov>)
<telo petlje>
<uslov> - predstavlja logiki izraz koji moe biti taan ili netaan. Ako je uslov
zadovoljen onda se izvrava telo petlje. Nakon izvrenja poslednje naredbe u telu
petlje opet se proverava uslov. while petlja se zavrava onog trenutka kada uslov
vie nije zadovoljen. To znai da uslov tj logiki izraz sadri elemente koji se menjaju
u telu petlje. Na ovaj nain se obezbedjuje da ne dodejmo u situaciju da je petlje
beskonana tj da se nikad ne izlazi iz petlje.
Primer
int i = N;
int suma = N;
while ( i <= M)
{
suma = suma + i;
i++;
}
do while - petlja
do while petlja ima opti oblik
do
<telo petlje>
while (<uslov>)
<uslov> - predstavlja logiki izraz koji moe biti taan ili netaan. Ova petlja
funkcionie tako to se izvrava telo petlje a zatim se proverava uslov. Ako je uslov
ispunjen onda se opet izvrava telo petlje. U suprotnom se zavrava petlja.
Primer
int i = N;
int suma = 0;
do
{
suma = suma + i;
i++;
}
while (i <= M)
Naredbe skoka
Podrazumeva se da e se tela petlji izvravati kompletno onoliko puta koliko je to
zadato poetnim uslovima i ostalim karakteristikama petlje. Medjutim, u nekim
situacijama e se eleti da se delovi tela petlje preskoe tj. da se ne izvravaju i
da se nastavi sa sledeom iteracijom. Da bi se izmenio normalan tok izvravanja
neke upravljake strukturei mogu se koristiti sledee naredbe:
goto
break
continue
goto naredba
goto naredba se jo zove i naredbom bezuslovnog skoka. Ona omoguuje bezuslovni
skok na neku labelu koja je definisana u programu. Labela se u programu dobija
tako to se iza nekog identifikatora stavlja dvotaka npr. ovoJeLabela:
goto labela;
tj u naem primeru
goto ovoJeLabela;
Primer
public static void Main()
{
int ukupno = 0;
int indeks = 0;
ovoJeLabela:
indeks ++;
ukupno += indeks;
System.Console.WriteLine("indeks = " + indeks);
if (indeks < 5)
{
System.Console.WriteLine("goto ovoJeLabela");
goto ovoJeLabela;
}
break naredba
U nekim situacijama e biti potrebno prekinuti petlju tj njeno izvravanje i prelazak
na sledeu naredbu koja sledi iza petlje. Korienjem naredbe break moe se
prekinuti bilo koja vrsta petlje. U sledeem primeru e biti ilustrovano korienje
naredbe break za prekid for petlje.
Primer
if (indeks==5)
{
System.Console.WriteLine("prekid forpetlje");
break;
}
}
System.Console.WriteLine("ukupno=" +ukupno);
}
indeks = 1
indeks = 2
indeks = 3
indeks = 4
indeks = 5
prekid for petlje
ukupno = 15
continue naredba
Naredbom continue se ne prekida izvravanje petlje ve se samo prekida tekua
iteracija i nastavlja se sa sledeom iteracijom. Znai sve naredbe u telu petlje koje
dolaze posle naredbe continue se preskau i prelazi se na zaglavlje petlje tj
proveraavaju se uslovi za petak nove iteracije i ako su oni zadovoljeni ponovo se
izvrava telo petlje odpoetka tj poinje nova iteracija. Korienje naredbe continue
bie ilustrovano sledeim primerom.
Primer
indeks = 1
indeks = 2
indeks = 3
indeks = 4
indeks = 5
continue naredba
indeks = 7
indeks = 8
indeks = 9
indeks = 10
ukupno = 49
Zadatak 1:
Kreirati klasu Datum koja ima sledee lanove:
privatne atribute
dan
mesec
podrazumevani konstruktor
Zadatak 2
Napisati konzolnu aplikaciju koja omoguuje korisniku da unese neki datum u obliku
punog naziva dana i meseca (na primer: osmi mart) i da mu program kao povratnu
informaciju na ekranu ispie koji je to dan u tekuoj godini (na primer za ulaz drugi
februar program treba da ispie 33 (31 dan u januaru i jo dva u februaru). Ne
razmatrati problem prestupne godine. Program treba da omogui korisniku da
navedeni postupak ponovi proizvoljan broj puta sve dok ne unese kao datum string
"KRAJ". U tom sluaju se program zavrava i daje izvetaj o broju korektnih datuma
za koje je program korisniku odredio dan u godini. U sluaju da korisnik unese
datum koji je pogrean (osim datuma "KRAJ") program treba da vrati poruku o
greci.