(toiminnot)

hwechtla-tl: Muuttuja

Kierre.png

Mikä on WikiWiki?
nettipäiväkirja
koko wiki (etsi)
viime muutokset


Muuttuja on ohjelmointikielen vastine pronominille tai nimelle. Muuttuja on nimi, joka viittaa johonkin muuhun (ohjelmointikielten tapauksessa tieto eli data). Esimerkiksi, jos määritän muuttujan x arvon sanomalla:

x = 5.5

niin tämän jälkeen x on nimi luvulle 5.5 ja siinä, missä voisimme sanoa 5.5, voimme yhtä hyvin sanoa x ja tulos on sama. Esimerkiksi sekä 1 + x että 1 + 5.5 ovat arvoltaan 6.5. (Mielenkiintoista kyllä, myös literaali 5.5 on eräänlainen "nimi" luvulle 5.5: se nimeää luvun kertomalla täysin, mikä luku se on.)

Koska muuttujat ovat vain nimiä kaikenlaisille tiedoille, joita käsitellään, useampi muuttuja voi viitata samaan tietoon. Esimerkiksi jos edelleen määrittelen muuttujan y arvon sanomalla:

y = x

niin tämän jälkeen sekä x että y ovat nimiä samalle luvulle, luvulle 5.5.

Muuttujia on kahdenlaisia: konkreettisia ja formaaleita. Konkreettinen muuttuja on sellainen, jonka arvo tiedetään. Formaali muuttuja taas toimii nimenä tiedolle, jota ei vielä tiedetä, vaan joka annetaan myöhemmin. Esimerkiksi seuraavassa ohjelmassa:

vokaalit = list("aeiouyåäö")
def vokaaliko(merkki): return merkki in vokaalit

muuttuja vokaalit on konkreettinen muuttuja, jonka arvo tiedetään, kun taas muuttuja merkki on formaali muuttuja, jonka arvo määrittyy vasta vokaaliko-ohjelmaa ajettaessa. Esimerkiksi kutsussa vokaaliko("k") merkki on "k", jolloin ilmaus 'merkki in vokaalit' tarkoittaa samaa kuin '"k" in list("aeiouyåäö")' eli False (eli "k" ei ole vokaali). Koska merkki-muuttujan arvo voi vaihdella, nimessä "muuttuja" on ehkä jotain järkeäkin.

Ohjelmamäärittelyt ovat myös eräänlaisia muuttujamäärittelyitä. Yllä oleva vokaaliko-ohjelman määrittely perustaa muuttujan vokaaliko ja asettaa sen sisällöksi ohjelman, joka ottaa syötteekseen merkin ja palauttaa totuusarvon. Pythonilta voi kysyä, mihin vokaaliko-muuttuja viittaa:

>>> vokaaliko
<function vokaaliko at 0x40201c34>

Muuttujan arvon voi myös määritellä uudelleen. Sivuvaikutuspainotteisessa ohjelmoinnissa ovat keskeisessä asemassa lausekkeet, joissa muuttujalle lasketaan uusi arvo vanhan arvon perusteella, esimerkiksi x = x + 1 asettaa x-muuttujan viittaamaan yhtä suurempaan lukuun kuin mihin se viittasi ennen tätä määrittelyä. Tämä on toinen tapa, jolla muuttujat voivat "muuttua" sen lisäksi, että formaalit muuttujat voivat saada eri arvoja ohjelman eri käynnistyskerroilla.

Kun muuttuja x viittaa arvoon y, sanotaan myös, että "x:n sisältö on y". Tämä on siinä mielessä hämäävää, että saman arvon y voi "sisältää" useampi muuttuja.


(Takaisin ohjelmoinnin käsitteet -sivulle.)


kommentoi (viimeksi muutettu 30.07.2014 08:58)