You are on page 1of 31

Algoritmi

Bilo koji problem se moe rijeiti izvravanjem serije akcija u odreenom redosljedu. Akcije koje e se izvriti i redosljed u kojem e se to odvijati nazivamo algoritam.

Iskustvo pokazuje da je najtei dio rijeavanja programerskog problema na raunalu upravo razvijanje algoritma za rijeenje. Jednom kad je odreen ispravan algoritam, razvoj programa za sam alorgitam je poprilino jednostavan.

Sljedei primjer pokazuje korektan i nekorektan sljed dogaaja za algoritam kojim elimo opisati pokretanje automobila:

KOREKTAN SLIJED otkljuavanje automobila sjedanje u automobil paljenje motora otputanje rune konice pokretanje automobila zaustavljanje

NEKOREKTAN SLIJED otkljuavanje automobila sjedanje u automobil paljenje motora pokretanje automobila zaustavljanje otputanje rune konice

Je li toka unutar ili izvan poligona?

Pseudokod
Pseudokod je neoficijelan jezik koji pomae programerima u razvijanju algoritama. Pseudokod nije programerski jezik. Njegova svrha je rijeiti program prije pisanja u programerskom jeziku kao to je Visual Basic. Pseudokod se sastoji jedino od izvrnih naredbi onih koje se izvravaju kada program iz pseudokoda pretvorimo u Visual Basic i pokrenemo.

Skica programa, napisana u formi na nain da se lako moe pretovriti u pravi kod. Na primjer pseudokod za bubble sort moe se napisati na slijedei nain:

while not at end of list compare adjacent elements if second is greater than first switch them get next two elements if elements were switched repeat for entire list

Uvod u strukture kontrola


S Naredbe u programu se izvravaju jedna iza druge u slijedu kako su i napisane tj. s lijeva na desno, te odozgo prema dolje (slijedovno izvravanje). S Razliite naredbe omoguuju programeru da odredi izvravanje neke naredbe prije slijedee iz niza (prenos kontrole). Koritenje naredbe goto omoguuje prenos kontrole na neku od moguih destinacija u programu. S Cijeli program moe biti napisan i bez koritenja goto naredbe, pomou tri razliite strukture kontrole:
slijedovna struktura selekcijska struktura ponavljaka struktura

Dijagram toka S Dijagram toka je grafiko predstavljanje algoritma ili jednog njegovog dijela. S Crta se koritenjem simbola kao to su krug, pravokutnik, romb i oval koji su meusobno povezani strelicama toka. S Dijagram toka algoritma zapoinjemo sa ovalnim simbolom koji sadri rije Begin a zavravamo sa istim simbolom koji sadri rije End.
simbol veze simbol akcije

povecaj X za 2

x=x+2

strelica toka povecaj brojac za 1

brojac=brojac+1

Slijedovna struktura Slijedovna struktura je ugraena u Visual Basic. Ukoliko nije drugaije odreeno, raunalo izvrava naredbe Visual Basica jednu nakon druge slijedom kojim su i napisane.

Selekcijska struktura (struktura odluke) Potprogrami Visual Basica mogu ispitati uvjete te, ovisno o rezultatu ispitivanja, izvesti razliite operacije. Visual Basic osigurava tri tipa struktura odluke:
If / Then If / Then / Else Select Case

If / Then struktura izvrava odreeni izraz jedino u sluaju ako je ispitivani uvjet zadovoljen. If / Then struktura izvrava izraz ako je uvjet istinit (True), ili ga preskae ako je uvjet laan (False). Zbog toga to ili izvrava ili ignorira odreenu akciju nazivamo je i jedno-selekcijska struktura.

PRIMJER: If / Then selekcijska struktura

If je uspjeh studenta vei od ili jednak 60 Prikai Proao

pseudokod

1o If uspjeh >= 60 Then lblStatus.Caption = Proao 2o If uspjeh >= 60 Then lblStatus.Caption = Pao End If
simbol odluke uspjeh>=60 True Display Proao Visual Basic kod

dijagram toka

False

If / Then / Else struktura omoguuje programeru da odredi izvravanje razliitih izraza ovisno o tome dali je izraz True ili False.
PRIMJER: If / Then / Else selekcijska struktura

If je uspjeh studenta vei od ili jednak 60 Prikai Proao pseudokod Else Prikai Pao

If uspjeh >= 60 Then lblStatus.Caption = Proao Else lblStatus.Caption = Pao End If

Visual Basic kod

If/Then/Else strukturu nazivamo i dvo-selekcijska struktura jer izvrava razliite izraze za sluaj da je uvjet True, odnosno False.

dijagram toka False Prikai Pao uspjeh>=60 True Prikai Proao

Visual Basic sadri funkciju IIf koja zamijenjuje If/Then/Else strukturu. lblStatus.Caption=IIf(uspjeh >= 60,Proao,Pao)
Sintaksa

IIf (izraz, istinitdio, neistinitdio)

