重言式判别 重言式判别源码及课程设计 c语言版
重言式的判别 题目:
一个逻辑表达式如果对于其変元的任一种取值都为真,则称为重言式;反之,如果对于其变元的任一种取值都为假,则称为矛盾式;然而,更多的情况下,既非重言式,也非矛盾式。试写一程序,通过真值表判别一个逻辑表达式属于上述哪一类。
一、需求分析
1、逻辑表达式从终端输入,长度不超过一行。 2、逻辑运算符包括“|”“&”“~”表示或 与 非。运算符优先程度递增,但是可由括号改变。
3、逻辑变元为大写字母表达式中任何地方都可以含有多个空格符。
4、运用自底向上的算符优先法 5、重言式显示“true forever”;矛盾式显示“false forever”; 否则显示“satisfactible”。
二、概要设计
为实现上述需求需要用到自底向上的算符优先法,和自顶向下分割,先序遍历建立二叉树的方法。 自底向上的算符优先法:
{
char OPTRCHART[7][7]= ' ','|','&','~','(',')','#', '|','>','','>',
'&','>','>','','>',
'~','>','>','>','','>',