第7講 多次元配列と1次元配列の関係
第2話 第6講第3話の課題を1次元配列で実現する
059
を1次元配列
    Dim a(11) As Integer '配列aの宣言
によって実現するコード例
Module Module1

  Sub Main() '私は社長だ。
    'Rnd(-1)
    'Randomize(Timer())
    f()
  End Sub

  Sub f()
    Dim a(11) As Integer '配列aの宣言
    Dim i As Integer
    'ランダムデータ生成
    For i = 0 To 2
      For j = 0 To 3
        a(
4 * i + j) = Int(Rnd() * 100)
      Next
    Next
    'データ表示
    For i = 0 To 2
      For j = 0 To 3
        If a(4 * i + j) < 10 Then Console.Write(" {0:d} ", a(4 * i + j)) '右端をそろえるための半角スペース
        If a(4 * i + j) >= 10 Then Console.Write("{0:d} ", a(4 * i + j))
      Next
      Console.WriteLine() '改行
    Next
  End Sub

End Module


解説
今回の課題は2次元配列a(2, 3)と1次元配列a(11)とをいかに対応させるかです。
すなわち、(以下色を対応させています!)
a(
0, 0),a(0, 1),a(0, 2),a(0, 3),a(1, 0),a(1, 1),a(1, 2),a(1, 3),a(2, 0),a(2, 1),a(2, 2),a(2, 3)
a(
0),   a(1),  a(2),  a(3),  a(4),  a(5),  a(6),  a(7),  a(8),  a(9),  a(10), a(11)
の対応関係をいかにするかです。

  j→
   
 ↓  
0 1 2 3
0  0   1 2 3
1 4 5 6 7
2 8 9 10 11

(0の色が1次元配列の添え字)
jの0の列に注目すると、0,4,8です。
そのほかの列も
1,5,9
2,6,10
3,7,11
と4ずつ増えています。
これはjが
0,1,2,3,4
と4つの場合をとるからです。
すなわち4飛びにすれば良いので、
4 * i + j
です。

では、第6講第4話の課題
037
を1次元配列によって、実現して下さい。
ただし、データ生成とデータ表示はすべて2次元For文で行うものとします。





第1話へ   第3話へ

002

初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