2. Variabelen

Variabelen worden gebruikt om gegevens op te slaan. Deze opgeslagen gegevens kan je dan weer in je code gebruiken.

We kunnen variabelen vergelijken met een doos met een etiket erop. Op het etiket schrijf je dan wat er in de doos zit, dit is de naam van de variabele. Wat je in de doos stopt is de waarde van de variabele. Daarmee zijn we er nog niet. Een variabele heeft drie eigenschappen:

  1. de naam. Deze staat op het etiket op de doos.

  2. de waarde. Dit is de inhoud van de doos.

  3. het datatype. Dit bepaalt wat je voor soort dingen in de doos kunt bewaren. Om getallen op te slaan gebruikt C++ bijvoorbeeld aan ander datatype dan om tekst op te slaan.

Je moet C++ van te voren vertellen wat voor (data)type een variabele is. Dit noemen we declareren. Door het declareren weet C++ wat voor doos er gebruikt wordt en dus bijvoorbeeld hoeveel geheugen er gereserveerd moet worden. Een mogelijk type van een variabele is een int: een int staat voor integer en dit geeft aan dat de variabele alleen maar gehele getallen kan bevatten.

Een voorbeeld:

#include <iostream>
using namespace std;

int main() {
  int getal; //Hier declareer je een variabele met de naam getal en het type integer
  getal = 15; //Hier geef je de variabele met de naam getal de waarde 15: 
  // het symbool = betekent hier: wordt.
  cout << "De waarde van getal = " << getal;
  return 0;
}

Opdracht 2.1 a. Probeer bovenstaand voorbeeld uit. b. Welke waarde heeft de variabele getal als je onderstaande code gebruikt: getal = 15; getal = 10; getal = 4; Probeer de code uit in je C++ editor.

Opdracht 2.2 Welke waarde heeft de variabele getal in onderstaand voorbeeld? getal = 15; getal = getal + 5; Probeer de code uit in je C++ editor.

Errors

Als je een fout in je code maakt dan geeft de compiler een error.

  • error: use of undeclared identifier 'leeftijd' -> Dit betekent dat je de variabele leeftijd niet gedeclareerd hebt

  • error: expected ';' after expression -> dit betekent dat je een regel vergeten bent af te sluiten met een ;

C++ geeft altijd aan op welke regel de fout wordt ontdekt:

main.cpp:9:22: error: expected ';' after expression

In dit geval wordt de error op regel 9 ontdekt. Meestal zit de fout dan ook op die regel. Het kan ook zo zijn dat je de fout al een regel eerder hebt gemaakt, en dat de fout pas hier wordt ontdekt. Soms moet je dus ook naar de voorgaande regels kijken. De fout zal nooit later zitten.

Als je veel errors hebt dan kan je het beste kijken naar de allereerste error.

CIN

Met de opdracht cin kun je invoer van het toetsenbord lezen. De input van de gebruiker kan je dan opslaan in een variabele. Cin is de afkorting van character in.

Een voorbeeld:

#include <iostream>
using namespace std;

int main() {
  int leeftijd;     
  cout << "Hoe oud ben jij?" << endl;    
  cin >> leeftijd;                  
  cout << "Je bent " << leeftijd << " jaar oud";    
  return 0;
}   

Getallen kun je bewerken met rekenkundige operatoren zoals:

  • optellen (+)

  • aftrekken (-)

  • vermenigvuldigen (*)

  • delen (/)

  • Ook handig is de modulo (%), dit geeft de rest van de deling van 2 integer getallen. Bijvoorbeeld 10 % 3 = 1, omdat 9 het dichtst bij 10 ligt en deelbaar is door 3, en 10 - 9 = 1.

Opdracht 2.3 Je hebt een bijbaantje in de supermarkt en je bent aan het sparen voor nieuwe skeelers. Schrijf een programma dat om invoer vraagt hoeveel euro per uur je verdient en hoeveel de skeelers kosten. Als uitvoer geeft je programma hoeveel uur je moet werken voordat je de skeelers kan kopen.

