編譯原理 7 4 翻譯布林表示式 A

2021-10-01 02:30:48 字數 1263 閱讀 9032

大家都學過了布林表示式的翻譯,其中有乙個拉鍊-回填技術,這次我們就練習這個技術。

注意,在布林表示式中,「並且」運算的優先順序是要高於「或者」運算的。

輸入為一行字串,例如: a < b or c < d and e < f

每個符號都用空格間隔。

其中邏輯運算子包含 and 和 or , 關係運算子包含 < 、> 、<= 、 >= 、== 、 != 。

假鏈跳到0,真鏈跳到1,表示式序號從100開始排。

a < b or c < d and e < f
100(j<,a,b,1)

101(j,_,_,102)

102(j<,c,d,104)

103(j,_,_,0)

104(j<,e,f,100)

105(j,_,_,103)

a < b and c > d or e > f
100(j<,a,b,102)

101(j,_,_,104)

102(j>,c,d,1)

103(j,_,_,101)

104(j>,e,f,100)

105(j,_,_,0)

#include

using

namespace std;

vector ans;

string s;

intmain()

printf

("%d(j%s,%s,%s,%d)\n"

,id,ans[i+1]

.c_str()

,ans[i]

.c_str()

,ans[i+2]

.c_str()

,t);

t = id -

(n-3)/

3*2;

id++

;printf

("%d(j,_,_,%d)\n"

,id,f)

; id++

; ans.

clear()

;if(x==

"end"

)break;}

else

if(x ==

"and"

) f+=2

;else

ans.

push_back

(x);

}}

M 翻譯布林表示式 編譯原理機測

m 翻譯布林表示式 description 大家都學過了布林表示式的翻譯,其中有乙個拉鍊 回填技術,這次我們就練習這個技術。input 輸入為一行字串,例如 a b or c d and e f 每個符號都用空格間隔。其中邏輯運算子包含 and 和 or 關係運算子包含 output 假鏈跳到 真鏈...

翻譯布林表示式

翻譯布林表示式time limit 1000 ms memory limit 65536 kib problem description 大家都學過了布林表示式的翻譯,其中有乙個拉鍊 回填技術,這次我們就練習這個技術。input 多組輸入,每組輸入為一行字串,例如 a b or c d and e ...

翻譯布林表示式

time limit 1000 ms memory limit 65536 kib submit statistic problem description 大家都學過了布林表示式的翻譯,其中有乙個拉鍊 回填技術,這次我們就練習這個技術。input 多組輸入,首先輸入乙個整數t,代表資料組數。接下來...