配列変数

同種のデータをまとめて管理するためには、配列変数を使うことができる。配列変数は、変数名の後に、括弧付きの通し番号を付けて表される。配列変数を使用する場合には、はじめに配列変数の大きさを宣言しなければならない。

10	DIM A(19)	

上の例は、配列変数 A(0),A(1),…,A(19) の 20 個の変数を使用する宣言である。配列変数 A(0)〜A(19) のそれぞれは、これまでの変数と同様に使用することができる。

10	DIM A(1)
20	A(0)=2:A(1)=A(0)+5
30	PRINT A(1)

次のプログラムは、用意されたデータを READ 文で配列変数 X(0)〜X(9) に順番に読み出しながら表示し、改行した後、逆順でデータを表示するプログラムである。

10	DIM X(9)
20	PRINT "データを読み込んだ順は"
30	FOR I=0 TO 9
40		READ X(I):PRINT X(I)
50	NEXT I
60	PRINT
70	PRINT "逆順で表示すると"
80	FOR I=9 TO 0 STEP -1
90		PRINT X(I)
100	NEXT I
110	DATA 2,3,5,7,11,13,17,19,23,29

配列変数は、二次元に拡張することができる。

氏名国語数学英語
山田一郎806570
山田二郎705575
山田三郎758070

上のような表は、黄色部分を二次元の配列変数で扱うと便利である。すなわち 3 行 3 列の二次元配列で表現することができる。例えば、DIM TOKUTEN(2,2) と宣言すればよい。

TOKUTEN(0,0)TOKUTEN(0,1)TOKUTEN(0,2)
TOKUTEN(1,0)TOKUTEN(1,1)TOKUTEN(1,2)
TOKUTEN(2,0)TOKUTEN(2,1)TOKUTEN(2,2)

また、文字列についても同様に文字列型の配列変数を使うことができる。

10	DIM NAME$(2),TOKUTEN(2,2)
20	FOR I=0 TO 2
30		READ NAME$(I)	'(氏名の読み込み)
40		FOR J=0 TO 2
50			READ TOKUTEN(I,J)	'(3教科の点数の読み込み)
60		NEXT J
70	NEXT I
80	PRINT NAME$(2);"さんの数学の点数は";TOKUTEN(2,1);"点です。"
90	DATA "山田一郎",80,65,70
100	DATA "山田二郎",70,55,75
110	DATA "山田三郎",75,80,70

上のプログラムでは、文字列型配列変数 NAME\$(0)〜NAME\$(2) に名前、配列変数 TOKUTEN(0,0)〜TOKUTEN(2,2) に点数をすべて読み込ませている。これにより、後の処理で個々の各データが効率的に読み出せる。例えば山田三郎さんの数学の点数は TOKUTEN(2,1) で読み出せる。

10	DIM QA$(1,5),ANS$(1,5)
20	PRINT "単語を英語で答えてください。"
30	FOR I=_ TO _
40		READ QA$(0,I),QA$(1,I)
50		PRINT QA$(0,I);:INPUT ANS$(0,I)
60		IF ____=____ THEN PRINT "正解":ANS$(1,I)="t" ELSE PRINT "不正解":ANS$(1,I)="f"
70	NEXT I
80	PRINT "間違えた単語"
90	FOR I=_ TO _
100		IF ANS$(1,I)=___ THEN PRINT QA$(1,I),ANS$(0,I),QA$(0,I)
110	NEXT I
120	DATA "地球","Earth","月","Moon","火星","Mars"
130	DATA "木星","Jupiter","土星","Saturn","天王星","Uranus"
[BASIC言語の基本命令文と文法に戻る]

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS