配列

添字付きの変数

プログラムのはじめに DIM A(10) と書くと,A(1),A(2),A(3),A(4),A(5),A(6),A(7),A(8),A(9),A(10)の計10個の変数が用意されます。A(1),A(2),A(3),…,A(10)は,それぞれ,普通の変数として使えます。このとき,この10個の変数をまとめて配列といって,個々の変数は添字付き変数といいます。そして,括弧内を添字(そえじ)といいます。

DIM A(10)     ←これは「使うぞ」という宣言
LET A(4)=234
PRINT A(4)    ←普通の変数と同様に使用する。

文字変数の場合は先に$がつきます。

DIM B$(10)     ←これは「使うぞ」という宣言
LET B$(4)="abc"
PRINT B$(4)    ←普通の変数と同様に使用する。

合計と平均

ただ合計して平均を求めるだけなら配列に入れなくてもいいのですが、最初は単純な例からやってみます。9個の数値を配列に読み込み、合計と平均を求めます。

DIM a(9)
LET  a(1) = 78
LET  a(2) = 45
LET  a(3) = 65
LET  a(4) = 35 
LET  a(5) = 92
LET  a(6) = 63
LET  a(7) = 57
LET  a(8) = 89
LET  a(9) = 84

LET  sum = 0
FOR i = 1 To 9
   PRINT a(i);
   LET  sum = sum + a(i)
NEXT i
PRINT
PRINT "合計 :" ;sum
LET  avg = sum / 9
PRINT "平均 :" ;avg

計算結果は、

 78  45  65  35  92  63  57  89  84 
合計 : 608 
平均 : 67.5555555555556 

合計を計算するのに定番の方法です。sum を合計にして、最初に0にしておき、a(1)から順に足していって、合計を求めます。sum = sum + a(i) がポイントです。

代入するのにもう少しスマートな方法もあります。

DATA 78,45,65,35,92,63,57,89,84
DIM a(9)
FOR i = 1 To 9
   READ a(i)
NEXT i

LET  sum = 0
FOR i = 1 To 9
   PRINT a(i);
   LET  sum = sum + a(i)
NEXT i
PRINT
PRINT "合計 :" ;sum
LET  avg = ROUND(sum / 9, 1)
PRINT "平均 :" ;avg

赤で示したところがそれです。データをプログラム内に並べて書き、あとで READ 文を使ってまとめて代入します。データの前には DATA をつけます。DATA行はプログラム中どこにあってもかまいません。DATAで始まる行が2行以上あってもひとつながりのものとみなします。

下の方のROUND(sum / 9, 1)は四捨五入して小数点以下1桁にするための指示です。MOD(y,x)のような関数です。

計算結果は、

 78  45  65  35  92  63  57  89  84 
合計 : 608 
平均 : 67.6

例30

次のデータを配列に読んで合計と平均を表示するプログラムを作りなさい。平均は四捨五入して小数点以下1桁にしましょう。

DATA 68,46,38,43,91,76,61,87,56
DATA 48,35,76,67,34,72,77,96,50

計算結果を確認しておきます

合計 : 1121 
平均 : 62.3

聖愛高等学校
http://www.seiai.ed.jp/