第6講 同じことの横縦の繰り返し(2次元ループ)
第4話 2次元ループの意味

2次元の意味を考えていただくために、
もう一度プログラムの文章とプログラムの実行結果と (j)の動きを見てください。
自然配列を発生させるプログラムの文章
Private Sub CommandButton1_Click()
  Dim i As Byte, j As Byte, k As Byte
  k = 0
  For i = 1 To 10
    For j = 1 To 10
      k = k + 1
      Cells(5 + i, 1 + j) = k
    Next
  Next
End Sub
実行結果
2次元の意味
j)の動き
11)→(12)→(13)→(14)→(15)→(16)→(17)→(18)→(19)→(110)→
21)→(22)→(23)→(24)→(25)→(26)→(27)→(28)→(29)→(210)→
31)→(32)→(33)→(34)→(35)→(36)→(37)→(38)→(39)→(310)→
41)→(42)→(43)→(44)→(45)→(46)→(47)→(48)→(49)→(410)→
51)→(52)→(53)→(54)→(55)→(56)→(57)→(58)→(59)→(510)→
61)→(62)→(63)→(64)→(65)→(66)→(67)→(68)→(69)→(610)→
71)→(72)→(73)→(74)→(75)→(76)→(77)→(78)→(79)→(710)→
81)→(82)→(83)→(84)→(85)→(86)→(87)→(88)→(89)→(810)→
91)→(92)→(93)→(94)→(95)→(96)→(97)→(98)→(99)→(910)→
101)→(102)→(103)→(104)→(105)→(106)→(107)→(108)→(109)→(1010
 入門  初心者  基礎    vba

動いていってから、
visual    2次元の意味 

結局、実行結果
2次元の意味
は実際にコンピュータが動く順番を示しています。
表示の番号順にプログラムは処理をしています。
1を表示→2を表示→3を表示→・・・→99を表示→100を表示
の順にコンピュータは処理を実行しています。動きは、
Private Sub CommandButton1_Click()
  Dim i As Byte, j As Byte, k As Byte
  k = 0
  For i = 1 To 10
    k = k + 1
    Cells(5 , 1 +
i) = k
  Next
End Sub

ならば
vba
と直線(1方向のみ)に動くのに対して、横方向と縦方向の2方向に動きます。
数学では直線を1次元、平面を2次元といいますが、1,2はもっている方向の数です。
それと同様に、
Private Sub CommandButton1_Click()
  Dim i As Byte, j As Byte, k As Byte
  k = 0
  For i = 1 To 10
    k = k + 1
    Cells(5 , 1 + i) = k
  Next
End Sub
1方向のみにしか動かないので1次元ループといい、
Private Sub CommandButton1_Click()
  Dim i As Byte, j As Byte, k As Byte
  k = 0
  For i = 1 To 10
    For j = 1 To 10
      k = k + 1
      Cells(5 + i, 1 + j) = k
    Next
  Next
End Sub
は2方向に動く(平面上に動く)ので2次元ループというのです。
専門用語を用いない本講義では、
2方向の繰り返し(ループ)を『
同じことの横縦の繰り返し』と呼んでいるわけです。
2次元+ループですから、
『横縦の同じことの繰り返し』『横縦に同じことを繰り返す』とも呼びたいと思います。
2方向の動き=平面上の動きであることを示すために、
横縦の繰り返しとしているわけです。
そして、ランダムな数字を2次元上に発生させる
Private Sub CommandButton1_Click()
  Dim i As Byte, j As Byte
  For i = 1 To 10
    For j = 1 To 10
      Cells(5 + i, 1 + j) = Int(100 * Rnd())
    Next
  Next
End Sub
入門
の場合でも、動き方の順番は
2次元の意味

となっています。
横に動いてから縦に動くわけです。
入れ子式人形
Private Sub CommandButton1_Click()
  Dim i As Byte, j As Byte
  For i = 1 To 10
    For j = 1 To 10
      Cells(5 + i, 1 + j) = Int(100 * Rnd())
    Next
  Next
End Sub
の中の人形
    
For j = 1 To 10
      Cells(5 +
i, 1 + j) = Int(100 * Rnd())
    
Next
が先に動き、中の人形が一通り任務を遂行し終わると、
外の人形がそのたびに1つだけ動くのです。

 入門  初心者  基礎    vba
visual    2次元の意味 

動き方は10×10=100通りです。長方形の面積の求め方と同じです。
2次元ループを理解していただくためには、
実際にどう動くかを把握しなければならないのです。

さて、次の課題です。
2次元の意味
を実現するために第3の箱wを用意しましたが、
実は2つの箱iとjのみでも同じ結果を得るプログラムを組むことが可能です。
それを考えてください。
ヒントは、10進数の成り立ち
56=5×10+6
にあります。


第3話へ 第5話へ

トップ

vc++講義へ

初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
vb講義へ
VB講義基礎へ
初心者のためのJava 入門 基礎から応用まで
数学研究室に戻る