V začetnem primeru smo računalniku ukazali, naj izvede le eno izredno preprosto nalogo. V večini primerov pa to seveda ni dovolj. V praksi je tako, da mora računalnik izvesti več nalog, te pa so neprimerno zapletenejše od pisanja besedila. Prva stvar, na katero naletimo pri nekoliko kompleksnejših nalogah je ta, da si je treba nekatere informacije shraniti in z njimi kaj početi. Recimo, zapomniti si dve številki in ju sešteti, spremeniti kakšno besedilo in še kaj bi se našlo. Pri programiranju te stvari rešujemo z uvedbo spremenljivk. Spremenljivko si lahko zamislimo kot nekakšno posodo, v katero shranjujemo informacije, ki so običajno v obliki besedila ali številke.
Določanje spremenljivk je čisto preprosto. Damo ji ime, dodamo enačaj, za njim pa vpišemo to, kar naj vsebuje. Vzemimo, da bi radi v program vnesli dve spremenljivki, od katerih bi prva imela vrednost 8, druga pa 13. To naredimo tako, da vpišemo ukaza:
Stevilka1=8
Stevilka2=13
V Small Basicu sicer lahko uporabimo tudi naše znake, torej bi lahko spremenljivka nosila tudi ime Številka1, vendar zaradi poznejše možnosti izvoza v Visual Basic nekateri to odsvetujejo. Če zdaj zaženete program, se ne bo zgodilo nič, saj smo le definirali spremenljivke, z njimi pa nič počeli in tudi izpisa nismo ukazali. Zato dodajmo našemu programu še dve vrstici:
TextWindow.WriteLine(Stevilka1)
TextWindow.WriteLine(Stevilka2)
Če zdaj zaženemo program, vidimo, da se izpišeta številki 8 in 13 ena pod drugo, kar smo tudi ukazali. Kot vidite, v oklepaju ni narekovajev, kot je bilo to pri pozdravu Sloveniji. To pa zato, ker so narekovaji znak za besedilo. Če bi imeni spremenljivk dali v narekovaje, bi se namesto njihove vsebine, torej 8 in 13, izpisalo njihovo ime, torej Stevilka1 in Stevilka2.
Toda tudi izpis vrednosti obeh spremenljivk ni nekaj, kar bi bilo najkoristnejše. Koristno je, če bi recimo ti dve vrednosti sešteli. To naredimo tako, da dodamo še dve vrstici:
vsota=Stevilka1+Stevilka2
TextWindow.WriteLine(vsota)
Kaj smo naredili? Najprej smo definirali novo spremenljivko z imenom vsota, kot njeno vrednost pa določili vsoto vrednosti spremenljivk Stevilka1 in Stevilka2, nato pa ukazali, naj se ta spremenljivka, torej vsota, izpiše. Če zdaj program zaženemo, se bosta najprej izpisali vrednosti obeh spremenljivk, nato pa še njuna vsota.
Spremenljivke pa lahko vsebujejo tudi znake oziroma nize znakov, kot temu pravijo programerji. Če hočemo spremenljivki z imenom Pozdrav dati na primer vrednost Zdravo Ferdo, to naredimo tako, da niz postavimo v narekovaje. Vnos se tako glasi:
Pozdrav="Zdravo Ferdo"
Številke in besedilo lahko tudi kombiniramo v eno samo spremenljivko. Poskusite v naš programček dodati naslednje ukaze:
Rezultat="Seštevek "+Stevilka1+" in"+Stevilka2+" je "+vsota
TextWindow.WriteLine(Rezultat)
Kaj smo naredili? Pravzaprav smo kombinirali vso dosedanje »znanje« programiranja. Določili smo namreč novo spremenljivko, imenovano Rezultat, ki je dokaj kompleksna, saj vsebuje tako besedilo kot števila. Rekli smo ji, naj bo videti tako, da bo najprej pisalo besedilo Seštevek, nato vrednost spremenljivke Stevilka1 (torej8), nato bo besedica in, za njo spremenljivka Stevilka2 (13) nato beseda je, ki ji sledi spremenljivka vsota, ki je seštevek obeh števil, torej 21. Sledi ukaz, s katerim izpišemo to kompleksno spremenljivko. Ko program zaženemo, se zgodi to, da se najprej izpišejo samo števila in vsota, nato pa vrstica, kjer piše:
Seštevek 8 in 13 je 21
Pri vpisovanju besed so pomembni tudi presledki, zato jih postavite na prava mesta.
Včasih pa spremenljivke same niso čisto dovolj. Včasih bi bilo dobro, če bi spremenljivka lahko vsebovala več vrednosti. V ta namen v programiranju obstaja nekaj, čemur rečemo polje. Polje je videti kot navadna spremenljivka, le da je številka v njem zapisana v oglatem oklepaju. Uporabno polje na primer bi lahko vsebovalo vse mesece v letu:
Mesec[1]="Januar"
Mesec[2]="Februar"
Mesec[3]="Marec"
Mesec[4]="April"
Mesec[5]="Maj"
… in tako naprej.
S temi polji lahko delamo na različne načine. Naslednji program nam prikaže dva. Najprej na opisani način določimo polje Mesec, ki vsebuje vse mesece v letu. Nato vpišemo naslednje vrstice.
'Prvi način
TextWindow.WriteLine(Mesec[10])
'Drugi način
tekociMesec=Clock.Month
TextWindow.WriteLine(Mesec[tekociMesec])
V prvem načinu se bo izpisal pravilni mesec v letu le v primeru, če bo v oklepaju zapisan pravi mesec, torej če bo v njem pisalo Mesec[10]. Ta metoda sicer deluje, a je omejeno uporabna, saj moramo vsak mesec ročno spreminjati zaporedno številko.
Veliko bolj »inovativna« je druga metoda. Po njej določimo spremenljivko tekociMesec, ki prek ukaza Clock.Month ugotovi zaporedno številko meseca. Ukaz Clock namreč vrne trenutno uro in datum, če pa mu dodamo podukaz Month, bo upošteval le zaporedno številko meseca. To številko nato uporabi pri izpisu spremenljivke Mesec[ ]. Če torej program zaženemo oktobra, bo ukaz Clock.Month dal vrednost 10, ki se bo dodelila spremenljivki tekociMesec. To potem uporabimo pri izpisu, kar pomeni, da se bo vedno samodejno izpisal pravi mesec in ročni popravki niso potrebni.
Kar zadeva spremenljivke in polja, smo jih do zdaj le določali, nad njimi pa nismo izvajali posebnih operacij oziroma jih uporabljali. V ta namen uporabljamo funkcije. Funkcije so ukazi, ki računalniku povedo, kaj naj naredi. V prejšnjem primeru smo uporabili funkcijo Clock.Month da smo ukazali programu, naj iz računalnikovega sistema pridobi informacijo, kateri mesec v letu je. Funkcija je tudi TextWindow.WriteLine, kjer smo programu ukazali, naj v besedilno okno izpiše neko vrstico.
V Small Basicu so funkcije dokaj tesno povezane z objekti. Kaj pa so objekti? V ukazu Clock.Month je ukaz Clock objekt, Month pa funkcija, podobno pa velja tudi za ukaz TextWindow.WriteLine, kjer je TextWindow objekt, WriteLine pa funkcija tega objekta. Objekti imajo torej lahko več funkcij, oboje pa je med seboj ločeno s piko. V naslednjem programu bomo videli, kako pridobiti informacijo o določenem objektu in kako to informacijo spremeniti. Programček bo naslednji:
barva=TextWindow.BackgroundColor
TextWindow.WriteLine(barva)
TextWindow.BackgroundColor="white"
barva=TextWindow.BackgroundColor
TextWindow.WriteLine(barva)
Pa ga malo analizirajmo. Prva vrstica določa spremenljivko z imenom barva in ji dodeli ime trenutne barve ozadja (program pozna imena nekaterih barv, vendar v angleščini, na primer black, white in podobno). V drugi vrstici določimo, naj se ta spremenljivka izpiše. Nato določimo, naj bo ozadje belo (white), spremenljivki barva spet dodelimo ime ozadja, nato pa to izpišemo. Kaj dobimo kot rezultat? Najprej se izpiše barva trenutnega ozadja besedila, torej »black«, saj je ozadje privzeto črno. Nato se barva ozadja spremeni v belo (»white«), spremenljivki barva dodeli ta vrednost in na koncu izpiše.
Moj mikro, oktober 2011
Miha Gradišnik