同種のデータをまとめて管理するためには、配列変数を使うことができる。配列変数は、変数名の後に、括弧付きの通し番号を付けて表される。配列変数を使用する場合には、はじめに配列変数の大きさを宣言しなければならない。
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
配列変数は、二次元に拡張することができる。
氏名 | 国語 | 数学 | 英語 |
山田一郎 | 80 | 65 | 70 |
山田二郎 | 70 | 55 | 75 |
山田三郎 | 75 | 80 | 70 |
上のような表は、黄色部分を二次元の配列変数で扱うと便利である。すなわち 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"