Programmeermethoden
Werkcollege 5: Op papier I en Tweede opgave II

Het vijfde werkcollege van het vak Programmeermethoden vindt plaats in de week van 28 september tot en met 2 oktober 2020.

Voorbereiding

Als voorkennis wordt bekend verondersteld:

Het eigenlijke werkcollege

Maak deze week thuis van deze A4: De antwoorden zijn hier te vinden. En misschien komt er volgende week wel een video over.

Doe nu achtereenvolgens deze opdrachten, die van alles met de tweede programmeeropgave te maken hebben.

  1. Het vierde werkcollege was om er een beetje in te komen. Nu de opgave, waarvoor je het vorige werkcollege goed kunt gebruiken. Verander steeds weinig aan je programma. In het bijzonder, voeg vooralsnog geen get's (en put's) meer toe! Voorlopig nog niet doen: filenamen kiezen.
  2. Hint: alleen een paar eenvoudige "eigenschappen" zijn nodig, zoals "hoeveel dezelfde karakters hebben we zojuist gezien?", en later: "wat is de getalswaarde van het getal tot nu toe (vaak 0)?".
  3. Maak eerst het coderen, voor het geval de file geen backslashes en cijfers bevat. Gebruik het huidige en het vorige karakter. Gaat het goed voor een eenvoudige voorbeeldfile? Tip: dit kost maar een paar regels C++!
  4. Gaan meerdere lege regels na elkaar goed? Let op: minimale reparatie nodig.
  5. Decoderen, onder de aanname dat er geen backslashes te decoderen zijn.
  6. Nu coderen als er wel cijfers zijn, en backslashes.
    Binnen de grote while-loop van het coderen staan nu zo'n 30 tot 40 regels.
  7. En decoderen van willekeurige (gecodeerde) files. Let op: als het meezit kost dit één extra regel! Geheime tip: één sluwe get?
  8. Zorg ervoor dat je het bovenstaande rond 2 oktober af hebt!
    ======================================================
  9. Doe het Lychrel-gebeuren. Dit heeft eigenlijk niets te maken met het coderen, en kan er eenvoudig bij worden gemaakt. Gebruik de technieken van de eerste punten betreffende files van het vierde werkcollege.
    Tip: schrijf een functie die het omgekeerde van het getal x teruggeeft, dus 196 wordt 691. Let op "overflow", dit kan op twee plaatsten gebeuren!
  10. Gebruik alle testfiles om te controleren of het programma correct werkt.
  11. Laat de gebruiker de namen van in- en uitvoerfile kiezen.
  12. Maak nu de tweede programmeeropgave af. Zijn er duidelijke functies gemaakt — daar had je eerder aan moeten denken!? Heeft main hooguit een regel of tien?
  13. Zie bij het zesde werkcollege hoe het verslag eruit moet zien.

Huiswerk

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