Muuttujat

Määritellään aluksi Processing-ohjelmoinnin yleisimmät tietotyypit. Edellisessä esimerkissä puhuttiin vain kokonaisluku- ja tekstitietotyypeistä, mutta Processing-ohjelmoinnissa on määritelty enemmänkin tietotyyppejä, ne ovat seuraavat:

Tietotyyppi

Määrittely

Muuttujan arvo

Kokonaisluku

int

15

Desimaaliluku

float

3.14

Merkkijono

String

"Matti Meikäläinen"

Merkki

char

'Ä'

Totuusarvo (true tai false)

boolean

true

 

Olisiko mahdollista määritellä ohjelmaan jokin muistipaikka, johon ohjelman käyttämä tieto voitaisiin tallentaa? Kyllä voidaan, mutta siinä on rajoite. Kokonaisluvut voidaan tallentaa vain kokonaisluku muistipaikkaan, desimaaliluvut voidaan tallentaa vain desimaaliluku muistipaikkaan, merkkijonot voidaan tallentaa vain merkkijonomuistipaikkaan ja niin edelleen. Voit ajatella esimerkiksi, että kokonaisluku laitetaan siniseen laatikkoon, desimaaliluku laitetaan keltaiseen laatikkoon, merkkijono laitetaan vihreään laatikkoon ja niin edelleen. Oheinen kuva havainnollistaa asiaa.



Sitten on vielä toinenkin rajoite: Yhteen laatikkoon eli muistipaikkaan mahtuu vain yksi tieto kerrallaan. Jos muistipaikkaan laitetaan uusi tieto, niin vanha tieto häviää. Tälle muistipaikalle on annettu ohjelmoinnissa nimi ja se on nimeltään muuttuja.

Ohjelmoinnissa kaikki ohjelman käyttämät muuttujat pitää ensin esitellä, ennen kuin niitä voidaan käyttää. Se tapahtuu esimerkiksi seuraavasti:

int Muuttuja1;

Aluksi siis kerrotaan minkälaista tietoa muuttujaan voi tallentaa (int, float, String, char tai boolean) ja sitten vasta annetaan muuttujalle nimi. Muuttujan nimessä käy kirjaimet a,b,c,…,z, ja A,B,C,…Z sekä numerot 0,1,2,…,9. Mutta et voi käyttää esimerkiksi skandimerkkejä: ä, ö ja å, etkä välilyöntejä, et voi myöskään käyttää useimpia erikoismerkkejä, poikkeuksena alaviiva ja dollarimerkki. Kun muuttuja on esitelty, niin siihen voidaan sijoittaa oikeantyyppinen tieto sijoituslauseella, esimerkiksi:

Muuttuja1 = 15;

On myös mahdollista yhdistää esittely ja sijoitus samaan lauseeseen, jolloin lause näyttää tältä:

int Muuttuja1 = 15;

Vastaavalla tavalla kaikki taulukon esimerkin mukaiset muuttujat voidaan esitellä ja sijoittaa siihen arvot seuraavasti.

int Muuttuja1 = 15;
float Muuttuja2 = 3.14;
String Muuttuja3 = "Matti Meikäläinen";
char Muuttuja4 = 'Ä';
boolean Muuttuja5 = true;


Esittely tehdään ohjelmassa vain kerran. Sijoitus voidaan kuitenkin tehdä useamman kerran. Tällöin vain viimeisin tieto säilyy muuttujassa. Processing ohjelmoinnissa on seuraavia sääntöjä, jotka koskevat muuttujien nimeämistä:

  • Nimi alkaa kirjaimella, alaviivalla tai dollarimerkillä
  • Seuraava merkki saa edellisten lisäksi olla myös numero
  • Kirjainten koolla on merkitystä (esimerkiksi: Piiri ja piiri on eri asia).
  • Nimi ei saa olla ohjelmointikielen varattu sana eli komento
  • Nimellä ei ole pituusrajoitusta
  • Nimen on oltava ainutkertainen

Yhteenvetona muuttuja esittelystä ja arvon sijoittamisesta:



Jokainen lause loppuu aina puolipisteeseen. Jos määrittelet muuttujan void draw ( ) -lohkossa, niin muuttuja on voimassa vain tässä lohkossa. Sanotaan, että muuttuja on paikallinen muuttuja.

Jos määrittelet muuttujan ohjelman alussa, ennen void setup ( ) -lohkoa, niin muuttujan on voimassa koko ohjelman ajan. Sanotaan, että muuttuja on globaalimuuttuja.

