Sign in Join
Wiki copytemporary

Example: Multidimensional dynamic array/ja: what changed

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

Title: Example: Multidimensional dynamic array/ja

OldNewLine
1+{訳注:新規プロジェクト>コンソールアプリ を選択し、以下のコードを張り付けて実行すると、Outputの結果が出力されます。}
2+
3+### コード
4+```
5+program 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.
84+```
85+
86+### 出力
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+```
153+
154+## 関連情報
155+
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>)
158+
159+---
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).*

Back to history