Johdanto

Ohjelmassa käsitellään tietoa ja se voitava tallentaa ohjelman suorituksen aikana johonkin. Tallennettava tieto voi olla esimeriksi numerotietoa tai tekstitietoa. Tämä ohjelman suorituksen aikainen tallennettava tieto tallennetaan muuttujiin. Muuttuja on ohjelmassa määritelty sana tai merkkijono, johon tietoa tallennetaan sijoituslauseella. Tutkitaan aluksi kuinka erilaisia tietotyyppejä (numerotieto ja tekstitieto) käsitellään tekstin tulostuksen yhteydessä.

Lähdetään esimerkistä liikkeelle. Tulostetaan aluksi numeroita text-komennolla. Tehdään seuraava ohjelma.

// Ohjelman tehnyt: e-Oppi Oy
// 30.1.2017
void setup() { 
     size(300,300); // Määritellään ikkunan koko
     background(255); // Taustaväri valkoinen
     fill(0); // Tekstin väri musta
     textSize(30); // Tekstin koko 30 px
}
void draw() { text(" 1+2+3 ",100,60); text( 1+2+3,100,100); text(" 1+2+3 "+1+2+3,100,140); text(" 1+2+3 "+(1+2+3),100,180); text( 1+2+3+" 1+2+3 ",100,240); }


Kun ohjelma ajetaan, niin havaitaan jotain mielenkiintoista. Miksi ei joka rivillä tulostu 1 + 2 + 3?



Tuloste

Merkitys

1+2+3

Ensimmäinen rivi on normaali tulostuskomento eli teksti - tässä tapauksessa numerot – kirjoitetaan lainausmerkkien sisään ja lopputulos on niin kuin pitääkin.

6

Tässä kirjoitimme tekstiä ilman lainausmerkkiä ja ohjelma ei ilmoittanut virhettä, miksi? Syy on se, että on olemassa erilaisia tietotyyppejä: tekstitieto ja kokonaislukutieto. Tässä ”teksti” onkin kokonaisluku, ja lukujahan voi normaalisti laskea yhteen eli 1 + 2 + 3 = 6, ja siksi tulostui 6.

1+2+3 123

Nyt yhdistimme kaksi edellistä komentoa ja nyt ei tulostunut 6 loppuun, miksi? Syy on se, että plus-merkkiä käytetään myös tekstitiedon ja kokonaislukutiedon erottimena. Ensimmäinen plus-merkki tekstitiedon jälkeen tulkitaan erottimeksi. Tämä ensimmäinen erotinmerkki, muuttaa myös loput plusmerkit erotinmerkeiksi. Kun 1, 2 ja 3 tulostetaan peräkkäin ilman välilyöntiä (erotinmerkki ei tulostu), niin lopputuloksena on 123.

1+2+3 6

Tässä on tehty korjaus edelliseen komentoon eli lisäämällä sulut lukujen ympärille komentojen suoritusjärjestys muuttuu ja sulkujen sisällä olevat luvut summataankin nyt yhteen. Ainoastaan sulkujen edessä oleva plusmerkki on erotinmerkki.

6 1+2+3

Lainausmerkkien edessä olevat plusmerkit ovat viimeistä plusmerkkiä lukuun ottamatta yhteenlaskuja. Syy tähän on komentojen suoritusjärjestys. Koska ensimmäinen plus-merkki on yhteenlasku, niin muutkin plusmerkit ovat yhteenlaskuja, jos vain mahdollista.



Kun kirjoitamme tekstiä lainausmerkkien sisälle, niin se on tekstitietoa. Mutta jos kirjoitamme numeroita ilman lainausmerkkejä, niin se on numerotietoa. Jos esimerkiksi haluamme kirjoittaa lauseen: Lukujen 5 ja 7 summa on 12, siten että luvut ovat numerotietoa ja teksti on tekstitietoa, niin tulostuskomento on tällöin muotoa.

text("Lukujen "+5+" ja "+7+" summa on "+(5+7),100,100);

Teksti kirjoitetaan lainausmerkkien sisälle, mutta numerotietoa ei tarvitse kirjoittaa lainausmerkkien sisälle. Numerotieto ja tekstitieto erotetaan toisistaan plus-merkin avulla. Tosin plus-merkin avulla suoritetaan myös lukujen väliset laskutoimitukset. Eli tällä tulostuslauseella tulostetaan luvut 5 ja 7, sekä kirjoitettu teksti ja lisäksi ohjelma vielä laskee lukujen summan. Eli tulostus näyttää tältä.




Tulostuslauseen merkitys on seuraava.




Muuttujat käyttäytyvät ohjelmassa samalla tavalla. Kun seuraavaksi määrittelemme muuttujat, myös ne on tulostettava ilman lainausmerkkejä.