Programmeermethoden
Werkcollege 11: Vierde opgave I

Het elfde werkcollege van het vak Programmeermethoden vindt plaats in de week van 16 tot en met 20 november 2020.

Het eigenlijke werkcollege

Werk aan de vierde programmeeropgave! Enkele tips:
  1. Het pointerpracticum gedaan van het vorige werkcollege? En alle video's gekeken?
  2. Hergebruik (stukken van) het menu van de derde programmeeropgave, in het bijzonder functies als leesOptie en leesGetal.
  3. Splits in meerdere files, en produceer een makefile, zoals uitgelegd op sheet 5. Zie ook de opgave. In Code::Blocks gaat dat iets anders, maar de file-splitsing is preceis hetzelfde. Doe dit meteen vanaf het eerste begin!
    Nieuw: video (5 minuten) over projecten in Code::Blocks.
  4. Denk na over de klassen-structuur. Er is een class (of struct) voor de "domme" cijfervakjes, en een grote class voor het grote getal. Doe dit echt vanaf het begin!
  5. Maak een afdruk-functie; let hierbij nog niet op een tekort aan nullen in het middengebied. Zet een spatie tussen de verschillende "cijferblokken".
  6. Maak toevoegen aan voorkant en achterkant van de dubbelverbonden pointerlijst.
  7. Maak verwijderen aan de voorkant.
  8. Maak het inlezen van een groot getal. Ga er eerst even van uit dat het aantal cijfers een k-voud is.
  9. Maak het in orde als dat onverhoopt niet het geval is. Je moet dan "ingewikkeld" gaan doorschuiven. Als je hier past, kost dat 0.5 punt.
  10. Probeer het optellen in orde te krijgen.
    [Dit zou rond 23 november klaar moeten zijn ...]
  11. Is het optellen af?
  12. Maak de Fibonacci-optie. Gebruik leesGetal van de vorige opgave, om het nummer van Fibonacci-getal te vragen. En gebruik de code van sheet 18.
  13. Worden overbodige cijfervakjes netjes opgeruimd?
  14. Maak het vermenigvuldigen.
  15. Maak een begin met de stapel.
    [En dit zou rond 30 november klaar moeten zijn ...]
  16. [en nu nog moeilijker:] Doe het stapel-gebeuren. Zie het begin van de sheets over datastructuren.
  17. En destructoren? Ruim dus echt netjes alles op!
  18. Gomoku Hoe gaat het "experiment" voor in het verslag? Wat moet in de grafiek? Bereken bijvoorbeeld wat Fibonacci-getallen, en plot hun lengte in aantal cijfervakjes.
    Hoe maak je een mooi grafiekje? Stel je hebt een file stats.txt, zoiets als:
    1  7
    2  12
    3  14
    ...
    Gebruik nu gnuplot, en wel als volgt. Geef eerst het commando gnuplot, en dan (waarbij gnuplot> de prompt binnen gnuplot is):
        gnuplot> plot "stats.txt" with lines
    Er is een pdf-exportfunctie.
    En dan dat plaatje in je LaTeX-file binnenhalen.
    Je kunt gnuplot onder Windows eenvoudig installeren van hier (download versie 5.2.8, bijvoorbeeld). Binnen gnuplot moet je misschien het "loadpath" goed zetten, met zoiets als gunplot> set loadpath "C:\\JeMap\\" om de files die je wilt plotten te kunnen vinden. In Ubuntu is het ook eenvoudig te installeren. Op internet staat alles en meer over gnuplot, bijvoorbeeld daar (Wayback machine).
    Een ander plot-programma mag ook.

Huiswerk

De antwoorden op de opgaven worden tevens via WWW verspreid. Als er vragen over de opgaven zijn, laat het weten.