Uvod u programiranje – Microsoft Small Basic 1. dio

gordana_sokol

Gordana Sokol

Preuzimanje i instalacija

Small Basic je programski jezik iz Microsoftove radionice čija je prva verzija izašla u jesen 2008. godine. Od tada je ovaj „mali – veliki“ prošao mnoga sređivanja, popravljanja i dodavanja novih naredbi tako da je najnovija verzija 0.9. Možete je besplatno preuzeti sa stranica Microsoftovog download centra.

Nakon što u svom pregledniku otvorite mrežnu stranicu Microsoftovog Download centra, kliknite na poveznicu Download. Otvorit će se dijaloški okvir za preuzimanje datoteke u kojemu možete odabrati pokretanje datoteke ili spremanje na tvrdi disk svojeg računala. U oba slučaja će slijediti postupak preuzimanja datoteke. Nakon preuzimanja pokrenite postupak instalacije. Ukoliko ste datoteku spremili na računalo, pokrenite je dvostrukim klikom na datoteku SmallBasic.msi, a inače klikom na gumb Pokreni u dijaloškom okviru sigurnosnog upozorenja preglednika Internet Explorera. Pokrenut će se Microsoft Small Basic Setup pomoću kojeg ćete u nekoliko koraka instalirati ovaj programski jezik. Želite li Small Basic na nekom drugom od ponuđenih jezika, u dijaloškom okviru Custom Setup iz padajućeg popisa odaberite željeni jezični paket i nastavite s instalacijom.

Postupak preuzimanja i instalacije možete pogledati u videoisječku.

Nakon uspješnog preuzimanja i instalacije, Small Basic pokrećemo odabirom Start > Svi programi > Small Basic > Microsoft Small Basic.

Napomena: Slike za ovaj članak rađene su u neslužbenoj hrvatskoj inačici Small Basica. Nadamo se da će ona biti dostupna za preuzimanje s novom verzijom Small Basica.

Radno okruženje Small Basica

Mnogi ga hvale, neki ga kude, no naše je mišljenje da je idealan za djecu osnovnoškolskog uzrasta koja kreću s prvim koracima u programiranju.

Radno okruženje Small Basica sastoji se od tri osnovna dijela: alatne trake, okna za upis naredbi tzv. editora te radne površine.

Prilikom pisanja naredbi najprije ćete uočiti pomoć (Intellisense) koja vam predlaže naredbe i istovremeno u desnom dijelu prozora pokazuje detaljniji opis svake od njih. Po popisu predloženih naredbi lako se pomičete strelicama, a kad nađete pravu, dovoljno je pritisnuti tipku Enter i ona će se nalaziti u oknu za upis naredbi. Nakon što završite s pisanjem prvog dijela naredbe i stavite znak točke, Intellisense će odmah ponuditi naredbe koje pripadaju u tu grupu, a u desnom dijelu prozora vidjet ćete koje je vrijednosti potrebno zadati uz pojedinu naredbu.

slika14 
Intellisense – uvijek dobrodošla pomoć

Želite li odmah upoznati grupe naredbi koje možete koristiti u Small Basicu, potražite ih na stranicama Small Basic API Reference.

slika15_alatna traka

Alatna traka je izuzetno jednostavna i podijeljena u nekoliko grupa. U grupi Datoteka nalaze se naredbe za stvaranje novog programa Novo (New), otvaranje programa Otvori (Open), spremanje Spremi i Spremi kao (Save i Save As).U grupi Mreža nalaze se naredbe Objavi (Publish) za objavljivanje programa na mreži te Uvesti (Import) za preuzimanje nečijeg programa s mreže. Nadalje, u grupi Međuspremnik nalaze se uobičajene naredbe za kopiranje, rezanje, lijepljenje, poništavanje i ponavljanje radnji. U posljednjoj se grupi nalaze naredba za pokretanje Pokreni (F5) (Run, (F5)) i naredba Graduate koja će vaš program napisan u Small Basicu izvesti u Microsoft Visual Basicu.

slika16_graduate

Nakon što smo upoznali radno okruženje ovog programa, možemo krenuti u avanturu otkrivanja velikih mogućnosti „malog“ Basica.

O programiranju

