Programske petlje i potprogrami – Microsoft Small Basic 3.dio

slika3.1

 

Dosad smo rješavali jednostavne probleme u kojima se svaki dio ponavljao samo jednom ili nijednom, ovisno o postavljenom uvjetu. No, u rješavanju programskih problema često je više puta potrebno ponoviti neki dio programa, odnosno slijed naredbi. Upisivanje slijeda naredbi koje se ponavljaju ponekad je vrlo dosadan i mukotrpan posao. Možemo ga olakšati upotrijebimo li naredbe koje omogućavaju ponavljanje slijeda naredbi određeni broj puta ili do ispunjenja zadanog uvjeta. Ovakve naredbe pronalazimo u svim programskim jezicima, a nazivamo ih petlje.

U Small Basicu ćemo vas upoznati s dvije petlje, naredbom For…EndFor i naredbom While…EndWhile.

 

For petlja

For petlju ćemo koristiti kada unaprijed znamo koliko puta treba izvršiti odgovarajući dio programa. Primjerice, ukoliko želimo ispisati prvih dvadeset prirodnih slika3.2brojeva, napisat ćemo:

For i = 1 To 20

     TextWindow.WriteLine(i)

EndFor

U petlji koristimo varijablu "i" kojoj dodjeljujemo početnu i završnu vrijednost. Prolaskom kroz petlju računalo će povećati vrijednost zadane varijable i izvršiti naredbe koje se nalaze između ključnih riječi For i EndFor. U našem slučaju računalo će ispisati redom brojeve od 1 do 20.

 

Primjer programa s For petljom

U mnogim slučajevima vrijednost varijable neće rasti uvijek za jedan. Primjerice, kod ispisivanja samo neparnih brojeva, vrijednost varijable "i" će se povećavati za 2. Kako bismo to postigli, For petlji treba dodati jedan dodatak, takozvani korak petlje. Korak petlje dodajemo na sljedeći način:


For i = 1 To 20 step 2

     TextWindow.WriteLine(i)

EndFor

Pomoću koraka petlje, ključna riječ Step, možemo odrediti bilo koje povećanje pa čak i negativno. Negativno ćemo povećanje slika3.3(primjerice, od -1) upotrijebiti u zadacima kad želimo da računalo broji unatrag – recimo pri ispisivanju brojeva od najvećeg do najmanjeg.

For i = 20 To 1 Step -1

     TextWindow.WriteLine(i)

EndFor

 

 

Primjer zadatka u kojemu se vrijednost varijable u For
petlji povećava za 2 i smanjuje za 1

While petlja

 

While petlju ćemo koristiti kada unaprijed nećemo znati koliko puta se treba izvršiti neka naredba ili niz naredbi. Ova će petlja izvršavati sve navedene naredbe dok je postavljeni uvjet istinit, odnosno završiti izvođenje naredbi i predati kontrolu sljedećoj naredbi kada postavljeni uvjet postane lažan. Važno je napomenuti da treba osigurati da uvjet postavljen unutar petlje jednom mora postati lažan kako se ne slika3.4bismo našli unutar tzv. beskonačne petlje.

Pogledajmo jednostavan primjer While petlje:

broj = 150

While (broj > 1)

TextWindow.WriteLine(broj)

broj = broj / 2

EndWhile

Zadatak koji se izvodi beskonačno

Program dijeli zadani broj s brojem 2 te ispisuje rezultat dijeljenja sve dok je rezultat veći od 1. Kao što vidimo iz primjera, postavljeni uvjet ispituje se na početku petlje i, ukoliko je uvjet istinit, izvršavaju se naredbe koje se nalaze između ključnih riječi While i EndWhile.

slika3.5 Grafički prikaz While petlje

Pomoću ove dvije petlje riješit ćemo mnoge matematičke, ali i druge zadatke poput određivanja djelitelja broja.

Još neke primjere u kojima se upotrebljavaju For i While petlja potražite među primjerima: Primjer 3.1. do Primjer 3.8..

Rad s potprogramima

 

Jedan od vrlo čestih načina rješavanja programskih problema, posebno onih kompliciranijih u kojima je potrebno više puta ponoviti isti niz naredbi, je dijeljenje problema na manje i jednostavnije probleme. Na ovaj način lakše ćemo riješiti vrlo složene probleme, izbjeći nepotrebna ponavljanja pisanja istih nizova naredbi, a naši programi će biti pregledni i razumljivi. Programi će biti pogodniji za daljnje uređivanje, testiranje i, ukoliko je potrebno, popravljanje.
Ove male i jednostavnije programe koji se upotrebljavaju u gotovo svim programskim jezicima nazivamo potprogramima. slika3.6

