資源簡介
1. 題目:對輸入的表達(dá)式判斷其是否是合法的命題公式
2. 要求:有關(guān)命題公式的定義,請嚴(yán)格使用我們使用的教材上的定義。五種聯(lián)接詞的規(guī)定如下:
? 非:!
? 與:+
? 或:-
? 蘊(yùn)含:$
? 等價(jià):#
代碼片段和文件信息
//?made?by?fan?from?xiamen?university
//AI??AI??AI??AI?AI??AI??AI??AI??AI??AI??AI??AI??AI??AI??AI??AI??AI??AI??AI
//定義五種命題的連接詞:或(-)???且(+)??非(!)???蘊(yùn)含($)???等價(jià)(#)
//定義兩個(gè)命題的標(biāo)點(diǎn)符號(hào):‘(‘‘)‘
//定義三個(gè)原子公式:pqr
/*
1.?題目:對輸入的表達(dá)式判斷其是否是合法的命題公式
2.?要求:有關(guān)命題公式的定義,請嚴(yán)格使用我們使用的教材上的定義。五種聯(lián)接詞的規(guī)定如下:
.?非:!
.?與:+
.?或:-
.?蘊(yùn)含:$
.?等價(jià):#
*/
#include
#include
#include
#include
class?Judgestring{
private:
int?I_length;
char?*C_string;
public:
Judgestring(char?*p);
~Judgestring();
int?Judgeexpression();
};
Judgestring::Judgestring(char?*p)??
{
C_string=new?char[strlen(p)+1];
assert(C_string!=0);?
strcpy(C_stringp);
I_length=strlen(p);
}
Judgestring::~Judgestring()???????
{
delete[]C_string;
}
int?Judgestring::Judgeexpression()??
{
int?i;
for(i=0;i {
if(C_string[i]!=‘p‘&&C_string[i]!=‘q‘&&C_string[i]!=‘r‘&&C_string[i]!=‘!‘&&C_string[i]!=‘-‘&&C_string[i]!=‘+‘&&C_string[i]!=‘$‘&&C_string[i]!=‘#‘&&C_string[i]!=‘(‘&&C_string[i]!=‘)‘)
{
cout<pression?is?not?a?proposition!“< return?1;
}
}?
if(I_length==0)
{
cout<pression?is?not?a?proposition!“< return?1;
}?
else?if(I_length==1)
{
if(*C_string==‘p‘||*C_string==‘q‘||*C_string==‘r‘)
{
cout<pression?is?a?proposition!“< return?1;
}
else?
{
cout<pression?is?not?a?proposition!“< return?1;
}
}
else
{
if(C_string[0]!=‘(‘)
{
cout<pression?is?not?a?proposition!“< return?1;
}??
else
{
for(;I_length>1;)
{
for(i=0;i {
if(C_string[i]==‘(‘&&C_string[i+1]==‘!‘&&(C_string[i+2]==‘p‘||C_string[i+2]==‘q‘||C_string[i+2]==‘r‘)&&C_string[i+3]==‘)‘)
{
C_string[i]=‘p‘;
for(;i<=
評(píng)論
共有 條評(píng)論