Prije nego krenemo s ozbiljnim programiranjem, objasnit ćemo nekoliko osnovnih pojmova. Što je, u stvari, program? Program je skup naredbi koje računalu govore što od njega očekujemo, odnosno što računalo točno mora učiniti. Kako bi računalo razumjelo što se od njega očekuje, naredbe moraju biti napisane na njemu razumljivom jeziku, takozvanom programskom jeziku. Small Basic je jedan od programskih jezika koje računalo razumije.

Program napisan u Small Basicu sastoji se od brojnih naredbi koje zapisujemo svaku u njen red, a svaka od njih ima točno definiranu sintaksu. Za razliku od starije programske braće poput QBasica, Pascala, C++ i sl., Small Basic pruža trenutnu pomoć kod pisanja naredbi, tzv. Intellisense. Stoga nije potrebno pamtiti potpune nazive svih naredbi, već će biti dovoljno znati prvih nekoliko slova kojima započinje naredba, a Intellisense će se pobrinuti za ostalo.

Naredbe za ispis podataka

U upoznavanje naredbi najlogičnije je krenuti s naredbama za ispisivanje podataka. Stoga, ukoliko još slika17niste, pokrenite Small Basic i upišite sljedeći program:

TextWindow.WriteLine(”Ovo je moj prvi program”)

Prvi program

Radi se o vrlo jednostavnom programu koji sadrži samo jednu naredbu i ispisuje rečenicu ”Ovo je moj prvi program”. No, pogledamo li bolje ovu naredbu, lako ćemo uočiti da se ona slika18može rastaviti na tri manja dijela.

Tekstualni prozor s izlaznim rezultatima prvog programa

Prvi dio, TextWindow, označava da će se zadana naredba izvršiti u tekstualnom prozoru. Unutar ove klase možete koristiti mnoge naredbe. Jedna od njih je i naredba WriteLine koja ispisuje zadani tekst ili broj u tekstualnom prozoru te nakon završenog ispisa sljedeći ispis započinje u novom redu. Da biste ispisali tekst, potrebno ga je navesti unutar navodnih znakova, dok navodni znakovi nisu potrebni za ispis broja. Primjerice, naredba TextWindow.WriteLine(123) će ispisati broj 123.

Write je naredba vrlo slična naredbi WriteLine. Razlika između njih je u tome što Write sljedeći ispis započinje odmah nakon prethodnog, u istom retku.

Ove dvije naredbe možemo i kombinirati. Primjerice, želite li ispisati izraz poput „123+321=“ te nakon ispisa prijeći u novi red, morat ćete upotrijebiti sljedeće naredbe:

TextWindow.Write(123)
TextWindow.Write(“+”)
TextWindow.Write(321)
TextWindow.WriteLine(“=”)

Ovo je samo primjer kako možemo kombinirati naredbe Write i WriteLine. Isti izraz mnogo jednostavnije možemo ispisati i uz pomoć samo jedne WriteLine naredbe na sljedeći način: TextWindow.WriteLine(123 + “+” + 321 + “= “). Primijetite da smo ovdje upotrijebili kombinaciju ispisivanja brojeva koji ne trebaju biti navedeni unutar navodnih znakova i teksta koji se nalazi unutar znakova. Nadalje, Small Basic kao znak spajanja koristi znak + (plus) koji nije naveden unutar navodnih znakova.

Nakon naredbi za upis podataka logičkim slijedom potrebna nam je naredba pomoću koje ćemo očistiti tekstualni prozor – Clear koja se također nalazi među naredbama klase TextWindow.

Kako biste obrisali sav sadržaj koji ste ispisali u tekstualnom prozoru, dovoljno je da upišete naredbu: TextWindow.Clear().

Spremanje programa

Za spremanje programa koristimo naredbe s alatne trake Spremi i Spremi kao (Save i Save As). Naredbu Spremi upotrijebit ćemo kod prvog spremanja programa. Nakon što mišem kliknete na Spremi, otvorit će se dijaloški okvir slika19Spremi kao. U okviru Spremi u: odaberite mapu u koju ćete spremiti program, a u okviru Naziv datoteke: upišite naziv programa i kliknite na Spremi. Datoteke napisane u Small Basicu prepoznajemo po nastavku .sb. Ukoliko program želite naknadno spremiti na neko drugo mjesto ili mu samo promijeniti ime, upotrijebite naredbu Spremi kao.

