1-ulotteiset taulukot ¶
Yksiulotteinen taulukko on kuin rivitalo: selvittääksemme tietyn henkilön asunnon meidän tarvitsee tietää vain asunnon (järjestys-)numero.
Voimme esimerkiksi sanoa, että Pekka asuu rivitalon asunnossa nro 3, ja Maija asunnossa 0. Huomaa, että indeksit eli taulukon alkioiden laskeminen alkaa aina nollasta.
1. Taulukon esittely ¶
Taulukko esitellään sanomalla taulukon alkioiden tyyppi, hakasulut ja taulukon nimi. Esimerkiksi:
int[] kuukausienPituudet; double[] keskilampotilat;
2. Taulukon luominen ¶
Erona tavalliseen muuttujaan taulukkomuuttuja "vain" viite itse taulukkoon joka on jossakin muualla. Itse taulukko pitää luoda new TYYPPI[koko] kutsulla.
kuukausienPituudet = new int[12]; keskilammot = new double[31]; // tammikuun keskilämmöt.
Kun taulukko on luotu, ovat sen kaikki alkiot 0:ia.
3. Taulukon alkioon sijoittaminen ¶
Taulukon indeksit alkavat 0:sta. Taulukon alkioon voidaan sijoittaa uusi arvo NIMI[INDEKSI] = LAUSEKE; Esimerkiksi:
kuukausienPituudet[0] = 31 // laitetaan tammikuun pituus kuukausienPituudet[1] = 28; // laitetaan helmikuun pituus kuukausienPituudet[11] = 31; // laitetaan joulukuun pituus keskilammot[0] = -20.7; // Tammikuun 1. päivän keskilämpö keskilammot[4] = -16.7; // Tammikuun 5. päivän keskilämpö
4. Taulukon alustaminen luonnin yhteydessä ¶
Taulukko voidaan alustaa myös jo luomisen yhteydessä:
double[] keskilammot = {-20.7,-18.2,-10.3,-14.2,-16.7,-10.9}; string[] kuukausienNimet = {"tammi","helmi","maalis",...,"marras","joulu"};
5. Taulukon alkioiden summa ¶
Taulukon alkioiden summa voitaisiin laskea:
int vuodenPituus = 0; vuodenPituus += kuukausienPituudet[0]; vuodenPituus += kuukausienPituudet[1]; vuodenPituus += kuukausienPituudet[2]; vuodenPituus += kuukausienPituudet[3]; vuodenPituus += kuukausienPituudet[4]; ... vuodenPituus += kuukausienPituudet[9]; vuodenPituus += kuukausienPituudet[10]; vuodenPituus += kuukausienPituudet[11];
Tässä ei kuitenkaan ole hirveästi järkeä ja siksi otetaan käyttöön silmukat:
int vuodenPituus = 0; for (int i=0; i < kuukausienPituudet.Length; i++) { vuodenPituus += kuukausienPituudet[i]; }
Saman voi kirjoittaa myös muodossa:
int vuodenPituus = 0; for (int i=0; i < kuukausienPituudet.Length; i++) { int pituus = kuukausienPituudet[i]; vuodenPituus += pituus; }
ja tälle on lyhenteenä foreach-silmukka:
int vuodenPituus = 0; foreach (int pituus in kuukausienPituudet) { vuodenPituus += pituus; }
Linkkejä ¶
- 15 Taulukot
- Taulukot.cs - luennon 10 esimerkkejä taulukoista
- Luennon 12 esimerkkejä taulukoista
- Luento 10a, Luento 12a