事例演習4 論理式の簡略化 < 課題 >
【 課題1 】 図3-20を参考にして,項を構成する変数の数maxBitSizeと項の各変数が肯定,否定かによって1,0を格納した 配列term[ ]を入力パラメータとして,termの情報を大域配列bit_size,point,coordに格納する手順を設計せよ.併せてその手順を関数"store_to_coord"としてプログラミングせよ. |
【 課題2 】
図3-25を参考にして,配列bit_size[ ],maxBitSize, nPointを入力パラメータとして,大域配列pair_tblを作成し,nPairを出力するような手順を設計せよ.併せてその手順を関数"build_point_pair"としてプログラミングせよ. ただし,pair_tblに格納する接続辺は,始端(from)より終端(to)の方が大きいものだけでよいものとする. また,始端,終端のいずれかにトークンが存在しない座標番号(大域配列pointから判断する)は,組合せは考えなくてよい. |
【 課題3 】
変数の一部が欠けている変数積が入力されたとき,欠けている変数を補って,あたかも標準形の積和形式で変数積が入力されたかのように変数積を自動的に生成する手順を以下の補足説明を参考にして設計し,関数"translate_to_Point"としてプログラミングせよ. なお,生成した項は,課題1で作成した関数store_to_coordを用いて,入力データ配列群に格納するものとする. |
【 課題4 】 図3-28に示すように移動すべきトークンがなくなったreduce_tblとトークンの座標値テーブルcoordから,簡略後の論理式を作成する手順を設計し,関数"buid_print_stream"としてプログラミングせよ. |