LIACS >Kristian Rietveld >Courses >Programmeermethoden NA, Najaar 2016
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 zaal 302/304, zaal 303, zaal 306/308 en zalen 307 en 309 (de PC-zalen), op dinsdag 11 oktober 2016, van 11:15 tot 13:00 uur.

Spreek/Vragenuur in zalen 302 ... 309: dinsdag 11 en donderdag 13 oktober 2016, van circa 15:30 tot 17:00 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 8.

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 decoderen, eerst weer voor eenvoudige gevallen. Zorg eerst dat het werkt voor een gecodeerde file zonder backslashes.
  3. En nu de backslashes erbij voor het coderen en decoderen — met minimale inspanning.
  4. Doe het Lychrel-gebeuren. Dit heeft eigenlijk niets te maken met het coderen en decoderen, en kan er eenvoudig bij worden gemaakt.
    Tip: schrijf een functie die het omgekeerde van het getal x teruggeeft, dus 196 wordt 691.
  5. Worden regelovergangen goed afgehandeld? En het eerste karakter van de file? En het laatste?
  6. Maak de statistiekjes voor het coderen in orde.
  7. Werk aan het histogram voor het decoderen. Maak een lijst 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.
  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. Tip: gebruik eventueel het UNIX-commando diff om je eigen uitvoerfiles te vergelijken met de correcte: diff jouwfile goedefile moet "niks" opleveren.
  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.