Sign in Join
Wiki copytemporary

Array/ja: what changed

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

Title: Array/ja

OldNewLine
1+**配列** は、同じ種類の [[Variable/ja|変数]] の集合です。 例えば、 [[Char/ja|char]] や、 [[Integer/ja|integer]] や, [[Real/ja|real]] の配列です。 実際、ユーザー定義型を含むどのような種類の変数も、配列の形に扱うことができます。 しかしながら、 配列の要素は同じ種類でなくてはいけません。 つまり、異なる種類の変数は、ひとつの配列の中に集めることはできません。 この目的のためには、 [[Record/ja|record]] を用いてください。
2+
3+配列は、数学的には以下の反映となります。
4+
5+- [[vector/ja|ベクトル]] (1次元配列)
6+- マトリックス (2次元配列)
7+
8+## 静的配列
9+
10+宣言部は単純な種類と似ていますが、配列の要素の種類と、インデックスの範囲を指定して要素数を設定する必要があります。
11+
12+``` pascal
13+program
14+...
15+var
16+ variablename: array [startindex..endindex] of type;
17+begin
18+ ...
19+```
20+
21+**startindex** は **endindex** と等しいか、それより小さい必要があります。 そしていずれも [[Integer/ja|Integer]] 定数( [[Integer]]、または [[Const|const]])である必要があります。 また、片方または両方の値がマイナスまたは0(ゼロ)の値を持つことができます。
22+
23+### 1次元配列
24+
25+1次元配列の参考例を以下に示します。:
26+
27+``` pascal
28+type
29+ simple_integer_array = array [1..10] of integer;
30+
31+var
32+ Numbers: simple_integer_array;
33+```
34+
35+### 多次元配列
36+
37+[[Basic Pascal Tutorial/Chapter 5/Multidimensional arrays/ja|多次元配列]] は、 \[x..y,z..t\] などの表記をします。
38+
39+多次元配列の参考例を以下に示します。:
40+
41+``` pascal
42+type
43+ more_complex_array = array [0..5,1..3] of extended;
44+
45+var
46+ specialmatrix: more_complex_array;
47+```
48+
49+## 動的配列
50+
51+プログラムのコンパイル時に配列の要素数が未定の場合、 [[Dynamic array/ja|動的配列]] が利用できます。 動的配列は、プログラムの実行時に、その要素数を増減させることができます。
52+
53+## 配列要素へのアクセス
54+
55+配列の要素にアクセスするには、配列変数の名前に、要素の位置をブラケット(かっこ:\[\])の間に挟んで示した記述をすることが必要です。 こうすることで、配列の要素を普通の変数と同じように使用できます。 しかし、もしもパラメーターを使用したいのであれば、あなたは **構造体** を使わなくてはいけません。 なぜならおそらくエラーかバグになるからです。(わたしはわかりません。これが何を意味しているか;元文まま)
56+
57+``` pascal
58+Var
59+ my_array : array[1..3] of Integer;
60+ my_matrix : array[1..5,1..5] of Integer;
61+ some_value : Integer;
62+...
63+begin
64+ my_array[2] := a + 2;
65+ my_matrix[2,3] := some_value;
66+ ...
67+ some_value := my_array[2];
68+ some_value := my_matrix[4,3];
69+end.
70+```
71+
72+## 配列の定数
73+
74+配列の定数には、それがどこに位置するかによって、2つの書式があります。 変数宣言部にある場合、静的配列は *丸かっこ()* 内の値によって初期化できます( [[Dynamic array/ja|動的配列]] ではできません) 。 ステートメントブロック内では、 *角括弧\[\]* 内の値のみで、変数名を指定しない配列を作ることができます。 例を以下に示します。:
75+
76+``` pascal
77+Var
78+ // 静的integer配列を、配列定数を用いて初期化する
79+ Numbers : array [1..3] of Integer = (1, 2, 3);
80+
81+procedure PrintArray(input : array of String);
82+var
83+ i : integer;
84+begin
85+ for i := 1 to length(input) do
86+ write(input[i - 1],' ');
87+ writeln;
88+end;
89+
90+begin
91+ Writeln( Numbers[2] );
92+ // 配列定数を用いて、3要素からなる文字列配列(変数名の指定無し)を作る
93+ PrintArray( ['one', 'two', 'three'] );
94+end.
95+```
96+
97+出力:\
98+**2**\
99+**one two three**
100+
101+---
102+*From the Free Pascal wiki, page "Array/ja", as it stood on 2023-01-25 after a change by Kai Burghardt, 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