Dijaloški okvir Spremi kao

Tekstovi i pozadine u boji

Kako bismo se još malo zabavili i poigrali sa Small Basicovim mogućnostima ispisa podataka, crno-bijelom svijetu dodat ćemo i malo boje. Imamo dvije mogućnosti:

  • promijeniti boju pozadine teksta ili
  • promijeniti boju samog teksta.

Naravno, ove dvije mogućnosti prema želji možemo i kombinirati. Kako bismo promijenili boju pozadine, upotrijebit ćemo naredbu iz klase TextWindow, BackgroundColor te joj pridružiti vrijednost boje koju želimo, primjerice žutu, odnosno Yellow. Naš program sada čine sljedeće naredbe:

TextWindow.BackgroundColor=”Yellow”
TextWindow.WriteLine(“Evo i malo boje!”)

Kao što smo već rekli, možemo promijeniti i boju teksta. U tu svrhu upotrijebit ćemo naredbu ForegroundColor koja se također nalazi u klasi TextWindow. Naredba koja mijenja boju teksta u crveno ima oblik: TextWindow.ForegroundColor=”Red”. U našem primjeru upotrijebili smo crvenu boju (Red).

U obje naredbe važno je da naredbi znakom jednakosti pridružimo vrijednost boje, engleski naziv naveden unutar navodnih znakova. Naredbe kojima mijenjamo boju teksta i pozadine možemo upotrebljavati kombinirano unutar jednog programa. Programske kodove primjera nekoliko takvih programa pogledajte na sljedećim poveznicama:

Primjer 1. (.sb / .exe)
Primjer 2. (.sb / .exe)
Primjer 3. (.sb / .exe)
Primjer 14. (.sb / .exe)

Napomena: Spremite primjere na svoje računalo pa ih otvorite pomoću Small Basica.

Kodovi programa u Small Basicu i Kodovi programa Word dokument.

Nazive boja koje možemo upotrijebiti za tekst i pozadine nalaze se u sljedećoj tablici.

Black

Blue

Cyan

Gray

Green

Magenta

Red

White

Yellow

DarkBlue

DarkCyan

DarkGray

DarkGreen

DarkMagenta

DarkRed

DarkYellow

Naslov tekstualnog prozora i još neke sitnice

U prethodnim primjerima upotrijebili smo još dvije naredbe iz klase TextWindow. Riječ je o naredbi Title pomoću koje ćemo našem tekstualnom prozoru promijeniti naslov. Za zadavanje naslova tekstualnom prozoru upotrijebite naredbu TextWindow.Title te joj pridodajte neki tekst pomoću znaka jednakosti i navodnih znakova na sljedeći način: TextWindow.Title=”Naslov prozora”.

Druga naredba je PauseWithoutMessage() koja će prilikom izvođenja programa sakriti tekst Press any key to continue… koji se ispisuje na dnu tekstualnog okvira, sve dok korisnik ne pritisne neku tipku.

I na kraju ovog dijela još jedna sitnica. Prilikom pisanja programa vrlo često ćete imati potrebu da u sam kôd programa ubacite neki komentar, primjerice objašnjenje neke naredbe ili objašnjenje što i kako radi sljedeći dio programskog koda. Upravo ovakve komentare možete pronaći i u našim primjerima programa. Prepoznat ćete ih po ukošenim slovima zelene boje i jednostrukom navodniku na početku retka. Jednostruki navodnik Small Basicu naznačuje da se radi o nečemu što nije dio programskog koda i što može preskočiti prilikom izvršenja programa.

Rad s varijablama i grananja programa – Microsoft Small Basic 2. dio

gordana_sokol

Gordana Sokol

Upisivanje podataka i rad s varijablama

Programima pravu čar daje mogućnost interakcije s korisnicima. Da bismo to mogli postići, trebamo upotrijebiti varijable. Za razliku od mnogih drugih programskih jezika, u Small Basicu nije potrebno deklarirati varijable, nego samo postaviti njihovu vrijednost što ga čini vrlo zgodnim za početnike u programiranju.

