第5講 配列の学習
第1話 配列とは?

私の作った魔方陣作成ソフトだと、変数が何十万個と出てきます。
例えば、VBAで作ったソフト 魔方陣(細胞構成法)をダブルクリックしてオプションでこのコンテンツを有効にするを選び実行されてみてください。
VC++講座の卒業研究課題は、まだ決めていませんが魔方陣も選択肢の一つに考えております。
さて、変数が何十万と出てくる場合、
Dim a1,a2,・・・,
ではきりがありません。
そして、なんといっても大きな問題はこれらはFor文の対象にできないことです。
この2つの欠点を解消する方法があります。
それが配列です。配列とはa(8)のような添え字付き変数です。

配列は次のように宣言します。
Dim a(100) As Integer
このように宣言すると101個の変数を使えるようになります。
『えっ、101個。100個の間違いじゃないの?』とお思いになりましたか。
101個で間違いありませんよ。
なぜなら、使える変数は
a(0),a(1),a(2),・・・,a(100)
だからです。a(0)が入るので101個です。
したがいまして、100個ぴったりの配列変数を用意したければ、
Dim a(99);
です。

配列の添え字は、for文の対象にできます。
例えば、a(0),a(1),a(2),・・・,a(100)のすべてに0を代入するなら、
For i = 0 to 100
  a(i)=0
Next
です。あるいは、1,2,3,4,・・・,101と入れていきたいなら
For i = 0 to 100
  a(i)=i+1
Next
です。同じような添え字a1とa(1)では天と地ほど違うことがわかります。
for文やif文で扱える添え字でこそ威力を発揮するからです。
理由は、For文とIf文があればどんなに複雑なプログラムでも組むことができるからです。
魔方陣(細胞構成法)も結局For文とIf文の組み合わせにすぎないのです。

添え字が1つのときを1次元配列といい、2つ以上を多次元配列といいます。
例えば、2次元配列を宣言したければ、
Dim a(10,10) As Integer
とします。
この場合扱える変数は、
a(0,1),a(0,1),a(0,2),a(0,3),・・・,a(0,10)
a(1,1),a(1,1),a(1,2),a(1,3),・・・,a(1,10)
a(2,1),a(2,1),a(2,2),a(2,3),・・・,a(2,10)
a(3,1),a(3,1),a(3,2),a(3,3),・・・,a(3,10)
        ・    
        ・
        ・
a(10,1),a(10,1),a(10,2),a(10,10),・・・,a(10,10)
121個です。11×11=121です。

前にも説明しましたが結局dataGridView1(3,6)も実質結局2次元配列です。
ただし、[]と使い方と列行で違いが2点あります。
配列ではa(行,列)ですが、dataGridViewではdataGridView1(列,行)です。
この行と列の違いが頭の混乱の原因になりますので注意しましょう。

では皆さん、配列を使う簡単なソフトを作ってみましょう。
最初は1次元配列からです。
For i = 1 to 10
  a(i)=i
Next
Form1にボタンとLabelとTextBoxを貼り付け、次のように表示させるにはどうしたよいでしょうか。

b
尚、
Dim a(10) As Integer, i As Integer, w As String
と宣言して、
a(3)=3
w = ""
w = w + " " + a(3)
とするとエラーします。
このようなときはiを文字型に変更しなければならないので
w = w + " " + a(3).ToString()

*.ToString()
は数*を文字に変更する命令です。


第4講第14話へ 第2話へ

006

VC++講義第1部へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座

数学研究室に戻る