Een 2D-tabel wordt in een tekstbestand opgeslagen. Elke rij van de tabel wordt als regel in het tekstbestand weergegeven. De elementen van de tabel zijn gehele getallen. Verder is het zo dat de tabel grotendeels uit nullen bestaat: er komen enkel niet-overlappende en niet-rakende rechthoekige blokken in voor, waarbij elk element binnen het blok een gelijke waarde heeft. Onderstaande tabel geeft een voorbeeld van een geldig tekstbestand.

0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 0 0 0 4 0 9 0
8 8 8 8 8 0 0 0 0 0 0 0 2 2 2 0 0 0 4 0 9 0
8 8 8 8 8 0 8 8 8 8 0 0 2 2 2 0 0 0 4 0 9 0
8 8 8 8 8 0 8 8 8 8 0 0 2 2 2 0 0 0 4 0 9 0
8 8 8 8 8 0 8 8 8 8 0 0 0 0 0 0 0 0 4 0 0 0
8 8 8 8 8 0 8 8 8 8 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Schrijf volgende functies:

Voor de onderstaande tabel
0 0 0 0 0 0 +0 +0 +0 +0 0 0 9 9 0 0 0 0 0 0
0 0 4 0 0 0 +0 +7 +7 +7 0 0 9 9 0 0 0 0 0 0
0 0 4 0 0 0 +0 +0 +0 +0 0 0 9 9 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 9 9 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0
0 0 0 0 0 0 0 0 8 8 0 0 0 0 0 0 8 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0
0 0 0 0 0 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 7 7 7 0 0 0 0 0 0 0 0 0 6 0 0
0 0 0 0 0 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
levert de opdracht
deel_matrix({((9, 5), (12, 7)): 7, ((7, 8), (7, 9)): 8, ((1, 7), (1, 9)): 7, ((0, 12), (3, 13)): 9, ((5, 16), (8, 16)): 8, ((1, 2), (2, 2)): 4, ((11, 17), (11, 17)): 6}, 0, 6, 2, 3)
het stukje van de tabel gemarkeerd met plustekens. Het resultaat van de functie is dus
[[0, 0, 0, 0], [0, 7, 7, 7], [0, 0, 0, 0]]

Voorbeeld

Tabblad 1

Inhoud van 'BlokMatrix_0.txt
0 0 0 0 0 0 0 0 0 0 0 0 9 9 0 0 0 0 0 0
0 0 4 0 0 0 0 7 7 7 0 0 9 9 0 0 0 0 0 0
0 0 4 0 0 0 0 0 0 0 0 0 9 9 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 9 9 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0
0 0 0 0 0 0 0 0 8 8 0 0 0 0 0 0 8 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0
0 0 0 0 0 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 7 7 7 0 0 0 0 0 0 0 0 0 6 0 0
0 0 0 0 0 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Inhoud van 'BlokMatrix_1.txt
0 0 0 0 0 0 6 6 0 0 0 0 0 0 0 0
0 0 0 0 0 0 6 6 0 0 7 7 7 7 7 0
0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 3 0 0 9 9 9 9 0 0 0 0 0 0 0 0
0 3 0 0 9 9 9 9 0 0 0 2 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Inhoud van 'BlokMatrix_2.txt
0 7 7 0 0 0 0 0 0
0 7 7 0 0 9 0 0 0
0 7 7 0 0 9 0 0 0
0 7 7 0 0 9 0 0 0
0 7 7 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0
6 6 0 0 0 0 0 0 0
0 0 0 0 5 5 0 0 0
0 0 0 0 0 0 0 0 0
lees_matrix('BlokMatrix_0.txt')
#{((9, 5), (12, 7)): 7, ((7, 8), (7, 9)): 8, ((1, 7), (1, 9)): 7, ((0, 12), (3, 13)): 9, ((5, 16), (8, 16)): 8, ((1, 2), (2, 2)): 4, ((11, 17), (11, 17)): 6}

lees_matrix('BlokMatrix_1.txt')
#{((4, 11), (5, 11)): 2, ((2, 1), (4, 1)): 3, ((1, 10), (1, 14)): 7, ((3, 4), (4, 7)): 9, ((0, 6), (1, 7)): 6}

lees_matrix('BlokMatrix_2.txt')
#{((0, 1), (4, 2)): 7, ((7, 4), (7, 5)): 5, ((5, 6), (5, 6)): 1, ((6, 0), (6, 1)): 6, ((1, 5), (3, 5)): 9}

Tabblad 2

deel_matrix({((9, 5), (12, 7)): 7, ((7, 8), (7, 9)): 8, ((1, 7), (1, 9)): 7, ((0, 12), (3, 13)): 9, ((5, 16), (8, 16)): 8, ((1, 2), (2, 2)): 4, ((11, 17), (11, 17)): 6}, 0, 6, 2, 3)
#[[0, 0, 0, 0], [0, 7, 7, 7], [0, 0, 0, 0]]

deel_matrix({((3, 9), (7, 12)): 5, ((6, 2), (6, 3)): 1, ((9, 6), (10, 8)): 5, ((1, 15), (4, 15)): 5}, 5, 11, 4, 3)
#[[5, 5, 0, 0], [5, 5, 0, 0], [5, 5, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

deel_matrix({((0, 20), (3, 20)): 9, ((0, 18), (4, 18)): 4, ((0, 12), (3, 14)): 2, ((2, 6), (5, 9)): 8, ((1, 0), (5, 4)): 8}, 1, 19, 3, 2)
#[[0, 9, 0], [0, 9, 0], [0, 9, 0], [0, 0, 0]]