Huomaa, että sijoittaessa arvoja muuttujiin desimaaliluvussa (float) käytetään pistettä, merkkijonossa (String) lainausmerkkejä ja merkissä (char) heittomerkkiä.

Kokonainen ohjelma, jossa edellä mainitut muuttujat ovat käytössä, on seuraava:

Sanallinen algoritmi
  1. Aseta ikkunan kooksi 450 px vaakaan ja 250 px pystyyn.
  2. Aseta ikkunan taustaväriksi valkoinen.
  3. Aseta tekstin kooksi 30 px.
  4. Aseta tekstin väriksi musta.
  5. Määrittele kokonaislukumuuttuja nimeltään: Muuttuja1, ja anna sille arvo: 15.
  6. Määrittele desimaalilukumuuttuja nimeltään: Muuttuja2 ja anna sille arvo: 3.14.
  7. Määrittele merkkijonomuuttuja nimeltään: Muuttuja3 ja anna sille arvo: "Matti Meikäläinen".
  8. Määrittele merkkimuuttuja nimeltään: Muuttuja4 ja anna sille arvo: 'Ä'.
  9. Määrittele totuusarvo-muuttuja nimeltään: Muuttuja5 ja anna sille arvo: true.
  10. Tulosta muuttujan: Muuttuja1 arvo paikkaan (10,50).
  11. Tulosta muuttujan: Muuttuja2 arvo paikkaan (10,100).
  12. Tulosta muuttujan: Muuttuja3 arvo paikkaan (10,150).
  13. Tulosta muuttujan: Muuttuja4 arvo paikkaan (10,200).
  14. Tulosta muuttujan: Muuttuja5 arvo paikkaan (10,250).

// Ohjelman tehnyt: e-Oppi Oy
// 30.1.2017
void setup() {
     size(450,300); // Ikkunan koko
     background(255); // Taustaväri valkoinen
     textSize(30); // Tekstin koko 30
     fill(0); // Aseta tekstin väriksi musta
}
void draw() { int Muuttuja1 = 15; // Kokonaisluku float Muuttuja2 = 3.14; // Desimaaliluku String Muuttuja3 = "Matti Meikäläinen"; // Merkkijono char Muuttuja4 = 'Ä'; // Merkki boolean Muuttuja5 = true; // Totuusarvo text(Muuttuja1,10,50); // Tulostetaan muuttujat text(Muuttuja2,10,100); text(Muuttuja3,10,150); text(Muuttuja4,10,200);
text(""+Muuttuja5,10,250);
// Huomio: Totuusarvo-muuttujalla erilainen tulostus }

Ohjelman suoritus näyttää tältä.



Palataan aikaisempaan yhteenlaskuesimerkkiin. Se voidaan muuttujien avulla kirjoittaa seuraavasti.

Sanallinen algoritmi
  1. Aseta ikkunan kooksi 600 px vaakaan ja 200 px pystyyn.
  2. Aseta ikkunan taustaväriksi valkoinen.
  3. Aseta tekstin väriksi musta.
  4. Aseta tekstin kooksi 30 px.
  5. Määrittele kokonaislukumuuttuja nimeltään: luku1, ja anna sille arvo: 5.
  6. Määrittele kokonaislukumuuttuja nimeltään: luku2, ja anna sille arvo: 7.
  7. Tulosta muuttujan luku1 ja luku2 arvot, sekä tulosta muuttujien luku1 ja luku2 summan arvo paikkaan (100,100).

// Ohjelman tehnyt: e-Oppi Oy
// 30.1.2017
void setup() { 
     size(600,200); // Määritellään ikkunan koko
     background(255); // Taustaväri valkoinen
     fill(0); // Tekstin väri musta
     textSize(30); // Tekstin koko 30 px
}

void draw() { int luku1 = 5; int luku2 = 7; text("Lukujen "+luku1+" ja "+luku2+" summa on "+(luku1+luku2), 100, 100); }


Kun ohjelma ajetaan, niin ohjelman tulostus näyttää samanlaiselta.


Ohjelma toimii samalla tavalla kuin äskenkin, mutta nyt emme tarvitse enää lukuja sijoittaa tulostuslauseeseen vaan lukujen sijoitus on tehty ennen tulostusta muuttujiin. Voit kokeilla muuttaa lukuarvoja ja ohjelma toimii halutunlaisesti millä tahansa muuttujan arvolla.