Een tekstbestand bevat een tabel van gehele getallen. Elke
rij van de tabel is op een regel weergegeven, en de tabelelement zijn
via tabulaties van elkaar gescheiden (karakter '\t'
).
Deze getallen zijn het resultaat van een meetapparaat,
dat gebruikt wordt voor mijnprospectie. De bedoeling is om uitgaande van
dit tekstbestand een kaart te genereren. Deze kaart geeft aan waar
men bij voorkeur bodemstalen neemt om verdere gegevens i.v.m.
de samenstelling van de ondergrond te bekomen. De kaart markeert
elke positie waar het meetsignaal strikt groter is dan het gemiddelde van zijn
vier naburen. Tabelelementen die niet met een volledige zijde grenzen
aan het element in kwestie worden niet als naburig beschouwd.
De naburen van cel "X" zijn in onderstaande figuur in het zwart gekleurd:
Het resultaat is een nieuw tekstbestand, van dezelfde structuur als het invoerbestand.
In dit nieuwe tekstbestand zijn alle interessante locaties met een
'X'
-karakter aangegeven, en alle niet-interessante locaties met een '.'
-karakter. Bemerk dat zich een probleem kan voordoen
aan de rand van een kaart; naburen zijn hier niet steeds gedefinieerd, en dus kunnen we ook geen 'X'
op de rand van de kaart plaatsen.. Markeer daarom de volledige rand met een '.'
-teken.
Schrijf de functie schrijfKaart()
die dit realiseert. Je mag hierbij aannemen dat het invoerbestand
bestaat en een geldige inhoud heeft (met name een rechthoekige tabel gehele getallen).
Twee tekstargumenten, namelijk de namen van invoer- en uitvoerbestand (in die volgorde)
Het tesktbestand met de gewenste kaart.
De bestanden die Dodona gebruikt in de testcases vind je in het gecomprimeerde bestand goudmijn.zip1.
schrijfKaart('Mijn.txt', 'Kaart.txt') Invoerbestand ('Mijn.txt'): 24 95 27 60 96 41 11 57 21 31 22 98 73 33 74 30 12 77 43 60 63 73 23 52 90 52 20 33 85 4 51 7 21 27 89 24 66 35 65 13 86 24 87 46 80 56 29 66 2 54 50 98 61 93 Uitvoerbestand ('Kaart.txt'): . . . . . . . . . . . X X . X . . . . X X X . . X . . . X . X . . . X . . . X . X . X . . . . . . . . . . .