Pascal-arrays

提供:Dev Guides
移動先:案内検索

パスカル-配列

Pascalプログラミング言語は、配列と呼ばれるデータ構造を提供します。これは、同じタイプの要素の固定サイズの順次コレクションを格納できます。 配列はデータのコレクションを格納するために使用されますが、配列を同じタイプの変数のコレクションと考える方が便利な場合がよくあります。

number1、number2、…​、number100などの個々の変数を宣言する代わりに、numbersなどの1つの配列変数を宣言し、numbers [1]、numbers2、および…​、numbers [100]を使用して表現します個々の変数。 配列内の特定の要素は、インデックスによってアクセスされます。

すべての配列は、連続したメモリ位置で構成されています。 最下位アドレスは最初の要素に対応し、最上位アドレスは最後の要素に対応します。

インデックス0から始まるCスタイルの配列が必要な場合は、1ではなく0からインデックスを開始する必要があることに注意してください。

Pascalの配列

配列の宣言

Pascalで配列を宣言するには、プログラマーは型を宣言してからその配列の変数を作成するか、配列変数を直接宣言します。

一次元配列の型宣言の一般的な形式は-

type
   array-identifier = array[index-type] of element-type;

どこで、

  • array-identifier -配列タイプの名前を示します。
  • index-type -配列の添え字を指定します。実数以外の任意のスカラーデータ型にすることができます
  • element-type -格納される値のタイプを指定します

例えば、

type
   vector = array [ 1..25] of real;
var
   velocity: vector;

現在、速度はベクトル型の可変配列であり、最大25個の実数を保持するのに十分です。

0インデックスから配列を開始するには、宣言は次のようになります-

type
   vector = array [ 0..24] of real;
var
   velocity: vector;

配列添え字のタイプ

Pascalでは、配列添字は、実数を除く、整数、ブール、列挙型、または部分範囲などの任意のスカラー型にすることができます。 配列の添え字にも負の値を設定できます。

例えば、

type
   temperature = array [-10 .. 50] of real;
var
   day_temp, night_temp: temperature;

下付き文字が文字型である別の例を取り上げましょう-

type
   ch_array = array[char] of 1..26;
var
   alphabet: ch_array;

添え字は列挙型である可能性があります-

type
   color = ( red, black, blue, silver, beige);
   car_color = array of [color] of boolean;
var
   car_body: car_color;

配列の初期化

Pascalでは、特定の添え字を指定するかfor-doループを使用することにより、割り当てによって配列が初期化されます。

たとえば-

type
   ch_array = array[char] of 1..26;
var
   alphabet: ch_array;
   c: char;

begin
   ...
   for c:= 'A' to 'Z' do
   alphabet[c] := ord[m];
   ( *the ord() function returns the ordinal values* )

配列要素へのアクセス

配列名にインデックスを付けることにより、要素にアクセスします。 これは、配列の名前の後に角かっこ内に要素のインデックスを配置することによって行われます。 たとえば-

a: integer;
a: = alphabet['A'];

上記のステートメントは、alphabetという名前の配列から最初の要素を取得し、変数aに値を割り当てます。

以下は、上記の3つの概念すべてを使用する例です。 配列の宣言、割り当て、アクセス-

program exArrays;
var
   n: array [1..10] of integer;   ( *n is an array of 10 integers* )
   i, j: integer;

begin
   ( *initialize elements of array n to 0* )
   for i := 1 to 10 do
       n[ i ] := i + 100;   ( *set element at location i to i + 100* )
    ( *output each array element's value* )

   for j:= 1 to 10 do
      writeln('Element[', j, '] = ', n[j] );
end.

上記のコードをコンパイルして実行すると、次の結果が生成されます-

Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109
Element[10] = 110

パスカル配列の詳細

配列はPascalにとって重要であり、さらに多くの詳細が必要です。 Pascalプログラマーに明らかな配列に関連するいくつかの重要な概念があります-

Sr.No Concept & Description
1

Multi-dimensional arrays

Pascalは多次元配列をサポートしています。 多次元配列の最も単純な形式は、2次元配列です。

2

Dynamic array

このタイプの配列では、初期長はゼロです。 配列の実際の長さは、標準の SetLength 関数を使用して設定する必要があります。

3

Packed array

これらの配列はビットパックされています。つまり、各文字または真理値は、1つのストレージユニット、通常はワード(4バイト以上)を使用する代わりに、連続したバイトに格納されます。

4

Passing arrays to subprograms

インデックスなしで配列の名前を指定することにより、サブプログラムに配列へのポインタを渡すことができます。