U nastavku ćemo upoznati naredbe koje omogućuju upis podataka s tipkovnice, tj. interakciju s korisnikom programa. Radi se o naredbama Read() i ReadNumber() koje se nalaze u klasi TextWindow.

Naredba Read() računalu zadaje da pričeka dok korisnik nešto ne upiše i pritisne tipku Enter. Dakle, naredba učitava tekst upisan u tekstualnom prozoru, a da bi prihvatila unos, treba pritisnuti tipku Enter. Kako radi ova naredba, pogledajte na jednom jednostavnom primjeru iz naše kolekcije Primjer 2.1 (.sb / .exe).

Želite li saznati koja je omiljena boja korisnika programa, možete ga zamoliti da upiše njeno ime te nakon toga ispisati poruku o kojoj se boji radi. Pogledajmo kako to možemo učiniti:

TextWindow.Write(“Upišite ime svoje omiljene boje: “)
ImeBoje = TextWindow.Read()
TextWindow.WriteLine(ImeBoje + ” je vaša omiljena boja!”)

slika2.1 Primjer programa u kojemu je upotrijebljena naredba Read()

Naredbu TextWindow.Write() nećemo posebno objašnjavati jer smo se njome bavili u 1. dijelu. Ono što je ovdje novina je druga linija programskog koda: ImeBoje = TextWindow.Read(). U ovoj programskoj liniji riječ ImeBoje predstavlja varijablu kojoj će se naredbom TextWindow.Read() pridodati tekst upisan u tekstualnom prozoru. Ukratko ćemo objasniti što je to varijabla. Varijabla je mjesto za privremeno pohranjivanje vrijednosti koje ćemo naknadno koristiti u programu, a imenujemo ih kako bismo ih lakše prepoznali. Prilikom imenovanja varijabli treba pripaziti na sljedeće:

  1. Ime varijable mora započeti slovom i ne smije se podudarati s ključnim riječima Small Basica poput If, For, Then i sl.
  2. Ime može biti sastavljeno od svih slova, znamenaka i donjih crtica.
  3. Može biti proizvoljne dužine i bilo bi poželjno da opisuje svoju namjeru, primjerice SumaBrojeva, PrviPribrojnik, AritmetičkaSredinaBrojeva i sl.

slika2.2Za razliku od većine drugih programskih jezika, u Small Basicu nije potrebno deklarirati varijable, već im je dovoljno samo postaviti vrijednost, a u imenima je dozvoljeno korištenje dijakritičkih znakova. Zgodno je i da će nakon imenovanja Small Basic prepoznati varijablu i kod njene iduće upotrebe ponuditi njen automatski upis u okviru Intellisense 🙂. Stoga nemojte izbjegavati dulje nazive varijabli, ponekad je dobro da opišete namjenu varijable kako bi se i drugi korisnici lakše snašli u vašem programu.

Varijable na dohvatu ruke u pomoći koju pruža Intellisense

Pogledajte još jedan jednostavan primjer s upotrebom varijable za upis podataka, Primjer 2.2. (.sb / .exe)

Napomenut ćemo da i kod ispisivanja sadržaja u tekstualnom okviru možemo proizvoljno kombinirati tekst i vrijednosti varijable. Prilikom uređivanja ispisa valja pripaziti na to da tekst koji želite ispisati navodite unutar navodnih znakova, dok je za ispis vrijednosti varijable dovoljno navesti njeno ime. Kombinirate li ispis teksta i varijable zajedno, za spajanje upotrijebite znak “+”.

Osim s tekstom, u Small Basicu jednostavno radimo i s brojevima. Kao što smo u varijablu pohranjivali tekst, tako u nju možemo pohraniti i brojeve. Primjerice, želimo li zbrojiti brojeve 10 i 20, možemo jednostavno upisati:

zbroj = 10 + 20
TextWindow.WriteLine(zbroj)

No, varijable možemo upotrijebiti i na sljedeći način: najprije im pridružimo željenu vrijednost, a zatim ih koristimo prilikom zbrajanja:

prvi_pribrojnik = 10
drugi_pribrojnik = 20
zbroj = prvi_pribrojnik + drugi_pribrojnik
TextWindow.WriteLine(zbroj)

