Professional Documents
Culture Documents
Small Basic 4 - Uslovi I Grananje
Small Basic 4 - 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
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
Razliiti naini
Ovaj program e uraditi istu stvar kao i
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")
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
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