If/Then/Else struktura moe biti smjetena unutar druge If/Then/Else strukture te u tom sluaju kaemo da je ugnjedena.

If je uspjeh studenta vei od ili jednak 90 Prikai Odlian Else If je uspjeh studenta vei od ili jednak 80 Prikai Vrlo dobar Else If je uspjeh studenta vei od ili jednak 70 Prikai Dobar Else If je uspjeh studenta vei od ili jednak 60 Prikai Dovoljan Else Display Nedovoljan

pseudokod

If uspjeh >= 90 Then lblStudentUspjeh.Caption = Odlian Else Visual Basic kod If uspjeh >= 80 Then lblStudentUspjeh.Caption = Vrlo dobar Else If uspjeh >= 70 Then lblStudentUspjeh.Caption = Dobar Else If uspjeh >= 60 Then lblStudentUspjeh.Caption = Dovoljan Else lblStudentUspjeh.Caption = Nedovoljan End If End If End If End If

If/Then/ElseIf je poseban sluaj If/Then/Else strukture . Prikazani primjer je ucijelosti jednak prethodnom. If uspjeh >= 90 Then lblStudentUspjeh.Caption ElseIf uspjeh >= 80 Then lblStudentUspjeh.Caption ElseIf uspjeh >= 70 Then lblStudentUspjeh.Caption ElseIf uspjeh >= 60 Then lblStudentUspjeh.Caption Else lblStudentUspjeh.Caption End If

= Odlian = Vrlo dobar = Dobar = Dovoljan = Nedovoljan

Visual Basic osigurava funkciju Switch koja moe zamijeniti logiku viestrukih If/Then/Else struktura.
lblStudentUspjeh.Caption=Switch(uspjeh >= 90,Odlian, _ uspjeh >= 80, Vrlo dobar, _ uspjeh >= 70, Dobar, _ uspjeh >= 60, Dovoljan, _ uspjeh < 60, Nedovoljan)
Sintaksa

