Sign in Join
Wiki copytemporary

Example: Multidimensional dynamic array/ja: what changed

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

OldNewLine
1-{訳注:新規プロジェクト>コンソールアプリ を選択し、以下のコードを張り付けて実行すると、Outputの結果が出力されます。}
1+{訳注:新規プロジェクト>コンソールアプリ を選択し、以下のコードを張り付けて実行すると、Outputの結果が出力されます。}
22
33### コード
4-```
4+
5+``` pascal
56program project1;
6-
7- type
8- TArr2D = array of array of Integer;
9-
10- procedure FillArr2D(Arr: TArr2D);
11- var
12- i, j: Integer;
13- begin
14- for i:=Low(Arr) to High(Arr) do
15- for j:=Low(Arr[i]) to High(Arr[i]) do
16- Arr[i][j] := i*10 + j;
17- end;
18-
19- procedure ShowArr2D(Arr: TArr2D);
20- var
21- i, j: Integer;
22- begin
23- for i:=Low(Arr) to High(Arr) do
24- begin
25- Write('Arr[', i, ']: ');
26- for j:=Low(Arr[i]) to High(Arr[i]) do
27- Write(Arr[i][j]:2, ' ');
28- WriteLn;
29- end;
30- end;
31-
32- procedure Pause;
33- begin
34- WriteLn;
35- Write('...');
36- ReadLn;
37- WriteLn;
38- end;
39-
40-
41- var
42- Arr2D: TArr2D;
43-
44- begin
45- SetLength(Arr2D, 5, 3); // 配列Arr2Dを2次元配列へSetLength
46- WriteLn(UTF8ToAnsi('Arr2D を2次元配列に SetLength した後の矩形の動的配列:'));
47- WriteLn('-----------------------------------------');
48- ShowArr2D(Arr2D);
49- Pause;
50-
51- FillArr2D(Arr2D);
52- WriteLn(UTF8ToAnsi('充填後の矩形の動的配列:'));
53- WriteLn('-----------------------------------------');
54- ShowArr2D(Arr2D);
55- Pause;
56-
57- SetLength(Arr2D, 10); // 配列Arr2Dを1次元配列へSetLength
58- WriteLn(UTF8ToAnsi('Arr2Dを1次元配列に SetLength した後の非矩形の動的配列:'));
59- WriteLn('----------------------------------------------------------------');
60- ShowArr2D(Arr2D);
61- Pause;
62-
63- SetLength(Arr2D[0], 9);
64- SetLength(Arr2D[1], 7);
65- SetLength(Arr2D[2], 6);
66- SetLength(Arr2D[3], 9);
67- SetLength(Arr2D[4], 5);
68- SetLength(Arr2D[5], 8);
69- SetLength(Arr2D[6], 5);
70- SetLength(Arr2D[7], 3);
71- SetLength(Arr2D[8], 1);
72- SetLength(Arr2D[9], 7);
73- WriteLn(UTF8ToAnsi('1次元配列Arr2D に対して、2次元配列に SetLength した後の非矩形の動的配列:'));
74- WriteLn('----------------------------------------------------------------------------');
75- ShowArr2D(Arr2D);
76- Pause;
77-
78- FillArr2D(Arr2D);
79- WriteLn(UTF8ToAnsi('充填後の非矩形の動的配列:'));
80- WriteLn('--------------------------------------------');
81- ShowArr2D(Arr2D);
82- Pause;
83- end.
7+
8+type
9+ TArr2D = array of array of Integer;
10+
11+procedure FillArr2D(Arr: TArr2D);
12+var
13+ i, j: Integer;
14+begin
15+ for i:=Low(Arr) to High(Arr) do
16+ for j:=Low(Arr[i]) to High(Arr[i]) do
17+ Arr[i][j] := i*10 + j;
18+end;
19+
20+procedure ShowArr2D(Arr: TArr2D);
21+var
22+ i, j: Integer;
23+begin
24+ for i:=Low(Arr) to High(Arr) do
25+ begin
26+ Write('Arr[', i, ']: ');
27+ for j:=Low(Arr[i]) to High(Arr[i]) do
28+ Write(Arr[i][j]:2, ' ');
29+ WriteLn;
30+ end;
31+end;
32+
33+procedure Pause;
34+begin
35+ WriteLn;
36+ Write('...');
37+ ReadLn;
38+ WriteLn;
39+end;
40+
41+var
42+ Arr2D: TArr2D;
43+
44+begin
45+ SetLength(Arr2D, 5, 3); // 配列Arr2Dを2次元配列へSetLength
46+ WriteLn(UTF8ToAnsi('Arr2D を2次元配列に SetLength した後の矩形の動的配列:'));
47+ WriteLn('-----------------------------------------');
48+ ShowArr2D(Arr2D);
49+ Pause;
50+
51+ FillArr2D(Arr2D);
52+ WriteLn(UTF8ToAnsi('充填後の矩形の動的配列:'));
53+ WriteLn('-----------------------------------------');
54+ ShowArr2D(Arr2D);
55+ Pause;
56+
57+ SetLength(Arr2D, 10); // 配列Arr2Dを1次元配列へSetLength
58+ WriteLn(UTF8ToAnsi('Arr2Dを1次元配列に SetLength した後の非矩形の動的配列:'));
59+ WriteLn('----------------------------------------------------------------');
60+ ShowArr2D(Arr2D);
61+ Pause;
62+
63+ SetLength(Arr2D[0], 9);
64+ SetLength(Arr2D[1], 7);
65+ SetLength(Arr2D[2], 6);
66+ SetLength(Arr2D[3], 9);
67+ SetLength(Arr2D[4], 5);
68+ SetLength(Arr2D[5], 8);
69+ SetLength(Arr2D[6], 5);
70+ SetLength(Arr2D[7], 3);
71+ SetLength(Arr2D[8], 1);
72+ SetLength(Arr2D[9], 7);
73+ WriteLn(UTF8ToAnsi('1次元配列Arr2D に対して、2次元配列に SetLength した後の非矩形の動的配列:'));
74+ WriteLn('----------------------------------------------------------------------------');
75+ ShowArr2D(Arr2D);
76+ Pause;
77+
78+ FillArr2D(Arr2D);
79+ WriteLn(UTF8ToAnsi('充填後の非矩形の動的配列:'));
80+ WriteLn('--------------------------------------------');
81+ ShowArr2D(Arr2D);
82+ Pause;
83+end.
8484```
8585
8686### 出力
87-```
88-Arr2D を2次元配列に SetLength した後の矩形の動的配列:
89- -----------------------------------------
90- Arr[0]: 0 0 0
91- Arr[1]: 0 0 0
92- Arr[2]: 0 0 0
93- Arr[3]: 0 0 0
94- Arr[4]: 0 0 0
95-
96- ...
97-
98- 充填後の矩形の動的配列:
99- -----------------------------------------
100- Arr[0]: 0 1 2
101- Arr[1]: 10 11 12
102- Arr[2]: 20 21 22
103- Arr[3]: 30 31 32
104- Arr[4]: 40 41 42
105-
106- ...
107-
108- Arr2Dを1次元配列に SetLength した後の非矩形の動的配列:
109- ----------------------------------------------------------------
110- Arr[0]: 0 1 2
111- Arr[1]: 10 11 12
112- Arr[2]: 20 21 22
113- Arr[3]: 30 31 32
114- Arr[4]: 40 41 42
115- Arr[5]:
116- Arr[6]:
117- Arr[7]:
118- Arr[8]:
119- Arr[9]:
120-
121- ...
122-
123- 1次元配列Arr2D に対して、2次元配列に SetLength した後の非矩形の動的配列:
124- ----------------------------------------------------------------------------
125- Arr[0]: 0 1 2 0 0 0 0 0 0
126- Arr[1]: 10 11 12 0 0 0 0
127- Arr[2]: 20 21 22 0 0 0
128- Arr[3]: 30 31 32 0 0 0 0 0 0
129- Arr[4]: 40 41 42 0 0
130- Arr[5]: 0 0 0 0 0 0 0 0
131- Arr[6]: 0 0 0 0 0
132- Arr[7]: 0 0 0
133- Arr[8]: 0
134- Arr[9]: 0 0 0 0 0 0 0
135-
136- ...
137-
138- 充填後の非矩形の動的配列:
139- --------------------------------------------
140- Arr[0]: 0 1 2 3 4 5 6 7 8
141- Arr[1]: 10 11 12 13 14 15 16
142- Arr[2]: 20 21 22 23 24 25
143- Arr[3]: 30 31 32 33 34 35 36 37 38
144- Arr[4]: 40 41 42 43 44
145- Arr[5]: 50 51 52 53 54 55 56 57
146- Arr[6]: 60 61 62 63 64
147- Arr[7]: 70 71 72
148- Arr[8]: 80
149- Arr[9]: 90 91 92 93 94 95 96
150-
151- ...
152-```
15387
88+`Arr2D を2次元配列に SetLength した後の矩形の動的配列:`\
89+`-----------------------------------------`\
90+`Arr[0]:   0   0   0`\
91+`Arr[1]:   0   0   0`\
92+`Arr[2]:   0   0   0`\
93+`Arr[3]:   0   0   0`\
94+`Arr[4]:   0   0   0`\
95+
96+`...`\
97+
98+`充填後の矩形の動的配列:`\
99+`-----------------------------------------`\
100+`Arr[0]:   0   1   2`\
101+`Arr[1]:  10  11  12`\
102+`Arr[2]:  20  21  22`\
103+`Arr[3]:  30  31  32`\
104+`Arr[4]:  40  41  42`\
105+
106+`...`\
107+
108+`Arr2Dを1次元配列に SetLength した後の非矩形の動的配列:`\
109+`----------------------------------------------------------------`\
110+`Arr[0]:   0   1   2`\
111+`Arr[1]:  10  11  12`\
112+`Arr[2]:  20  21  22`\
113+`Arr[3]:  30  31  32`\
114+`Arr[4]:  40  41  42`\
115+`Arr[5]:`\
116+`Arr[6]:`\
117+`Arr[7]:`\
118+`Arr[8]:`\
119+`Arr[9]:`\
120+
121+`...`\
122+
123+`1次元配列Arr2D に対して、2次元配列に SetLength した後の非矩形の動的配列:`\
124+`----------------------------------------------------------------------------`\
125+`Arr[0]:   0   1   2   0   0   0   0   0   0`\
126+`Arr[1]:  10  11  12   0   0   0   0`\
127+`Arr[2]:  20  21  22   0   0   0`\
128+`Arr[3]:  30  31  32   0   0   0   0   0   0`\
129+`Arr[4]:  40  41  42   0   0`\
130+`Arr[5]:   0   0   0   0   0   0   0   0`\
131+`Arr[6]:   0   0   0   0   0`\
132+`Arr[7]:   0   0   0`\
133+`Arr[8]:   0`\
134+`Arr[9]:   0   0   0   0   0   0   0`\
135+
136+`...`\
137+
138+`充填後の非矩形の動的配列:`\
139+`--------------------------------------------`\
140+`Arr[0]:   0   1   2   3   4   5   6   7   8`\
141+`Arr[1]:  10  11  12  13  14  15  16`\
142+`Arr[2]:  20  21  22  23  24  25`\
143+`Arr[3]:  30  31  32  33  34  35  36  37  38`\
144+`Arr[4]:  40  41  42  43  44`\
145+`Arr[5]:  50  51  52  53  54  55  56  57`\
146+`Arr[6]:  60  61  62  63  64`\
147+`Arr[7]:  70  71  72`\
148+`Arr[8]:  80`\
149+`Arr[9]:  90  91  92  93  94  95  96`\
150+
151+`...`
152+
154153## 関連情報
155154
156- * [[Dynamic array/ja]]
157- * [Free Pascal Reference guide: Dynamic arrays](<http://www.freepascal.org/docs-html/current/ref/refsu15.html#x39-520003.3.1>)
155+- [[Dynamic array/ja]]
156+- [Free Pascal Reference guide: Dynamic arrays](http://www.freepascal.org/docs-html/current/ref/refsu15.html#x39-520003.3.1)
158157
159158---
160-*From the Free Pascal wiki, page "Example: Multidimensional dynamic array/ja", as the Internet Archive kept it on 2024-11-18. 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).*
159+*From the Free Pascal wiki, page "Example: Multidimensional dynamic array/ja", 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).*
160+Category: Examples/ja

Back to history