第5講 問題における数字の配置をいかにするか?
第3話 均等配置の実践
を実現するプログラム例
Dim w As Byte, iz(80) As Byte, jz(80) As Byte 'wははじめる位置、iz(80)とjz(80)はそれぞれy座標とx座標
Private Sub CommandButton1_Click()
CommandButton2_Click
w = 11
hitaisyou '非対称に配置する場合の座標作りと表示
End Sub
Sub hitaisyou() '非対称に配置する場合の座標作りと表示
Dim i As Byte, a As Byte 'aはセル(箱)番号を表す変数
For i = 0 To 23
a = (w + 7 * i) Mod 81
iz(i) = Int(a / 9)
jz(i) = a Mod 9
Cells(4 + iz(i), 2 + jz(i)) = "*"
Next
End Sub
Private Sub CommandButton2_Click()
Rows("3:200").Select
Selection.ClearContents
Cells(2, 1).Select
End Sub
参考ダウンロード添付ファイル
さらに改良して配置を次の条件下でⅠⅡの2つを実現してください。
Ⅰ
①はじめる位置
②飛び
③ヒント数もシートから取得する
のいずれもシートから取得する
*シートに入力した数字が81と互いに素でないときは、
飛びに指定されている数字は81と互いに素ではありませんと表示してプログラムを実行しない
Ⅱ
①はじめる位置は0以上80以下のランダムな数字とする
②飛びはシートから取得する
③ヒント数もシートから取得する
はじめる位置はシートに表示する
*シートに入力した数字が81と互いに素でないときは、
飛びに指定されている数字は81と互いに素ではありませんと表示してプログラムを実行しない
Byteだとオーバーフローする場合にはIntegerに変更してください。
後でByte型に戻すことを考えます。