Switch(expr-1, value-1[, expr-2, value-2 )

Select Case viestruka selekcijska struktura je alternativa If/Then/Else strukturi za izvoenje izabranog bloka izraza izmeu viestrukih blokova. Struktura Select Case radi sa jednim tekstualnim izrazom koji se jednom procjenjuje, na vrhu strukture. Visual Basic zatim usporeuje rezultat tog izraza s vrijednostima svakog izraza Case unutar strukture. Ako postoji slaganje, izvodi se blok izraza pridruen tom izrazu Case.
Sintaksa

Select Case tekstualni izraz [Case listaizraza1 [blok izraza1]] [Case listaizraza2 [blok izraza2]]
. .

[Case Else [blok izrazan]] End Select

Ako postoji vie vrijednosti u jednoj listi, te vrijednosti su razdvojene zarezima. Visual Basic izvrava izraze u bloku Case Else (koji je neobavezan) ako ni jedna od vrijednosti u listama izraza ne odgovara tekstualnom izrazu.
Select Case uspjeh Case uspjeh >= 90 lblStudentUspjeh.Caption Case uspjeh >= 80 lblStudentUspjeh.Caption Case uspjeh >= 70 lblStudentUspjeh.Caption Case uspjeh >= 60 lblStudentUspjeh.Caption Case Else lblStudentUspjeh.Caption End Select

= Odlian = Vrlo dobar = Dobar = Dovoljan = Nedovoljan

Case a False Case b

True

Case a action

True

Case b action

. .
False

False

Case n

True

Case n action

Ponavljaka struktura (struktura petlje) Ponavljake strukture omoguuju vam ponavljajue izvoenje jedne ili vie linija programskog koda. Visual Basic ukljuuje sljedee strukture petlje:
While / Wend Do / Loop For / Next For Each / Next

While / Wend struktura omoguuje ponavljajue izvoenje jedne ili vie linija programskog koda ovisno o stanju uvjeta.
PRIMJER: While / Wend ponavljaka struktura

While postoje stavke u listi za kupovinu Kupi sljedeu stavku i prekrii je u listi

pseudokod

Izraz postoje stavke u listi za kupovinu moe biti True ili False. Sve dok je izraz True, izvrava se akcija Kupi sljedeu stavku i prekrii je u listi.
Visual Basic kod

Dim brojac brojac = 0 While brojac < 20 brojac = brojac + 1 Wend

brojac < 20

True

brojac = brojac+1

False

dijagram toka

Do / Loop struktura se koristi za izvoenje bloka izraza neodreeni broj puta. Postoji nekoliko varijacija ove strukture, ali svaka ocjenjuje brojani uvjet kako bi odluila hoe li nastaviti izvoenje. Uvjet mora biti vrijednost ili izraz koji se moe ocijeniti kao False (nula) ili True (razliit od nule). Varijacije Do/Loop strukture:
Do While / Loop Do / Loop While Do Until / Loop Do / Loop Until

Do While/Loop ponavljaka struktura se ponaa slino While/Wend strukturi.


PRIMJER: Do While / Loop ponavljaka struktura

Dim brojac brojac = 0 Do While brojac < 20 brojac = brojac + 1 Loop

brojac < 20

True

brojac = brojac+1

False dijagram toka

Uvjet unutar tijela petlje mora poprimiti vrijednost False kako bi se prekinulo izvravanje petlje.

Do /Loop While ponavljaka struktura za razliku od Do While/Loop strukture prvo izvodi izraze a potom ispituje uvjet nakon svakog izvoenja.
PRIMJER: Do / Loop While ponavljaka struktura

Dim brojac brojac = 0 Do brojac = brojac + 1 Loop While brojac < 20

izraz

uvjet

True

Do/Loop While petlja garantira barem jedno izvoenje izraza.

False

Do Until/Loop ponavljaka struktura, za razliku od Do While/Loop strukture, testira izraz na vrijednost False.
PRIMJER: Do Until / Loop ponavljaka struktura

Dim brojac brojac = 0 Do Until brojac => 20 brojac = brojac + 1 Loop

brojac => 20

False

brojac = brojac + 1

True

Izraz unutar tijela petlje mora poprimiti vrijednost True kako bi se prekinulo izvravanje petlje.

Do /Loop Until ponavljaka struktura je slina Do Until/Loop strukturi, samo to se uvjet petlje ne testira na poetku ve na kraju tijela petlje.
PRIMJER: Do / Loop Until ponavljaka struktura

Dim brojac brojac = 0 Do brojac = brojac + 1 Loop Until brojac => 20

akcija

Izraz unutar tijela petlje mora poprimiti vrijednost True kako bi se prekinulo izvravanje petlje. Exit Do naredba kada se koristi u Do While/Loop, Do Loop/While, Do Until/Loop ili Do/Loop Until strukturi uzrokuje bezuvjetno naputanje strukture.

uvjet

False

True

For / Next ponavljaka struktura se koristi za ponavljanje izraza unutar petlje tono odreeni broj puta. Za razliku od petlji tipa Do/Loop, petlja ovog tipa koristi varijablu nazvanu counter (broja) kojoj se vrijednost poveava ili smanjuje kod svakog ponavljanja petlje.
PRIMJER: For / Next ponavljaka struktura

Dim brojac As Integer For brojac = 2 To 10 Step 2 Print brojac Ekvivalentna Do While/Loop struktura Next brojac Dim brojac As Integer brojac = 2 Do While brojac <= 10 Print brojac brojac = brojac + 2 Loop

For brojac = 2 To 20 Step 2


ime brojaa poetna vrijednost brojaa

korak brojaa

konana vrijednost brojaa

brojac = 2

Svi argumenti (broja, poetna vrijednost, konana vrijednost i korak) su brojani.


True

brojac <= 20

Print brojac

brojac = brojac + 2

False

Argument korak moe biti pozitivan ili negativan. Ako je korak negativan poetna vrijednost mora biti vea od konane. Ako je korak izostavljen, onda je njegova vrijednost 1.

Exit For naredba uzrokuje neposredan izlaz iz For/Next strukture.

Select Case viestruka selekcijska struktura je alternativa If/Then/Else strukturi za izvoenje izabranog bloka izraza izmeu viestrukih blokova. Struktura Select Case radi sa jednim tekstualnim izrazom koji se jednom procjenjuje, na vrhu strukture. Visual Basic zatim usporeuje rezultat tog izraza s vrijednostima svakog izraza Case unutar strukture. Ako postoji slaganje, izvodi se blok izraza pridruen tom izrazu Case.
Sintaksa

Select Case tekstualni izraz [Case listaizraza1 [blok izraza1]] [Case listaizraza2 [blok izraza2]]
. .

[Case Else [blok izrazan]] End Select

Ako postoji vie vrijednosti u jednoj listi, te vrijednosti su razdvojene zarezima. Visual Basic izvrava izraze u bloku Case Else (koji je neobavezan) ako ni jedna od vrijednosti u listama izraza ne odgovara tekstualnom izrazu.
Select Case uspjeh Case uspjeh >= 90 lblStudentUspjeh.Caption Case uspjeh >= 80 lblStudentUspjeh.Caption Case uspjeh >= 70 lblStudentUspjeh.Caption Case uspjeh >= 60 lblStudentUspjeh.Caption Case Else lblStudentUspjeh.Caption End Select

= Odlian = Vrlo dobar = Dobar = Dovoljan = Nedovoljan

Case a False Case b

True

Case a action

True

Case b action

. .
False

False

Case n

True

Case n action

Funkcija Choose je slina Select/Case strukturi.


Sintaksa

Choose(indeks, izbor-1[, izbor-2, ... [, izbor-n]])

Argument indeks sadri vrijednost od 1 do broja zadnjeg izbora Argument izbor vraa vrijednost iz liste nabrojenih izbora a prema vrijednosti argumenta indeks.
Print Choose(x,Crveno,uto,Zeleno)

Ako je x=1 prikazano je Crveno, za x=2 uto a za x=3 Zeleno.

You might also like