第6講 同じことの横縦の繰り返し(2次元ループ)
第2話 なぜ縦横と呼ばず横縦なの?
同じことの繰り返し(1次元ループ)によるプログラム例
Private Sub CommandButton1_Click()
Dim i As Byte
For i = 1 To 10
Cells(6, 1 + i) = Int(100 * Rnd())
Next
For i = 1 To 10
Cells(7, 1 + i) = Int(100 * Rnd())
Next
For i = 1 To 10
Cells(7, 1 + i) = Int(100 * Rnd())
Next
For i = 1 To 10
Cells(8, 1 + i) = Int(100 * Rnd())
Next
For i = 1 To 10
Cells(9, 1 + i) = Int(100 * Rnd())
Next
For i = 1 To 10
Cells(10, 1 + i) = Int(100 * Rnd())
Next
For i = 1 To 10
Cells(11, 1 + i) = Int(100 * Rnd())
Next
For i = 1 To 10
Cells(12, 1 + i) = Int(100 * Rnd())
Next
For i = 1 To 10
Cells(13, 1 + i) = Int(100 * Rnd())
Next
For i = 1 To 10
Cells(14, 1 + i) = Int(100 * Rnd())
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
2つを並べると、横縦の繰り返すの方がずっとすっきりしています。
普通、横と縦をいうとき縦横と表現します。
本講義では意図的に逆にしています。
日常生活では、
横の並びも
縦の並びも
列と表現することが多いわけですが、
数学の世界やプログラミングの世界では、
横の並びを行、
縦の並びを列といいます。
横の並びと縦の並びがあるとき、
行列と呼びます。
Cells( i , j )は行列に対応していて、iが行、jが列を表す番号だったわけです。
本講義で縦と横の並びを縦横と呼ばずに横縦と呼んでいる理由の1つは、
行列と対応させるためです。
実は、逆にしているのはもっと本質的な理由があります。
行列(横縦)の意味を理解していただくために、
次のようなマクロを組んでみましょう。
実行ボタンを押すと
難しいので、ヒントを書いておきましょう。
Byte型の箱を3つ用意して、
そのうちの1つは、累積を数える数を入れる箱とします。
第1話へ 第3話へ
vc++講義へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
vb講義へ
VB講義基礎へ
初心者のためのJava 入門 基礎から応用まで
数学研究室に戻る