#author("2018-02-09T17:27:34+09:00","","")
** 配列変数 [#p5edb310]
#author("2023-01-31T10:33:59+09:00","default:maa","maa")

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

 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

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

|氏名|国語|数学|英語|h
|山田一郎|BGCOLOR(yellow):80|BGCOLOR(yellow):65|BGCOLOR(yellow):70|
|山田二郎|BGCOLOR(yellow):70|BGCOLOR(yellow):55|BGCOLOR(yellow):75|
|山田三郎|BGCOLOR(yellow):75|BGCOLOR(yellow):80|BGCOLOR(yellow):70|

上のような表は、&color(,yellow){黄色部分};を二次元の配列変数で扱うと便利である。すなわち 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"

RIGHT:[[[BASIC言語の基本命令文と文法に戻る]>コンピュータ実習II#md798e85]]


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS