5. Arrays

Het kan voorkomen dat je in je programma veel variabelen van hetzelfde type gebruikt. Stel dat je voor een jaar wil behouden in hoeveel minuten je naar school fietst.

int dag1, dag2, dag3, dag4, dag5, t/m dag365

Als we dan het gemiddelde van het aantal fietsminuten willen berekenen dan krijg je de code:

gemiddelde = (dag1 + dag2 + dag3 + dag4 + t/m dag365) / 365

Dit is veel typwerk en kan dus slimmer. Hiervoor gebruiken we arrays:

int dag[365]; //Dit is een array met de naam dag met 356 getallen

Een array kun je zien als een rij met hokjes waarin je een bepaalde waarde kan stoppen. Je moet bij het declareren van de array aangeven uit hoeveel hokjes de array bestaat en van welk de type de hokjes zijn.

Een array met 10 hokjes declareer je al volgt: int rij[10]; Elke hokje kan 1 integer bevatten.

Deze array kun je als volgt voorstellen:

De verschillende hokjes kan je benaderen met vierkante haken [ ], bijvoorbeeld rij[1]. Het getal 1 geeft aan over welk hokje we het hebben (ook wel index genoemd), in dit geval is dat de waarde 7. Let op het eerste hokje in de array heeft index 0.

Een array kun je vullen met een for-loop.

int rij[10], getal;
for(int i=0;i<10;i++){
    cin >> getal;
    rij[i]= getal;
}

De waardes in een array afrukken kan op de volgende manier.

for (int waarde:rij)
    cout << waarde << endl;

Je kan een array ook op de volgende manier vullen: int getal[5] = { 100, 101, 102, 103, 104 };

Opdracht 5.1 Schrijf een programma dat 10 proefwerkcijfers inleest en als uitvoer het gemiddelde van alle cijfers geeft.

Opdracht 5.2 Maak de opgave ISBN.

Als je een array niet een beginwaarde geeft dan kan het zijn dat er al waardes in de array staan waarvan je niet weet wat de waardes zijn.

Opdracht 5.3 Wat is het resultaat van de volgende code? int rij[10]; for (int waarde:rij) cout << waarde << endl;

Om je array een beginwaarde te geven, kun je de volgende code gebruiken: int rij[10]{}; Op deze manier wordt de inhoud van je array op 0 gezet.

Opdracht 5.4 Schrijf een programma dat om de invoer vraagt van het aantal keren dat met een dobbelsteen wordt gegooid. De computer gooit de dobbelsteen, gebruik hiervoor de rand() die je al eerder gebruikt hebt om een random getal tussen 1 en 6 te genereren. Geef als uitvoer hoe vaak elk getal gegooid is.

Meerdimensionele arrays

Als je 5 proefwerkcijfers van de hele klas wil opslaan. Dan heb je bijvoorbeeld 25 arrays nodig met 5 cijfers. Hiervoor kun je ook een 2-dimensionale array gebruiken.

float cijfer[25][5]; cijfer[1][3] -> dit is leerling met index 1 en proefwerkcijfer met index 3. Dit is een 9,8. cijfer[2][1] -> dit is leerling met index 2 en proefwerkcijfer met index 1. Dit is een 5,5.

Je kan de waardes in een 2-dimensionale array vullen met een geneste for-lus:

#include <iostream>
using namespace std;

int main() {
  const int aantalLeerlingen = 25;
  const int aantalCijfers = 5;
  float cijfers[aantalLeerlingen][aantalCijfers];
  for (int rij=0;rij< aantalLeerlingen;rij++){
    for (int kolom=0;kolom< aantalCijfers;kolom++){
      cin>>cijfers[rij][kolom];
    }
  }
}

Opdracht 5.5 Hoe vaak wordt de code cin>>cijfers[rij][kolom]; in bovenstaande code uitgevoerd?

Last updated