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.

Oglasi

O autoru Pogled kroz prozor

Digitalni časopis za obrazovne stručnjake, pišu ga učitelji i nastavnici.
Ovaj unos je objavljen u Programiranje i označen sa , , , . Bookmarkirajte stalnu vezu.