C++ leren voor de informatica olympiade
  • 💃Intro
  • Leer de basis van programmeren
    • 1. Programmeren, hoe te beginnen?
    • 2. Integer
    • 3. Keuze
    • 4. Herhalingen
    • 👓Code lezen
    • 5. String
    • 6. Boolean
  • Leer meer C++
    • 🪲Code debuggen - deel 1
    • 7. Array/vector
    • 8. Functies - deel 1
    • 9. 2D vector
    • 10. Functies - deel 2
  • 💻C++ en Visual Studio Code
  • Leer competitief programmeren
    • 11. Meer data types
    • 12. Recursie
    • 13. Complete search
    • 14. Binair zoeken
    • 15. Grafen
    • 16. Dynamisch programmeren
  • Meer info over Girls@informatica olympiade.nl
    • Wie zijn wij?
    • Hoe ziet een cursusdag eruit?
    • Wat is de EGOI?
  • Wil je meedoen?
Powered by GitBook
On this page
  1. Leer meer C++

Code debuggen - deel 1

Previous6. BooleanNext7. Array/vector

Last updated 5 days ago

De compiler van C++ controleert of je code geschreven is volgens de C++ afspraken qua grammatica en syntax. De compiler geeft een foutmelding als er je code niet voldoet, bijvoorbeeld als je een ; bent vergeten aan het einde van een regel.

Maar ook als de compiler geen foutmeldingen meer geeft, kunnen er nog fouten in je code zitten. Dit zijn logische fouten, zoals fouten in de werking van je algoritme.

Er zijn verschillende manier om logische fouten uit je code te halen. Twee opties zijn:

  1. Met cout-statements in je code

  2. Met een debugger-tool

We gaan beide technieken toepassen op onderstaande code. Dit is de code van opgave 5.4.

#include <iostream>
using namespace std;

int main() {
  srand (time(NULL)); 
  int dobbelsteen;
  int aantalKeer[6]{};

  for (int teller = 0; teller< 10; teller++){
    dobbelsteen = (rand() % 6) + 1; 
    aantalKeer[dobbelsteen-1]++;
  }
  
  for (int teller = 0; teller< 6; teller++){
    cout << teller+1 << " is " << aantalKeer[teller] << " keer gegooid" << endl;  
  }
}

Debuggen met behulp van cout Een manier om fouten uit je code te halen is extra cout-statements toe te voegen aan de code. Vervang de for-loop in de code hierboven door de volgende code:

for (int teller = 0; teller< 10; teller++){  
  cout << "Teller " << teller << endl; 
  dobbelsteen = (rand() % 6) + 1; 
  aantalKeer[dobbelsteen-1]++; 
  cout << "Dobbelsteen = " << dobbelsteen << endl; 
  cout << "Aantalkeer " << dobbelsteen << " = " << aantalKeer[dobbelsteen-1] << endl; 
  cout << "Druk enter om verder te gaan " << endl; 
  cin.get(); 
}

Er wordt bewust op input van de gebruiker gewacht voordat het programma verder gaat anders krijg je in 1 keer heel veel informatie op het scherm waardoor het heel moeilijk is om te zien wat er gebeurt. Probeer deze manier van debuggen uit.

Debuggen met behulp van een debugger Een tweede manier om code te doorlopen is met een debugger. Het hangt af van de compiler en IDE (=software waarin je je code schrijft) of er een debugger aanwezig is. Dit leer je in deel 3 van deze cursus.

🪲