Voor de tweede programmeeropgave moet een programma worden
geschreven dat een file kan coderen en decoderen.
Aan de gebruiker wordt gevraagd of het
om coderen of decoderen gaat, hoe de originele (bestaande) file en de
"doelfile" heten, en op welke
regel van de originele file het (de)coderen moet beginnen en op welke regel het
moet eindigen.
Hierbuiten moet onveranderd gekopieerd worden.
Het totale aantal karakters van oorspronkelijke file en doelfile
moet ook geteld en op het beeldscherm afgedrukt
worden, evenals uiteraard het aantal regels.
Het coderen geschiedt regel per regel, en gaat als volgt.
Iedere opeenvolging van k (groter dan of gelijk aan 2)
dezelfde karakters binnen een regel
wordt vervangen door dat karakter onmiddellijk gevolgd door het
getal k.
Een enkel karakter blijft onveranderd,
evenals regelovergangen.
Zo wordt de te coderen regel
Eet meer zeeegels gecodeerd als Eet me2r 10ze3gels
(in de originele zin staan tien spaties tussen meer en zeeegels).
Om later te kunnen decoderen hadden we moeten aannemen dat er
geen cijfers in de regel staan,
immers wat zou anders de codering e234 betekenen -
twee e's en 4 3-en of 234 e's?
Om dat probleem op te lossen
worden gecodeerde cijfers voorafgegaan door
een \ (backslash).
De backslash zelf wordt met twee backslashes gecodeerd.
Zo moet ABC11123ddd\efG\\\1
gecodeerd worden als ABC\13\2\3d3\\efG\\3\1.
Opmerkingen:
Uiterste inleverdatum: voor voltijdstudenten: vrijdag 15 oktober 1999, 17.00 uur; voor deeltijdstudenten: dinsdagavond 19 oktober 1999. In te leveren: schijfje met het programma (of het programma per email aan de nakijker (dagstudenten: hoen@liacs.nl; avondstudenten: kosters@liacs.nl) sturen) en listing op papier; beide in de bak in de metalen boekenkast achterin de gang bij de Indyzaal. Overal duidelijk de datum en de namen van de makers vermelden. Te gebruiken compiler: als het maar C++ is. Normering: layout 2; commentaar 2; overzichtelijkheid/modulariteit 2; werking 4.
Vragen en/of opmerkingen kunnen worden gestuurd naar: kosters@liacs.nl.
23 september 1999 - http://www.liacs.nl/home/kosters/pm/op2pm99.html