Uočite da u oba primjera brojevi nisu navedeni unutar navodnih znakova pa zaključujemo da su navodni znakovi potrebni samo kod ispisa teksta dok ih za brojeve ne trebamo. Nadalje, za računsku operaciju zbrajanja upotrijebili smo operator znak “+”. Slično tome, za oduzimanje ćemo upotrijebiti “-“, za množenje “*” a za dijeljenje znak “/”.

slika2.3Ovo su samo osnovne matematičke operacije. Nađete li se u situaciji da zatrebate neke složenije matematičke funkcije, potražite ih u klasi Math.

 

Napredne matematičke funkcije
možete pronaći u klasi Math

Budući da smo upoznali osnovne računske operacije koje koristi Small Basic, pogledajmo kako ćemo upisati brojeve te ih pridružiti nekoj varijabli. Upotrijebit ćemo naredbu ReadNumber() koja čeka da korisnik upiše broj i pritisne tipku Enter. Ukoliko korisnik pokuša upisati neki znak koji nije znamenka, program ga neće prihvatiti kao ulaznu vrijednost varijable. S ovako postavljenim vrijednostima varijabli možete izvoditi sve osnovne i napredne matematičke operacije.

slika2.4Kako izgleda program koji traži unos nekog broja te uneseni broj koristi u daljnjoj obradi, pogledajte u primjerima.

Primjer 2.3 (.sb / .exe)
Primjer 2.4 (.sb / .exe)
Primjer 2.5 (.sb / .exe)
Primjer 2.6 (.sb / .exe)
Primjer 2.7 (.sb / .exe)

 
Primjer programa – unos brojčane vrijednosti

Naredbe grananja

Sigurno ste već čuli za priču o mački i mišu, odnosno problemu kako mačku, koja se nalazi u malom kavezu, preseliti u veći kavez u kojem stanuje miš, a da mačka ne pojede miša. Zvuči komplicirano? No, kao i svaki drugi problem, i ovaj je moguće riješiti. Potrebno je samo zadovoljiti jedan osnovni uvjet: mačka i miš ni u jednom se trenutku ne smiju naći zajedno u istom kavezu. Baš kao i u svakodnevnom životu, i u programima se neke stvari događaju samo ako se ispune postavljeni uvjeti.

Svi dosadašnji programi koje smo napisali u Small Basicu izvršavali su naredbe redom kojim su bile navedene. Za rješavanje većine problema to neće biti dovoljno. U programiranju, kao i u svakodnevnom životu, neke će se naredbe izvršiti samo ako se ispune zadani uvjeti.

Naredbe pomoću kojih možemo kontrolirati tijek programa su one za grananje programa. U Small Basicu za grananje programa koristimo naredbu IF i koristit ćemo je kada, ovisno o postavljenom uvjetu, trebamo izvršiti određenu naredbu ili određeni niz naredbi.

Small Basic nudi dva oblika If…Then naredbe. Prvi oblik naredbe If…Then je sljedeći:

If (uvjet) Then
naredbe
EndIf.

Zadani uvjet mora biti logičkog tipa i smješten unutar zagrada, dok je odgovor na postavljeni uvjet ili istinit ili lažan. Ukoliko je postavljeni uvjet istinit, izvršit će se naredbe koje slijede iza Then i nastavit će se izvršavanje prve naredbe koja slijedi iza naredbe If…Then. Ukoliko uvjet nije istinit, prelazi se na izvršavanje sljedeće programske naredbe. Napomenut ćemo da svaka If naredba obavezno završava ključnom riječi EndIf.

Ovaj oblik If naredbe grafički možemo prikazati ovako:

slika2.5 slika2.6
                                                                                           Primjer jednostavne If …Then naredbe

slika2.7Primjer izlaznih rezultata

Pogledajmo kako to izgleda na primjeru programa za uspoređivanja dvaju brojeva. Program uspoređuje dva unesena broja, ispituje koji je od njih veći te ispisuje odgovarajuću poruku.

Kako bismo mogli uspoređivati brojeve, upotrijebit ćemo dvije varijable: prvi i drugi. Nakon što varijablama pridružimo vrijednosti, upotrijebit ćemo dvije If naredbe:

If (Prvi>Drugi) Then
TextWindow.WriteLine( Prvi +” > ” +Drugi)
EndIf
If (Prvi < Drugi) Then
TextWindow.WriteLine(Prvi +” < ” +Drugi)
EndIf

