LIACS >Kristian Rietveld >Courses >Programmeermethoden NA, Najaar 2017
headerimg

Banner image by Sebastian Niedlich on Flickr, CC BY-NC-SA 2.0

Programmeermethoden NA
Werkcollege 6: Tweede opgave III

Het zesde werkcollege van het vak Programmeermethoden NA vindt plaats in de computerzalen van het Snellius-gebouw, op dinsdag 17 oktober 2017, van 11:00 tot 12:45 uur.

Voorbereiding

Als voorkennis wordt bekend verondersteld:
  • Inhoud colleges tot en met deze week (inclusief lijsten).
  • Kennis betreffende het omgaan met files. Zie onder meer het collegedictaat Python, Hoofdstuk 9.

Het eigenlijke werkcollege

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

  1. Zorg in ieder geval dat je de opdrachten (boven de streep) voor het vijfde werkcollege af hebt.
  2. Werk vervolgens aan het coderen, eerst weer voor eenvoudige gevallen. Gebruik eerst een vaste k om makkelijk te testen. Bijvoorbeeld k=2. Test daarna een andere k en maak dit pas later random.
  3. Doe het Lychrel-gebeuren. Dit heeft eigenlijk niets te maken met het coderen en ontcijferen, en kan er eenvoudig bij worden gemaakt.
    Tip: schrijf een functie die het omgekeerde van het getal x teruggeeft, dus 196 wordt 691.
  4. Zorg ervoor dat er tijdens het ontcijferen wordt gezocht naar getallen in de boodschap. Roep voor elk gevonden getal de Lychrel-functie aan. Houd de gevonden getallen ook bij in een lijst, zodat na afloop van het ontcijferen de statistieken kunnen worden berekend.
  5. Maak de statistiekjes voor het ontcijferen in orde.
  6. Worden regelovergangen goed afgehandeld? En het eerste karakter van de file? En het laatste?
  7. Werk aan het histogram voor het coderen. Maak twee lijsten bestaande uit 26 elementen die allemaal op nul worden geinitialiseerd. Wanneer een bepaald karakter een aantal keer wordt weggeschreven, hoog dan het correcte element van de lijst op. Denk aan ord() en ord("a") om de basis van de lijst (index 0) te berekenen. Schrijf een functie om gegeven deze twee lijsten een net histogram te tekenen. Zie de opdracht voor een voorbeeld hoe dit histogram eruit moet komen te zien.
  8. Zorg ervoor dat je het bovenstaande een week(je) voor de deadline af hebt!

  9. =======================================
  10. Gebruik alle testfiles om te controleren of het programma correct werkt. Zie de testbestanden bij de tweede programmeeropgave.
  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 zevende werkcollege hoe het verslag eruit moet zien.