Mikä on muuttuja

muokkaa

Pohjustetaan selitystä ensin esimerkin avulla:

1   A = 1
2
3   B = A + 2
4
5   Text 0, 0, B
6
7   DrawScreen
8
9   WaitKey

Sinisellä kirjoitetut lihavoidut sanat ovat muuttujia. Niiden ei tarvitse olla yhden merkin pituisia, mutta se selventänee esimerkkiä tässä vaiheessa. Muuttujat ovat muistipaikkoja. Niihin voi tallentaa lukuja ja niitä voi käyttää samalla tapaa kuin tavallisiakin lukuja.

  • Rivillä 1 tallennamme luvun 1 muuttujaan A
  • Rivillä 3 tallennamme arvon A+2 muuttujaan B. Eli todellisuudessa tallennetaan arvo 3.
  • Riveillä 5,7 ja 9 tulostetaan muuttujan arvo, piirretään ruutu ja odotetaan, että käyttäjä painaa jotain nappulaa, minkä jälkeen ohjelma sulkeutuu.

Siinäpä oli muuttujien perusajatus yksinkertaisuudessaan. Muuttujiin voi tallentaa esimerkiksi elämät (niitä vähennetään aina kun kuolee), pelaajan nimen, pelaajan nopeuden, asetuksia jne...

Otetaan vielä yksi esimerkki. Tässä vähennämme muuttujan arvoa yhdellä:

1    A = 10
2 
3    A = A - 1
4 
5    Text 0, 0, A
6 
7    DrawScreen
8 
9    WaitKey

Lue: "A on A miinus 1". Tästä pitäisi tulostua 9. Samalla tapaa voit lisätä muuttujan arvoa tietyllä määrällä.

Erilaisia muuttujia

muokkaa

Äskeisissä esimerkeissä meillä oli kokonaislukumuuttuja. Muuttujiin voi toki tallentaa myös desimaalilukuja, sanoja tai jopa lauseita. CoolBasicissa on 6 eri muuttujatyyppiä. Tässä tutustumme niistä vain kolmeen tärkeimpään. (lisätietoja kohdasta "tietotyypit"). Jotta saisit nämä hienoudet käyttöösi, muuttuja täytyy esitellä toisentyyppiseksi:

1    nopeus# = 1.2
2 
3    If UpKey() Then nopeus = nopeus + 0.1

Huomaa, että muuttujan nimen perään on kirjoitettu risuaita (#). Se kertoo CoolBasicille, että muuttuja on desimaalimuuttuja, ja että siihen voidaan sijoittaa desimaaliarvoja. Sen jälkeen kun tämä on ensimmäisen kerran tehty, sinun ei ole enää pakko kirjoittaa risuaitaa muuttujan perään. Vain ensimmäisellä kerralla. Joskus koodin selventämiseksi ohjelmoijat kuitenkin kirjoittavat tyyppitunnisteen aina.

Merkkijonomuuttujiin voidaan tallettaa kirjaimia, sanoja tai lauseita. Merkkijonomuuttuja esitellään kirjoittamalla dollarimerkki ($) muuttujan perään - samaan tapaan kuin yllä tehtiin desimaalimuuttujan kanssa.

1    nimi$ = "Aeryn"
2 
3    If nimi = "Aeryn" Then Print "Hello, Aeryn"

Merkkijonot esitellään aina kaksinkertaisissa lainauksissa.

Opit varmasti lisää samalla kun ohjelmoit.

Muuttujien esittely

muokkaa

Voit esitellä muuttujia ja taulukoita ohjelman alussa DIM-komennolla. Tällöin muuttujiin ei sijoiteta arvoa, vaan niillä on oletusarvona nolla. Hyviin ohjelmointikäytäntöihin kuuluu esitellä kaikki tarvittavat muuttujat ohjelman alussa, mutta BASIC-kielissä tapa on jokseenkin harvinainen. Esimerkiksi:

1    Dim elämät As Integer
2    Dim nopeus As Float
3    Dim nimi As String

Tämän jälkeen sinun ei tarvitse huolehtia tyyppitunnisteen muistamisesta; kutsut muuttujaa vain puhtaalla nimellä. Voit pakottaa tämän toiminnon käyttöön valitsemalla kääntäjän asetuksista "Force Variable Declaration".

Muita muuttujatyyppejä ovat BYTE ja SHORT. Ne ovat itse asiassa kokonaislukumuuttujia, mutta niiden arvot ovat rajatummat. Lisätietoa kohdassa "Tietotyypit".

Muuttujien vaikutusalue ja globaalit muuttujat

muokkaa

Kun kirjoitat funktion (Function-komento), sen sisällä pätee omat muuttujat. Toisin sanoen: kahden funktion ja/tai pääohjelman muuttujien arvot eivät sekoitu keskenään, vaikka niillä olisikin sama nimi. Jos haluat muuttujan näkyvän kaikkialla, ja siten sen arvoa voidaan muuttaa kaikkialla, sinun on määrättävä se globaaliksi (Global-komento):

1    Global elämät As Integer

Yleensä kuvamuuttujat, objektit, äänimuuttujat jne. kannattaa määritellä globaaleiksi.

Taulukot ovat aina globaaleja, ja niihin pääsee käsiksi myös kaikista funktioista.

Muuttujia koskevat säännöt

muokkaa

Muuttujan tyyppi ei saa vaihtua kesken kaiken. Jos olet esimerkiksi ensin määritellyt: "muut$", et voi jälkeenpäin komentaa "muut#". Sama pätee kokonaislukumuuttujien kanssa.

Muuttujalla pitää olla laillinen nimi. Se saa sisältää kirjaimia ja numeroita, mutta se ei saa alkaa numerolla. Myös alaviiva on sallittu merkki. Erikoismerkit ja välilyönnit eivät ole sallittuja. Ohjelmointikäytäntöjen mukaan väliviivan tilalle kirjoitetaan alaviiva, esimerkiksi: pelaajan_nimi$

Isoilla ja pienillä kirjaimilla ei ole väliä. Siten "NiMI" ja "nimI" tunnistetaan samaksi muuttujaksi.