Prilikom ispitivanja uvjeta upotrijebili smo operatore uspoređivanja > i < . Ovo nisu jedini operatori jer, slično kao u matematici, u Small Basicu možemo upotrijebiti i ostale:

tablica

Naredbu If…Then mnogo češće ćemo upotrebljavati u obliku If…Then…Else, odnosno:

If (uvjet) Then
naredba_1
Else
naredba_2
EndIf

U ovom obliku izvršava se naredba_1 ukoliko je postavljeni uvjet istinit, odnosno naredba_2 ako je postavljeni uvjet lažan. Grafički je možemo prikazati na sljedeći način:

slika2.8  slika2.9
                                                                                               Primjer jedne If…Then…Else naredbe

Prethodni primjer možemo riješiti i pomoću jedne If…Then…Else naredbe na sljedeći način:

If (Prvi > Drugi) Then
   TextWindow.WriteLine( Prvi +” > ” +Drugi)
Else
   TextWindow.WriteLine(Prvi +” < ” +Drugi)
EndIf

Složena If naredba

Naš program ima jedan mali nedostatak. Što je s jednakim brojevima? Kako bismo riješili zadatak u potpunosti, morat ćemo provjeriti još jedan uvjet. No, umjesto da upotrijebimo još jednu zasebnu If naredbu, upotrijebit ćemo složeni If na sljedeći način:

slika2.10If (prvi > drugi) Then
   TextWindow.WriteLine( prvi +” > ” +drugi)
Else
   If (prvi < drugi) Then
    TextWindow.WriteLine(prvi +” < ” +drugi)
    Else
      TextWindow.WriteLine(prvi +” = ” +drugi)
    EndIf
EndIf

Primjer je riješen pomoću složene If naredbe

Još nekoliko primjera upotrebe If naredbe potražite u primjerima (Primjer 2.8. do Primjer 2.15.).

Primjer 2.8 (.sb / .exe)
Primjer 2.9 (.sb / .exe)
Primjer 2.10 (.sb / .exe)
Primjer 2.11 (.sb / .exe)
Primjer 2.12 (.sb / .exe)
Primjer 2.13 (.sb / .exe)
Primjer 2.14 (.sb / .exe)
Primjer 2.15 (.sb / .exe)

Napomenut ćemo da su u primjerima objašnjene i još neke naredbe iz klase Math i klase Clock kao i upotreba logičkih operatora.

Rješenje problema selidbe mačke i miša iz uvodnog primjera pogledajte u sljedećoj prezentaciji.

Programske petlje i potprogrami – Microsoft Small Basic 3.dio

gordana_sokol

Gordana Skol

slika3.1Dosad 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 brojeva, napisat ćemo:

For i = 1 To 20
     TextWindow.WriteLine(i)
EndFor

slika3.2U 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 (primjerice, od -1) upotrijebiti u zadacima kad želimo da računalo broji unatrag – recimo pri ispisivanju brojeva od najvećeg do najmanjeg.slika3.3

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 nslika3.4aredbe 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 bismo našli unutar tzv. beskonačne petlje.

Zadatak koji se izvodi beskonačno

Pogledajmo jednostavan primjer While petlje:

broj = 150
While (broj > 1)
         TextWindow.WriteLine(broj)
         broj = broj / 2
EndWhile

slika3.5Program 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.

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

Grafički prikaz While petlje

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

Primjer 3.1. (.sb / .exe)
Primjer 3.2. (.sb / .exe)
Primjer 3.3. (.sb / .exe)
Primjer 3.4. (.sb / .exe)
Primjer 3.5. (.sb / .exe)
Primjer 3.6. (.sb / .exe)
Primjer 3.7. (.sb / .exe)
Primjer 3.8. (.sb / .exe)

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.

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.

slika3.6

 

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.”)

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 slika3.7varijable 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. (.sb / .exe)
Primjer 3.10. (.sb / .exe)
Primjer 3.11. (.sb / .exe)
Primjer 3.12. (.sb / .exe)
Primjer 3.13. (.sb / .exe)
Primjer 3.14. (.sb / .exe)
Primjer 3.15. (.sb / .exe)

slika3.8Na 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.

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