>も少し詳しくお願いします。
配列変数についてだけもうすこし詳しくお話します。以前ここで書いて過去ログ行きになったものの訂正版。
※他は自力でがんばってください。算数とか分からないようではお先真っ暗ですし。
変数というのは、数値や文字列を入れておく入れ物であることはすでに御存知と思います。
変数名は、その入れ物につける名前というのも理解していますね。
通常の変数は、数値や文字列を1つだけ入れておくことのできる『箱』のような入れ物ですが、
配列変数は、それがいくつも繋がった『棚』のような入れ物です。
その『棚』は、たとえば横一列に繋がっていたり、それが何段もあったりします。そして、
「**という棚の、上から*番め、左から*番目」
…という表しかたで棚を指定して、中身を出し入れできます。
たとえば、100個の箱
「箱0」〜「箱99」
に、いろんな中身が1つずつ入っているとします。これを、変数 HAKO_00, HAKO_01, HAKO_02,…, HAKO_99 で表します。
このとき、別の変数 N に 0 〜 99 のうちどれか一つの数値が入っているとき、
「変数 N に入ってる数字の番号のついた箱の中身を取り出して、変数 A に代入したい」
…となると、どんなスクリプトを書けば取り出せるでしょうか。ちょっと考えてみてください。
if(N=0):A=HAKO_00
if(N=1):A=HAKO_01
if(N=2):A=HAKO_02
…全部書くのも面倒なので以下省略。やってられませんね。
つぎに、
100列の『棚』を 配列変数 TANA で表します。棚をつくる命令 dim で 100列の棚を作ります。つまり、
dim TANA, 100
ですね。 これで、TANAという名前の100列の棚が作られます。この棚に、左から順に HAKO_00, HAKO_01, …と同じものが入っているとすると、先ほどと同じ要求を実現するには、
A=TANA(N)
または、
A=TANA.N
とだけ書けばOKです。
棚が100列100段もあって、N0 段目の N1 番目を取り出したいとなると 、
大量の箱でやっちゃうと
if((N0=0)&&(N1=0)):A=HAKO_00_00
if((N0=0)&&(N1=1)):A=HAKO_00_01
(中略)
if((N0=1)&&(N1=0)):A=HAKO_01_00
if((N0=1)&&(N1=1)):A=HAKO_01_01
(以下略)
問題外ですね。この部分だけで10000個のifが並ぶことになります。
これが100列100段の棚なら、
A=TANA(N0,N1)
…だけで済みます。
これが、配列変数です。
たくさんのデータをまとめて管理できて、欲しいデータが簡単に取り出せる仕組みです。
dim, sdim 命令は、この「棚」をあらかじめ作っておく命令です。
棚もまだ用意してないのに「上から*段め、左から*番目にデータを書き込め」…とか命令することはできませんからね。
最後に。
すこしは自分で調べるクセをつけましょう。
分からない言葉が出てきたらいきなり「**って何?」って聞いてるようでは、時間と手間の無駄です。
自分で調べるクセをつけることは、プログラマーにとって、すごく、とっても大事なことです。