第8講 4次魔方陣と6次魔方陣の作成
第3話 交換プログラム
交換プログラムコード例
Private Sub CommandButton1_Click()
Dim a As Integer, b As Integer, w As Integer
a = Cells(6, 2) '値代入
b = Cells(7, 2) '値代入
'aとbの値交換
w = a 'aのバックアップ
a = b 'aの箱の中身は、bの値になる。aの箱にあったもともとの値は消滅するが、wの箱に保存してある。
b = w 'wの箱に保存してあった値を入力
'交換後のaとbの値の表示
Cells(10, 2) = a
Cells(11, 2) = b
End Sub
解説
うっかりすると次のようにやってしまいそうです。
Private Sub CommandButton1_Click()
Dim a As Integer, b As Integer
a = Cells(6, 2) '値代入
b = Cells(7, 2) '値代入
'aとbの値交換
a = b
b = a
'交換後のaとbの値の表示
Cells(10, 2) = a
Cells(11, 2) = b
End Sub
ところがこれだと
例えばとなってしまい成功しません。
なぜでしょうか。
VBでは、変数とは値を入れる箱でした。
そして、個の箱には値は1個しか入れられません。
別の値を入れるともともとの値は出て行ってしまいます。
そして、値は箱の中でしか生きることが出来ませんので、
箱から出ると消滅してしまいます。
この例だと1は消滅してしまいます。
そして、aにはbの値2が入っています。
すると、次のb=aはまったく意味がありません。
そこで、aの値を一時保存しておく、もう一つの箱wを用意する必要があります。
a=8
b=3
w=a
a=b
b=w
これなら、交換がうまくいきます。
ここの学習のポイントは、一時値を入れておく箱の用意です。
では皆さん、自然配列
1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 |
1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 |
31 | 32 | 33 | 34 | 35 | 36 |
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
数学研究室に戻る