Potprogram je dio programskog koda koji se nalazi unutar većeg programa, a obično izvršava neku specifičnu zadaću i može se pozvati iz bilo kojeg dijela programa. U Small Basicu potprogram dolazi između ključnih riječi Sub i EndSub. Iza ključne riječi Sub dolazi naziv potprograma i pomoću naziva NazivPotprograma() pozivamo potprogram na izvršenje unutar glavnog programa. Napomenut ćemo da su zagrade „()“ potrebne kako bi računalo znalo da želimo izvršiti program.

Na slici pogledajte primjer programa u kojemu se koristi potprogram koji nam daje trenutno sistemsko vrijeme iskazano u obliku 19:34:45 (odnosno sat:minuta:sekunda).

Primjer upotrebe potprograma za ispisivanje sistemskog vremena

Pomoću ove naredbe ispisat ćemo vrijeme. Kako svaki potprogram započinjemo ključnom riječju Sub iza koje slijedi naziv potprograma dok potprogram završavamo ključnom riječju EndSub, naš potprogram će izgledati ovako:


Sub PrintTime

     TextWindow.Write(Clock.Time)

EndSub

Kako bismo potprogram pozvali na izvršenje unutar programa, dovoljno je napisati PrintTime(). U našem programu to izgleda ovako:

TextWindow.Write("Sada je točno: ")

PrintTime()

TextWindow.WriteLine(" sati.") slika3.7

Potprograme ćemo ponekad morati pozivati i unutar petlji. U tim slučajevima izvršavat će se isti niz naredbi, ali s drukčijim vrijednostima u jednoj ili više varijabli. Primjerice, neka potprogram pod nazivom ProvjeriPrim provjerava i utvrđuje je li zadani broj prost. Ako napišemo program koji korisniku omogućuje unos broja, pomoću tog potprograma možemo utvrditi je li uneseni broj prosti broj. Potprogram ProvjeriPrim prihvaća vrijednost varijable broj i pokušava je podijeliti s manjim brojevima. Ako nakon dijeljenja vrijednosti varijable broj s nekim brojem nema ostatka, vrijednost varijable broj nije prosti broj. Tada potprogram varijabli jePrim dodjeljuje vrijednost "False", laž, i završava izvođenje. Ako broj nije djeljiv niti s jednim manjim brojem, vrijednost varijable jePrim ostaje "True", istina, što znači da je broj prost. 

Jeste li upisali prim broj ili ne?

Rješenje ovog i mnoštva drugih primjera u kojima su upotrijebljeni potprogrami potražite među našim primjerima (Primjer 3.9 do Primjer3.15.).

 

Na kraju ćemo napomenuti da varijablama koje upotrebljavamo unutar programa možemo pristupiti i koristiti ih i u programu i u potprogramima. Primjerice, ukoliko unutar jednog programa u više navrata moramo pronaći veći od dva broja, za njihovo uspoređivanje upotrijebit ćemo potprogram u kojemu ćemo koristiti iste varijable. Primjer takvog programa pogledajte na slici.

slika3.8Program za uspoređivanje brojeva s primjerom izlaznog rezultata. Uočite da se varijabla max koristi i unutar i izvan potprograma.

O autoru Gordana Sokol

Diplomirani informatičar koji posljednjih šesnaest godina predaje informatiku u OŠ Tužno. Autorica sam niza udžbenika i zbirki iz informatike za osnovne i srednje škole. Autorica sam online tečaja "Logo – online učenje programiranja". Završila sam E-learning akademiju, smjer Tutoring.
Ovaj unos je objavljen u Nekategorizirano. Bookmarkirajte stalnu vezu.

Jedan odgovor na Programske petlje i potprogrami – Microsoft Small Basic 3.dio

  1. Povratni ping: Gogini mali savjeti ili za svakog ponešto… | Pogled kroz prozor

Odgovori

Popunite niže tražene podatke ili kliknite na neku od ikona za prijavu:

WordPress.com Logo

Ovaj komentar pišete koristeći vaš WordPress.com račun. Odjava / Izmijeni )

Twitter picture

Ovaj komentar pišete koristeći vaš Twitter račun. Odjava / Izmijeni )

Facebook slika

Ovaj komentar pišete koristeći vaš Facebook račun. Odjava / Izmijeni )

Google+ photo

Ovaj komentar pišete koristeći vaš Google+ račun. Odjava / Izmijeni )

Spajanje na %s