目次ページ  前ページ 次ページ

4. 論理学の応用場面

4.2 論理パズル


4.2.8 ソースコードの準備

 海王星の魚の問題(第4.2.6項)を解くプログラムは、式4.1をBASIC言語で書き直し、制御文や入出力文を追加します。VB6で実行させるときの、筆者のソースコードを下に例示します。
 Public Sub CRT02()
   Dim PP, QQ, RR, SS, XX As Integer
   Dim P, Q, R, S, X As Boolean
   For PP = 1 To 0 Step -1
     P= CBool(PP)
       For QQ = 1 To 0 Step -1
         Q = CBool(QQ)
         For RR = 1 To 0 Step -1
           R =CBool(RR)
           For SS = 1 To 0 Step -1
             S = CBool(SS)
             X = (((P Or R) Imp (Not Q)) And ((Not R) Imp Q) And _
               ((P Or Q) Imp (R Xor S))) Imp (S Imp (Not P))
             Write6 CStr(X)
           Next
         Next
       Next
   Next
 End Sub

 1980年代のパソコン用BASIC言語は、上のコードよりはずっと簡単ですし、実行も面倒な手続きを必要としませんでした。しかし、VB6の高級化によって、変数の宣言などを厳密にしなければならなくなりました。またPRINT文が無くなりましたので、それに代わるコマンドWrite6を筆者は自前で準備しました。これは、モニタ画面に擬似的なテキストエディタを作成するフォームモジュールをプログラミングしておいて、そこを文字の書き出しに使います。見てくれの良い真偽値表、例えば表4.7のように作成するプログラミングコードを工夫するのは大変です。表計算のできるEXCELでプログラミングできれば、表作成には便利でしょうが、EXCELではデータ型に論理型がありませんし、論理演算子のImp,Xorもありません。使い勝手のよいBASICのインタプリタがユーティリティプログラムとして利用できる環境が欲しいところです。
科学書刊株式会社:電子版 「橋梁&都市 PROJECT: 2012」

前ページ 次ページ