mj0444.gif (2441 バイト)ASCAmj0440.gif (2248 バイト)  mj0455.gif (2586 バイト)  DAmj0440.gif (2248 バイト)mj0444.gif (2441 バイト)mj0436.gif (2656 バイト)mj0437.gif (1789 バイト)

レッスン12:配列の基礎

コンピュータは、たくさんのデータを取り扱います。データを取り扱うにはそれぞれに対応した変数を用意します。しかし、これは手間がかかります。同じようなたくさんの変数を一度に用意する方法に配列があります。このページでは、配列について説明します。

目次

配列の宣言
動作確認1
例2
動作確認2
練習
レッスン13では?

配列の宣言

今までの変数宣言では1つの箱しか用意していません。配列は複数の箱をもっているもので、宣言してから使います。例えば、

var a: array [1..5] of integer;

と宣言しますと、下のようなinteger型の5つの箱から構成される配列が用意されます。配列の名前(配列名)はaです。それぞれの箱は、a[1]、a[2]、a[3]、a[4]、a[5]として使います。

wpeE.jpg (4342 バイト)

配列名の前後にあるカギ括弧( [ と ]) の中の数字を添え字を呼び、この添え字で箱の位置を指定します。添え字の一番小さい値(この場合は1)と一番大きい値(この場合は5)は、宣言のarrayの後ろにある[1..5]で指定します。

用意される箱の数は、
   添え字の最大値−添え字の最小値+1
で計算できます。上の例では、5−1+1=5ですので、5つの箱が用意されたのです。

まとめますと、配列は次のように宣言し、使用します。

配列宣言

var 配列名: array [添え字の最小値..添え字の最大値] of

配列の使用方法

配列名[添え字]

例1

次のようなプログラムをみてみましょう。

  1. program hairetu1;
  2. var a:array [0..2] of integer;
  3. begin
  4.   a[0]:=1;
  5.   a[1]:=2;
  6.   a[2]:=3;
  7. end.

[注意]左端の番号は、プログラムの一部ではありません。各行を区別するために付けた番号です。

プログラム説明

2行目で、3つの箱が用意されます。[0..2]と宣言されていますので、添え字の最小値は0で、最大値は2となり、それぞれの箱はa[0]、a[1]、a[2]として使います。

4行目から6行目の代入文で、それぞれの箱に1、2、3をいれています。

動作確認1

それでは、上の例の動作確認をしてみましょう。また、プログラムを変更して、下の動作確認をしてみましょう。動作確認をする前に、Internet Explorerの設定をちゃんとしているか調べてください。

2行目の[0..2]を[1..5]に変え、4行目を削除
6行目のa[2]:=3;をa[100]:=101;に変えると、a[100]の箱は用意されていないので、実行するとエラーが表示されます。

Pascalシミュレータによる動作確認
[注意]このリンク先のページはInternet Explore 3.0以降で正しく表示されます。

例2

for文を使って、例1と同じ処理をするプログラムを作成しましょう。

  1. program hairetu2;
  2. var a:array [0..2] of integer;
  3.       i:integer;
  4. begin
  5.   for i:=0 to 2 do
  6.     a[i]:=i+1;
  7. end.

[注意]左端の番号は、プログラムの一部ではありません。各行を区別するために付けた番号です。

動作確認2

それでは、上の例2の動作確認をしてみましょう。

Pascalシミュレータによる動作確認
[注意]このリンク先のページはInternet Explore 3.0以降で正しく表示されます。

練習

配列に慣れるために、少し練習しましょう。

練習コーナー1

問題:次のプログラムでは、最終的に配列の各値はいくつになりますか?
  1. program hairetu3;
  2. var a:array [2..5] of integer;
  3.       i:integer;
  4. begin
  5.   for i:=2 to 5 do
  6.     a[i]:=i+2;
  7. end.
解答例:ここをクリック。

 

練習コーナー2

問題:次のプログラムでは、最終的に配列の各値はいくつになりますか?
  1. program hairetu4;
  2. var a:array [0..5] of integer;
  3.       i,j,k:integer;
  4. begin
  5.   a[0]:=1;
  6.   a[1]:=1;
  7.   for i:=0 to 3 do
  8.   begin
  9.     j:=i+1;
  10.     k:=j+1;
  11.     a[k]:=a[i]+a[j];
  12.   end;
  13. end.
解答例:ここをクリック。

 

レッスン13では?

ここまでPascal・Delphiの基本中の基本を学習してきてました。これで、基本的な学習は終りです。次のページでは、これまでの復習をします。

[レッスン13へ]


TitleLineAnim.gif (2453 バイト)

Ln769.gif (641 バイト)

このページの最終更新日は 99/03/20 です。
掲載責任者・ページ作成者: (c)板谷雄二(itaya@alice.asahi-u.ac.jp)