Ero sivun ”Muuttuja (ohjelmointi)” versioiden välillä

p
Botti: Korvaa vanhentunut <source>-tagi ja "enclose"-parametri
(Hylättiin viimeisin tekstimuutos sotkemisena (tehnyt 185.85.54.98) ja palautettiin versio 18392869, jonka on tehnyt Ipr1)
p (Botti: Korvaa vanhentunut <source>-tagi ja "enclose"-parametri)
 
Muuttujia käytetään yleisesti matemaattisissa [[lauseke|lausekkeissa]] ja [[algoritmi|algoritmeissä]] kuvaamaan symboleja, joiden arvoa ei etukäteen haluta sitoa mihinkään tiettyyn arvoon. Muuttujien käyttö mahdollistaa yleiskäyttöisten [[aliohjelma|proseduurien]] ja funktioiden luomiseen. Esimerkiksi seuraava funktio palauttaa kahden lukumuuttujan "x" ja "y" yhteenlasketun summan:
<syntaxhighlight lang="text">
<source>
funktio summa(x, y) {
summa = x + y;
}
</syntaxhighlight>
</source>
 
Koska muuttujien "x" ja "y" arvoa ei ole etukäteen sidottu, voidaan funktiota kutsua halutuilla arvoilla, esimerkiksi summa(10,29) palauttaisi arvon 39. Muuttujien sisältämät arvot voivat olla muitakin kuin numeroita. Tyypillisesti ohjelmistoissa muuttujilla käsitellään tekstiä, numeroita ja olioita;
 
Muuttujia käsitellään ohjelmointikielissä operaattoreiden avulla samoin kuin vakioita ja literaalejakin. Esimerkiksi yhteenlaskussa käytetään yleensä "+" -operaattoria kahden muuttujan välissä merkitsemään yhteenlaskua. Operaattori voi sijaita myös muualla suhteessa muuttujaan. Esimerkiksi [[Lisp]]-ohjelmointikielessä:
<syntaxhighlight lang="text">
<source>
(+ x y )
</syntaxhighlight>
</source>
 
vastaa merkintää "x + y". Tärkeä operaattori on myös sijoitusoperaattori, jolla muuttuja voidaan sijoittaa toiseen muuttujaan, esimerkiksi
<syntaxhighlight lang="text">
<source>
summa = x + y;
summa := x + y;
</syntaxhighlight>
</source>
 
ovat esimerkkejä eri kielissä käytetyistä sijoitusoperaattoreista. Loogisten operaattoreiden avulla voidaan vertailla muuttujien arvoja, esimerkiksi
lauseessa:
<syntaxhighlight lang="text">
<source>
if( x > y ) then print "x on suurempi kuin y";
</syntaxhighlight>
</source>
 
operaattori ">" vertailee onko x suurempi kuin y jolloin lause tulostaa ruudulle tekstin, jos näin on. Eri ohjelmointikielissä on erilaisia tapoja käsitellä muuttujia operaattoreiden avulla.
 
Jos muuttujan viittaama tieto on [[Tyyppijärjestelmä#Staattinen vs. dynaaminen tyypitys|staattisesti tyypitetty]], kuten useimmissa [[ohjelmointikielen kääntäjä|käännetyissä]] ohjelmointikielissä tehdään, se ei saa viitata muun kaltaiseen tietoon. Esimerkiksi muuttuja, joka viittaa kokonaislukuarvoon määritellään [[C (ohjelmointikieli)|C-kielessä]] seuraavasti:
<sourcesyntaxhighlight lang="c">
int x;
</syntaxhighlight>
</source>
 
Tyypillisiä tietotyyppejä, joihin muuttujat ohjelmointikielissä voivat viitata ovat:
{{Pääartikkeli|[[Osoitin (ohjelmointi)|osoitin]]}}
Erityisen hyödyllisiä muuttujia ovat muistiavaruuden osoitteet, koska ilman niitä ei moderneja tietokoneohjelmia voitaisi rakentaa. Osoittimen tehtävänä ei ole sisältää varsinaista tietoa vaan kertoa mistä muistiavaruuden osoitteesta tavoiteltava tieto on löydettävissä. Muuttujaa, joka sisältää muistiavaruuden osoitteen sanoitaan [[osoitin|osoittimeksi]] (pointer). Osoittimen etuna on, että se tarvitsee itse vähän tilaa (esimerkiksi 32-bittisissä tietokoneissa 32 bittiä), mutta sen osoittama tietomäärä voi olla mielivaltaisen suuri. Osoittimen yhteydessä on yleensä hyödyllistä määritellä myös sen osoittaman tiedon tyyppi. Esimerkiksi [[C (ohjelmointikieli)|C]]-kielessä määritellään osoitin merkkijonoon seuraavasti:
<sourcesyntaxhighlight lang="c">
char *teksti;
</syntaxhighlight>
</source>
 
Tekstin pituus voi olla mitä tahansa, mutta tietoa välitettäessä tarvitsee välittää vain osoittimen arvo. Osoittimiin liittyy myös vakavien [[ohjelmointivirhe]]iden vaara, koska osoittimen arvon uudelleenasettaminen voi johtaa vakaviin virhetilanteisiin. Tästä syystä useissa uudemmissa ohjelmointikielissä ohjelmoija ei pääse itse asettamaan osoittimien arvoja, vaan [[ohjelmointikielen kääntäjä|kääntäjä]] / [[ohjelmointikielen tulkki|tulkki]] suorittaa suurempien tietoalkioiden ja olioiden käsittelyn osoittimilla ohjelmoijan "tietämättä".
193 490

muokkausta