第7講 多次元配列と1次元配列の関係
第5話 左右反転行列の表示を1次元For文で行う!
の左右反転行列の表示を1次元For文で実点するコード例
Module Module1
Sub Main() '私は社長だ。
'Rnd(-1)
'Randomize(Timer())
f()
End Sub
Sub f()
Dim a(11) As Integer '配列aの宣言
Dim i, j As Integer
'ランダムデータ生成
For i = 0 To 11
a(i) = Int(Rnd() * 100)
Next
'データ表示
For i = 0 To 11
If i > 0 And (i Mod 4) = 0 Then Console.WriteLine() '改行
If a(i) < 10 Then Console.Write(" {0:d} ", a(i)) '右端をそろえるための半角スペース
If a(i) >= 10 Then Console.Write("{0:d} ", a(i))
Next
Console.WriteLine() '改行
Console.WriteLine() '改行
'左右反転行列の表示
For i = 0 To 11
If i > 0 And (i Mod 4) = 0 Then Console.WriteLine() '改行
If a(4 * Int(i / 4) + (3 - (i Mod 4))) < 10 Then Console.Write("
{0:d} ", a(4 * Int(i / 4) + (3 - (i Mod 4)))) '右端をそろえるための半角スペース
If a(4 * Int(i / 4) + (3 - (i Mod 4))) >= 10 Then Console.Write("{0:d} ", a(4 * Int(i / 4) + (3 - (i Mod 4))))
Next
Console.WriteLine() '改行
Console.WriteLine() '改行
'左右反転行列の表示
For i = 0 To 2
For j = 0 To 3
If a(4 * i + 3 - j) < 10 Then Console.Write(" {0:d} ", a(4 * i + 3 - j)) '右端をそろえるための半角スペース
If a(4 * i + 3 - j) >= 10 Then Console.Write("{0:d} ", a(4 * i + 3 - j))
Next
Console.WriteLine() '改行
Next
Console.WriteLine() '改行
'上下反転行列の表示
For i = 0 To 11
If i > 0 And (i Mod 4) = 0 Then Console.WriteLine() '改行
If a(4 * Int(i / 4) + (3 - (i Mod 4))) < 10 Then Console.Write("
{0:d} ", a(4 * Int(i / 4) + (3 - (i Mod 4))))
If a(4 * Int(i / 4) + (3 - (i Mod 4))) >= 10 Then Console.Write("{0:d}
", a(4 * Int(i / 4) + (3 - (i Mod 4))))
Next
Console.WriteLine() '改行
Console.WriteLine() '改行
'転置行列の表示
For i = 0 To 3
For j = 0 To 2
If a(4 * j + i) < 10 Then Console.Write(" {0:d} ", a(4 * j + i)) '右端をそろえるための半角スペース
If a(4 * j + i) >= 10 Then Console.Write("{0:d} ", a(4 * j + i))
Next
Console.WriteLine() '改行
Next
End Sub
End Module
解説
4 * Int(i / 4) が
0,1,2,3
4,5,6,7
8,9,10,11
から
0,0,0,0
4,4,4,4
8,8,8,8
への変換を担当しています。
そして、(3 - (i Mod 4))が
0,1,2,3
4,5,6,7
8,9,10,11
から
3,2,1,0
3,2,1,0
3,2,1,0
への変換を担当しています。
そして、変換した両者を合体すれば、
3,2,1,0
7,6,5,4
11,10,9,8
が実現します。
頭の体操になったでしょう。
では、上下反転行列も1次元For文で実現してみましょう。
第4話へ 第6話へ
初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