Sign in Join
Wiki copytemporary

Example: Multidimensional dynamic array/fr: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11### Code
22
33``` pascal
44program project1;
55
66type
77 TArr2D = array of array of Integer;
88
99procedure FillArr2D(Arr: TArr2D);
1010var
1111 i, j: Integer;
1212begin
1313 for i:=Low(Arr) to High(Arr) do
1414 for j:=Low(Arr[i]) to High(Arr[i]) do
1515 Arr[i][j] := i*10 + j;
1616end;
1717
1818procedure ShowArr2D(Arr: TArr2D);
1919var
2020 i, j: Integer;
2121begin
2222 for i:=Low(Arr) to High(Arr) do
2323 begin
2424 Write('Arr[', i, ']: ');
2525 for j:=Low(Arr[i]) to High(Arr[i]) do
2626 Write(Arr[i][j]:2, ' ');
2727 WriteLn;
2828 end;
2929end;
3030
3131procedure Pause;
3232begin
3333 WriteLn;
3434 Write('...');
3535 ReadLn;
3636 WriteLn;
3737end;
3838
3939var
4040 Arr2D: TArr2D;
4141
4242begin
4343 SetLength(Arr2D, 5, 3); // resize on two dimensions
4444 WriteLn('Rectangular dynamic array after resizing:');
4545 WriteLn('-----------------------------------------');
4646 ShowArr2D(Arr2D);
4747 Pause;
4848
4949 FillArr2D(Arr2D);
5050 WriteLn('Rectangular dynamic array after filling:');
5151 WriteLn('-----------------------------------------');
5252 ShowArr2D(Arr2D);
5353 Pause;
5454
5555 SetLength(Arr2D, 10); // resize on one dimension
5656 WriteLn('Non-rectangular dynamic array after resizing on first dimension:');
5757 WriteLn('----------------------------------------------------------------');
5858 ShowArr2D(Arr2D);
5959 Pause;
6060
6161 SetLength(Arr2D[0], 9);
6262 SetLength(Arr2D[1], 7);
6363 SetLength(Arr2D[2], 6);
6464 SetLength(Arr2D[3], 9);
6565 SetLength(Arr2D[4], 5);
6666 SetLength(Arr2D[5], 8);
6767 SetLength(Arr2D[6], 5);
6868 SetLength(Arr2D[7], 3);
6969 SetLength(Arr2D[8], 1);
7070 SetLength(Arr2D[9], 7);
7171 WriteLn('Non-rectangular dynamic array after individual resizing on second dimension:');
7272 WriteLn('----------------------------------------------------------------------------');
7373 ShowArr2D(Arr2D);
7474 Pause;
7575
7676 FillArr2D(Arr2D);
7777 WriteLn('Non-rectangular dynamic array after filling:');
7878 WriteLn('--------------------------------------------');
7979 ShowArr2D(Arr2D);
8080 Pause;
8181end.
8282```
8383
8484### Sortie
8585
86-`Rectangular dynamic array after resizing:`\
87-`-----------------------------------------`\
88-`Arr[0]:   0   0   0`\
89-`Arr[1]:   0   0   0`\
90-`Arr[2]:   0   0   0`\
91-`Arr[3]:   0   0   0`\
92-`Arr[4]:   0   0   0`\
86+```text
87+Rectangular dynamic array after resizing:
88+-----------------------------------------
89+Arr[0]: 0 0 0
90+Arr[1]: 0 0 0
91+Arr[2]: 0 0 0
92+Arr[3]: 0 0 0
93+Arr[4]: 0 0 0
9394
94-`...`\
95+...
9596
96-`Rectangular dynamic array after filling:`\
97-`-----------------------------------------`\
98-`Arr[0]:   0   1   2`\
99-`Arr[1]:  10  11  12`\
100-`Arr[2]:  20  21  22`\
101-`Arr[3]:  30  31  32`\
102-`Arr[4]:  40  41  42`\
97+Rectangular dynamic array after filling:
98+-----------------------------------------
99+Arr[0]: 0 1 2
100+Arr[1]: 10 11 12
101+Arr[2]: 20 21 22
102+Arr[3]: 30 31 32
103+Arr[4]: 40 41 42
103104
104-`...`\
105+...
105106
106-`Non-rectangular dynamic array after resizing on first dimension:`\
107-`----------------------------------------------------------------`\
108-`Arr[0]:   0   1   2`\
109-`Arr[1]:  10  11  12`\
110-`Arr[2]:  20  21  22`\
111-`Arr[3]:  30  31  32`\
112-`Arr[4]:  40  41  42`\
113-`Arr[5]:`\
114-`Arr[6]:`\
115-`Arr[7]:`\
116-`Arr[8]:`\
117-`Arr[9]:`\
107+Non-rectangular dynamic array after resizing on first dimension:
108+----------------------------------------------------------------
109+Arr[0]: 0 1 2
110+Arr[1]: 10 11 12
111+Arr[2]: 20 21 22
112+Arr[3]: 30 31 32
113+Arr[4]: 40 41 42
114+Arr[5]:
115+Arr[6]:
116+Arr[7]:
117+Arr[8]:
118+Arr[9]:
118119
119-`...`\
120+...
120121
121-`Non-rectangular dynamic array after individual resizing on second dimension:`\
122-`----------------------------------------------------------------------------`\
123-`Arr[0]:   0   1   2   0   0   0   0   0   0`\
124-`Arr[1]:  10  11  12   0   0   0   0`\
125-`Arr[2]:  20  21  22   0   0   0`\
126-`Arr[3]:  30  31  32   0   0   0   0   0   0`\
127-`Arr[4]:  40  41  42   0   0`\
128-`Arr[5]:   0   0   0   0   0   0   0   0`\
129-`Arr[6]:   0   0   0   0   0`\
130-`Arr[7]:   0   0   0`\
131-`Arr[8]:   0`\
132-`Arr[9]:   0   0   0   0   0   0   0`\
122+Non-rectangular dynamic array after individual resizing on second dimension:
123+----------------------------------------------------------------------------
124+Arr[0]: 0 1 2 0 0 0 0 0 0
125+Arr[1]: 10 11 12 0 0 0 0
126+Arr[2]: 20 21 22 0 0 0
127+Arr[3]: 30 31 32 0 0 0 0 0 0
128+Arr[4]: 40 41 42 0 0
129+Arr[5]: 0 0 0 0 0 0 0 0
130+Arr[6]: 0 0 0 0 0
131+Arr[7]: 0 0 0
132+Arr[8]: 0
133+Arr[9]: 0 0 0 0 0 0 0
133134
134-`...`\
135+...
135136
136-`Non-rectangular dynamic array after filling:`\
137-`--------------------------------------------`\
138-`Arr[0]:   0   1   2   3   4   5   6   7   8`\
139-`Arr[1]:  10  11  12  13  14  15  16`\
140-`Arr[2]:  20  21  22  23  24  25`\
141-`Arr[3]:  30  31  32  33  34  35  36  37  38`\
142-`Arr[4]:  40  41  42  43  44`\
143-`Arr[5]:  50  51  52  53  54  55  56  57`\
144-`Arr[6]:  60  61  62  63  64`\
145-`Arr[7]:  70  71  72`\
146-`Arr[8]:  80`\
147-`Arr[9]:  90  91  92  93  94  95  96`\
137+Non-rectangular dynamic array after filling:
138+--------------------------------------------
139+Arr[0]: 0 1 2 3 4 5 6 7 8
140+Arr[1]: 10 11 12 13 14 15 16
141+Arr[2]: 20 21 22 23 24 25
142+Arr[3]: 30 31 32 33 34 35 36 37 38
143+Arr[4]: 40 41 42 43 44
144+Arr[5]: 50 51 52 53 54 55 56 57
145+Arr[6]: 60 61 62 63 64
146+Arr[7]: 70 71 72
147+Arr[8]: 80
148+Arr[9]: 90 91 92 93 94 95 96
148149
149-`...`
150+...
151+```
150152
151153## Voir aussi
152154
153155- [[Dynamic array/fr|Tableaux dynamiques]]
154156- [Guide de référence Free Pascal : Tableaux dynamiques](http://www.freepascal.org/docs-html/current/ref/refsu15.html#x39-520003.3.1)
155157
156158---
157159*From the Free Pascal wiki, page "Example: Multidimensional dynamic array/fr", as it stood on 2020-02-14 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history