Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 25

Uslovi i grananje

Motivacija
Vratimo se za trenutak na na prvi program Bilo bi dobro, da kada bi umjesto to samo

kae Hello World, program moe da kae Good Morning World ili Good Evening World, u zavisnosti od dijela dana U naem sledeem programu, uiniemo da program kae Good Morning World ako jo nije podne 12PM, a Good Evening World ako je podne ve prolo

Program
If (Clock.Hour < 12) Then TextWindow.WriteLine("Good Morning World") EndIf If (Clock.Hour >= 12) Then TextWindow.WriteLine("Good Evening World") EndIf

Rezultati
U zavisnosti od toga kada ste pokrenuli

program, vidjeete jedan od sledeih rezultata

Analiza
Analizirajmo prve tri linije koda Sigurno ste ve shvatili da ove linije govore

raunaru, da ako je Clock.Hour manje od 12, on odtampa Good Morning World Rijei If, Then i Endif su specijalne rijei koje raunar razumije, kada je program pokrenut Rije If je uvjek praena uslovom, u ovom sluaju (Clock.Hour<12) Zapamtite da su zagrade neophodne da bi raunar shvatio da se radi o ulosvu

Analiza
Uslov je praen sa Then i operacijom koju

treba izvriti Nakon operacije dolazi EndIf Ovo govori raunaru da je uslovno izvravanje zavreno

Operacije
Izmeu Then i EndIf, moe stajati vie od

jedne operacije, a raunar e ih sve izvriti ako je uslov ispravan (validan) Npr. moete napisati neto ovako:
If (Clock.Hour < 12) Then TextWindow.Write("Good Morning. ") TextWindow.WriteLine("How was breakfast?") EndIf

Else
U programu zapoetom u ovom poglavlju,

moete primjetiti da je drugi uslov na neki nain suvian Clock.Hour je ili manje od 12 ili nije Stoga, nije postojala stvarna potreba da radimo drugu provjeru U ovakvim situacijama, dvije if..then..endif naredbe, moemo zamijeniti sa samo jednom, koristei novu rije else

Else u naem programu


Ako bi izmijenili na program tako da koristi

else naredbu, izgledao bi ovako


If (Clock.Hour < 12) Then TextWindow.WriteLine("Good Morning World") Else TextWindow.WriteLine("Good Evening World") EndIf

Razliiti naini
Ovaj program e uraditi istu stvar kao i

prethodni, to nas dovodi do vane injenice koju moramo znati o programiranju:

programiranju, obino postoji vie naina da uradimo istu stv nekad jedan nain ima vie smisla od drugog. Izbor je ostavlj ogrameru. Kako budete pisali sve vie programa, i postajali s usniji, poeete da primjeujete razliite tehnike, kao i njihov ednosti i mane

Uvlaenje teksta
U svim primjerima raenim u ovom poglavlju,

moete primjetiti da su linije izmeu If, Else i EndIf uvuene Ovo uvlaenje nije neophodno Program e sasvim dobro razumjeti program i bez njih Meutim, one nam pomau da lake vidimo i shvatimo strukturu programa Stoga, uvijek je preporuljivo napraviti uvlaenje naredbi unutar takvih blokova

Parni i neparni
Sada kad smo nauili If..Then..Else..EndIf

naredbu, napiimo program koji, za unijeti broj vraa informaciju da li je paran ili neparan
TextWindow.Write("Enter a number: ") num = TextWindow.ReadNumber() remainder = Math.Remainder(num, 2) If (remainder = 0) Then TextWindow.WriteLine("The number is Even") Else TextWindow.WriteLine("The number is Odd")

Rezultat izvravanja programa


Kada pokrenete navedeni program, dobiete

rezultat u sledeem obliku:

Math.Remainder
U navedenom programu smo predstavili novu

korisnu operaciju, Math.Remainder Kao to vjerovatno predpostavljate, Math.Remainder e prvi broj podijeliti drugim, a zatim vratiti ostatak

Grananje
Kao to se sjeate, prilikom analize prvog

programa nauili smo da raunar u jednom trenutku obrauje jednu po jednu naredbu, i to po redosledu, odozgo ka dolje Ipak, postoji posebna naredba koja kae raunaru da zanemari redosled, i izvri skok na odreenu naredbu

Primjer
Primjer takve naredbe moemo da vidimo u

sledeem programu:
i=1 start: TextWindow.WriteLine(i) i=i+1 If (i < 25) Then Goto start EndIf

Rezultat

start:
U navedenom programu, promjenljivoj i smo

dodjelili vrijednost 1 Nakon toga smo dodali lnovu narebu koja se zavrava sa : Radi se o naredbi start: Ona se naziva labela oznaka. Labele su poput oznaenih taaka koje raunar razumije Labelu moete nazvati kako god elite,a vaem programu moete dodati proizvoljan broj labela, sve dok je svaka od njih razliito

i=i+1
Jo jedna zanimljiva naredba ovdje je i=i+1 Ovo govori raunaru da promjenljivu i sabere

sa brojem 1, i novu vrijednost smjesti natrag u promjenljivu i Dakle, ako je vrijednost promjenljive i prije ove naredbe bila 1, nakon izvravanja naredbe e biti 2

Goto
I konano,
If (i < 25) Then Goto start EndIf

Ovaj dio govori raunaru da ako je vrijednost

promjenljive i manja od 25, skoi do labele start i odatle nastavi izvravanje naredbe

Beskonano izvravanje
Koristei Goto naredbu, moete rei

raunaru da neto ponovi koliko god puta elite Naprimjer, moete uzeti program koji provjerava da li je broj paran ili neparan, i izmijeniti ga na taj nain da se izvrava zauvijek Program moete zasustaviti klikom na Close(X) dugme u gornjem desnom uglu konzole

Primjer
begin: TextWindow.Write("Enter a number: ") num = TextWindow.ReadNumber() remainder = Math.Remainder(num, 2) If (remainder = 0) Then TextWindow.WriteLine("The number is Even") Else TextWindow.WriteLine("The number is Odd") EndIf Goto begin

Rezultat

Zadaci
Uitati broj a. Ako je uitani broj a vei od

nule napisati "POZITIVAN Provjeriti da li je od dva uitana broja prvi djeljiv sa drugim. Uitati broj x. Ako je jednak nuli ispisati ne postoji reciprona vrijednost inae izraunati i ispisati njegovu recipronu vrijednost (y = 1 / x). Ispisati znak upisanog broja prema izrazu:.

Zadaci
Od tri upisana broja (a, b, c) sa tastature nai

najvei. Provjeriti da li je upisani broj pozitivan, negativan ili nula. Napisati program za izraunavanje vrijednosti y prema izrazu

You might also like