Tot nu toe heb je variabele van het type integer gebruikt. Dit betekent dat de variabele alleen maar gehele getallen kan bevatten. Er is ook het type float:

Hieronder een voorbeeld met het type float:

#include <iostream>
using namespace std;

int main() {
  float uitkomst;     
  uitkomst = 10.5/3.0;
  cout << uitkomst;
  return 0;
} 

Opdracht 2.4 Schrijf een programma dat om de invoer van 5 proefwerkcijfers vraagt, het gemiddelde berekent en jouw rapportcijfer afdrukt. Je kan 5 getallen snel op de volgende manier declareren:

int getal1, getal2, getal3, getal4, getal5;

Heb je vragen over de opdrachten of heb je code die nog niet helemaal werkt, email ons! We helpen graag. Ook vinden we het leuk om code die je geschreven hebt te ontvangen. Ons e-mailadres is: girls@informaticaolympiade.nl

Tot nu toe heb je alleen types gezien met getallen, maar er zijn nog meer verschillende typen variabelen mogelijk:

Voorbeeld met teksten:

#include <iostream>
using namespace std;
#include <string>

int main() {
  string voornaam, achternaam, volledigenaam;
  
  voornaam = "Noor";
  achternaam = "Vis";
  volledigenaam = voornaam + " " + achternaam; 
  cout << "De volledige naam is: " << volledigenaam;
  return 0;
}

De aanhalingstekens " " worden gebruikt om het begin en einde van een tekst aan te geven. Zonder aanhalingstekens zou C++ denken dat Noor als een opdracht bedoeld was. En dat zou als fout worden aangeduid omdat zo’n opdracht niet bestaat in C++.

Opdracht 2.5 Schrijf een programma dat als invoer de naam van de gebruiker inleest en de gebruiker daarna een goede tip geeft. Bijvoorbeeld: Judith, pizza's zijn lekker! Het is belangrijk om variabelen duidelijke namen te geven. Let hier dus goed op als je een programma schrijft.

Als je in het programma hierboven bij je naam je voornaam en achternaam invult dan zul je zien dat je programma alleen je voornaam gebruikt. Dit klopt, cin leest namelijk alles in wat de gebruiker typt tot de spatie. Dit kan wel heel handig zijn als je 2 getallen wil inlezen die gescheiden zijn door een spatie. Bijvoorbeeld:

#include <iostream>
using namespace std;

int main() {
  int getal1, getal2;
  cout << "Geef 2 getallen gescheiden met een spatie" << endl;
  cin >> getal1 >> getal2;
  int som = getal1 + getal2;
  cout << "De som van de getallen is " << som; 
  return 0;
}

Opdracht 2.6 Twee personen staan in de rij voor een ijsje. We maken hiervoor 2 variabelen aan: string EersteInRij, TweedeInRij; Als invoer van je programma vraag je om de namen van de personen, bijvoorbeeld Noor en Priya. Je krijgt dan: EersteInRij = "Noor"; TweedeInRij = "Priya"; Priya heeft haast en vraagt Noor om te wisselen in de rij. Schrijf een programma dat om invoer van twee namen vraagt en de waardes van de 2 variabelen omwisselt.

Je zou denken dat dit kan met de code: EersteInRij = TweedeInRij; TweedeInRij = EersteInRij; Wat gaat er mis met bovenstaande code? En hoe kunnen we dit oplossen?

Commentaar

Het is goed om je C++ programma’s te voorzien van commentaar.

Commentaar ziet er als volgt uit:

// Deze tekst is commentaar

Het kan overal aan het einde van een regel toegevoegd worden. Commentaar over meerdere regels of zelfs tussen opdrachten is ook een mogelijkheid en ziet er zo uit:

/*Ook deze twee regels aan commentaar bij het programma worden niet uitgevoerd*/

Last updated