AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
配列変数BASIC(9)
例えば、成績処理のプログラムを作っているとします。生徒名、国語の点数、算数の点数、理科の点数、社会の点数、英語の点数、を扱うとします。クラスに40人いるとします。さぁ、それぞれのデータを入れる変数を決めましょう!
 
変数名一覧
生徒名国語算数理科社会英語
NAMAE01$KOKUGO01SANSU01RIKA01SYAKAI01EIGO01
NAMAE02$KOKUGO02SANSU02RIKA02SYAKAI02EIGO02
NAMAE03$KOKUGO03SANSU03RIKA03SYAKAI03EIGO03
NAMAE04$KOKUGO04SANSU04RIKA04SYAKAI04EIGO04



変数名の数は、6×40=240個になり、変数への代入も1つ1つ、
1010 NAMAE01$="愛上男":KOKUGO01=60:SANSU01=75:RIKA01=70:SYAKAI01=65:EIGO01=60
1020 NAMAE02$="牡蠣久化子":KOKUGO02=80:SANSU02=65:RIKA02=50:SYAKAI02=85:EIGO02=90
1030 NAMAE03$="佐志嵩山疎":KOKUGO03=90:SANSU03=55:RIKA03=40:SYAKAI03=80:EIGO03=95
1040 NAMAE04$="多秩手人":KOKUGO04=60:SANSU03=65:RIKA03=55:SYAKAI03=60:EIGO03=65
・・・
のような感じで、例えば合計点数・平均点数は、
KOKUGO_TOTAL=KOKUGO01+KOKUGO02+KOKUGO03+KOKUGO04+・・・
KOKUGO_AVE=KOKUGO_TOTAL/40
のようになり、きっと、やってられなくなるでしょう。
 
そこで登場するのが配列変数です!
 
配列変数を使う時には、最初に、配列宣言を行います。
DIM 配列変数名(最大項目数[,最大項目数・・・])
のように書き、上記の場合では、
10 DIM NAMAE$(40),KOKUGO(40),SANSU(40),RIKA(40)
20 DIM SYAKAI(40),EIGO(40)
と宣言します。
「DIM A(100)」と配列宣言すると、A(0)、A(1)、A(2)、・・・、A(99)、A(100)、という配列変数が使えます。
さぁ、配列変数を使って書き換えてみましょう。
1010 NAMAE$(1)="愛上男":KOKUGO(1)=60:SANSU(1)=75:RIKA(1)=70:SYAKAI(1)=65:EIGO(1)=60
1020 NAMAE$(2)="牡蠣久化子":KOKUGO(2)=80:SANSU(2)=65:RIKA(2)=50:SYAKAI(2)=85:EIGO(2)=90
1030 NAMAE$(3)="佐志嵩山疎":KOKUGO(3)=90:SANSU(3)=55:RIKA(3)=40:SYAKAI(3)=80:EIGO(3)=95
1040 NAMAE$(4)="多秩手人":KOKUGO(4)=60:SANSU(4)=65:RIKA(4)=55:SYAKAI(4)=60:EIGO(4)=65
・・・
何、余り変わりが無い? さぁ、合計点数の計算は、
KOKUGO_TOTAL=0
FOR I=1 TO 40
 KOKUGO_TOTAL=KOKUGO_TOTAL+KOKUGO(I)
NEXT I
のように書けます。
KOKUGO_TOTAL=KOKUGO01+KOKUGO02+KOKUGO03+KOKUGO04+・・・+KOKUGO38+KOKUGO39+KOKUGO40
と羅列して書くよりは良いです。
 
さて、上記のように代入文がずらずらと並ぶのは余りにも美しくありません。そこで登場するのが、「READ」文・「DATA」文です。これを利用すると上記の例は、
1010 DATA "愛上男",60,75,70,65,60
1020 DATA "牡蠣久化子",80,65,50,85,90
1030 DATA "佐志嵩山疎",90,55,40,80,95
1040 DATA "多秩手人",60,65,55,60,65
・・・
2010 READ NAMAE01$,KOKUGO01,SANSU01,RIKA01,SYAKAI01,EIGO01
2020 READ NAMAE02$,KOKUGO02,SANSU02,RIKA02,SYAKAI02,EIGO02
2030 READ NAMAE03$,KOKUGO03,SANSU03,RIKA03,SYAKAI03,EIGO03
2040 READ NAMAE04$,KOKUGO04,SANSU04,RIKA04,SYAKAI04,EIGO04
・・・
のように幾分すっきりします。READ文は、DATA文の上から順番に値を読み込んで、指定している変数に割り当てて入れて行きます。
なお、どこのDATA文を見ているのか分からない場合や明確にしたい場合、下まで読んでしまったのを再度上から読み直したい場合、に使われるのは「RESTORE」文です。
2000 RESTORE 1010
と指定しておけば必ず、1010行目のDATA文からREADします、という事を示す事が出来ます。
 
さて、これを配列変数を使って書いてみましょう。
1010 DATA "愛上男",60,75,70,65,60
1020 DATA "牡蠣久化子",80,65,50,85,90
1030 DATA "佐志嵩山疎",90,55,40,80,95
1040 DATA "多秩手人",60,65,55,60,65
・・・
2000 RESTORE 1010
2010 FOR I=1 TO 40
2020 READ NAMAE$(I),KOKUGO(I),SANSU(I),RIKA(I),SYAKAI(I),EIGO(I)
2030 NEXT I
となります。かなり すっきりしました。
 
上記の例では、DATA文が先に書かれていますが、勿論、DATA文は後に書いていても大丈夫です。RESTORE文を入れておけば間違いも激減するでしょう。
バッチファイル
BASIC
 1 2 3 4 5
 6 7 8 9 A
 B C D E F
 G H I J
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.