5. Arrays
Last updated
Last updated
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.
De waardes in een array afrukken kan op de volgende manier.
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.
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:
Opdracht 5.5
Hoe vaak wordt de code cin>>cijfers[rij][kolom];
in bovenstaande code uitgevoerd?
Opdracht 5.6
Schrijf een programma dat een leeg schaakbord afdrukt met de waarden X en 0. De X stelt een zwart veld voor een 0 een wit veld. De volgende 2-dimensionale array bevat het schaakbord:
char schaakbord[8][8]{ {'X', 'O', 'X', '0', 'X', 'O', 'X', 'O'}, {'O', 'X', '0', 'X', 'O', 'X', 'O', 'X'}, {'X', 'O', 'X', '0', 'X', 'O', 'X', 'O'}, {'O', 'X', '0', 'X', 'O', 'X', 'O', 'X'}, {'X', 'O', 'X', '0', 'X', 'O', 'X', 'O'}, {'O', 'X', '0', 'X', 'O', 'X', 'O', 'X'}, {'X', 'O', 'X', '0', 'X', 'O', 'X', 'O'}, {'O', 'X', '0', 'X', 'O', 'X', 'O', 'X'}};
Druk de inhoud van deze array af zodat je op je beeldscherm het volgende ziet:
Maak gebruik van een geneste for-lus.
Opdracht 5.7
Schrijf een programma dat 3 proefwerken opslaat van alle 10 leerlingen in de klas. Gebruik een 2-dimensionale array om de cijfers op te slaan. Bereken het gemiddelde cijfer van elke leerling. Bereken ook het gemiddelde cijfer van elk proefwerk.
Je kunt een 2-dimensionale array snel op de volgende manier vullen:
float cijfers[10][3] =
{
{6, 4.5, 7},
{9, 5, 10},
{7.5, 7, 8},
{4, 5.5, 10},
{8, 8.5, 8.5},
{7, 7, 7},
{6, 6.5, 4},
{10, 3, 6.5},
{6, 7, 7},
{5, 5.5, 7}
};