第5講 第4講のプログラムエラー原因探索各アイテムの解説
第6話 全体リスト構造解析Total方式の解説その4
第5話までですべての空欄セルについての色塗りが終わりました。
最後のコード
  For i = 0 To n_1
    For j = 0 To n_1
      If p(i, j) = 0 Then
        w = 0
        For k = 0 To n_1
          If kh(i, j, k) = 1 Then
            ccrlst(i, j, w) = k + 1
            ccmx(i, j) = ccmx(i, j) + 1
            w = w + 1
          End If
        Next
      End If
    Next
  Next

では、その色を参考にしてccrlst(i, j ,k)へのリスト登録が行われます。
        kh(i, j, k) = 1 '1が白
の注釈文にあるとおり1が白で色の塗られていない状態を表していました。
1を色のない状態、0を色の塗られた状態というのはプログラマーが決めれば良いことですから、
反対でも良いのです。
注釈文を入れておかないと、どっちだったか分からなくなりますから、
入れるようにしましょう。
白のときだけ、ccrlst(i, j ,k)へのk + 1の登録が行われています。
そして登録する度にccmx(i, j) = ccmx(i, j) + 1 によって、
候補数字個数のカウントが行われます。
気をつけなければならないことは、
s
ならば4とカウントされることです。
y
の場合すなわち数独作成アプリVer.1の場合には、
3とカウントされていました。
Total方式の方は実個数であり、
Ver.1の方は0からカウントしているため実個数より1つ小さい数でした。

以上で、全体リスト構造解析Total方式の解説を終わりにしたいと思いますが、
1つだけ付け加えます。
それは、確かめを行うときには、なるべく異なる方式で検証した方が良いということです。
同じような方式だと同じミスをしてしまう可能性が高からです。
学生時代の試験を思い出して下さい。
ただ、答案をなぞっているだけではケアレスミスを発見するのは難しかったですよね。
読み直すときに同じ勘違いをしてしまい、
結局ケアレスミスを発見できなかった苦い思い出を皆さんお持ちですよね。
確かめは、異なる方法で行え!は鉄則です。

第5講ではいろいろなアイテムを解説予定でしたが、
すでに第6話まで来てしまいました。
1つの講は出来るだけ10話以内にするが私の方針ですから、
Total方式の全体リスト構造解析とVer.1方式の全体リスト構造解析が、
一致しているかどうかを調べる検証Functionプロシージャknについてのみ解説して、
後は皆さんがコードをよく読んで何をしているのか学んで頂ければと思います。
解説のために第6講も潰そうとは思いません。
部の構成も10講以内にするというのも私の方針だからです。

第5話へ 第7話へ
004

eclipse c++ 入門
魔方陣 数独(ナンプレ)で学ぶ VBA 入門
数独(ナンプレ)のシンプルな解き方・簡単な解法の研究
vc++講義へ
excel 2013 2010 2007 vba入門へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
専門用語なしの C言語 C++ 入門(Visual C++ 2010で学ぶ C言語 C++ 入門)
専門用語なしの excel vba マクロ 入門 2013 2010 2007 対応講義 第1部
eclipse java 入門へ
excel 2016 vba 入門へ
小学生からエンジニアまでのRuby入門へ
本サイトトップへ