早教吧作业答案频道 -->数学-->
把赋值语句x:=a+b+c*d翻译成四元式序列
题目详情
把赋值语句x:=a+b+c*d翻译成四元式序列
▼优质解答
答案和解析
兰式、逆波兰式的目的是一样的,但四元式在表示简单赋值语句方面非常直观明了,四元式的格式:
(操作符,第一操作数,第二操作数,保存结果的变量)
例如:k:=k+1
四元式写成:(+,k,1,k)
如果表达式右边只有单操作数,那就相应位置无值,如:
k:=+1
四元式为:(+,-,1,k)
遇到逻辑条件表达式就要分别给出条件为真时的转移路径和条件为假时的转移路径,如:
if k>1
四元式为:(j>,k,1,?) ,表示条件为真的时候要转移到的地址“?”
(j,-,-,?),表示条件为假时无条件转移到这个地址“?”
“?”表示的地址可以用地址回填的方法确定
假设起始地址是100
begin
100:(+,-,100,k)
101:(+,i,j,t1)
102:(j>,k,t1,104)
103:(j,-,-,106)
104:(-,k,1,k)
105:(j,-,-,102)
106:(*,i,i,t2)
107:(*,j,j,t3)
108:(-,t2,t3,k)
109:(+,-,0,i)
110:(+,-,0,j)
end
(操作符,第一操作数,第二操作数,保存结果的变量)
例如:k:=k+1
四元式写成:(+,k,1,k)
如果表达式右边只有单操作数,那就相应位置无值,如:
k:=+1
四元式为:(+,-,1,k)
遇到逻辑条件表达式就要分别给出条件为真时的转移路径和条件为假时的转移路径,如:
if k>1
四元式为:(j>,k,1,?) ,表示条件为真的时候要转移到的地址“?”
(j,-,-,?),表示条件为假时无条件转移到这个地址“?”
“?”表示的地址可以用地址回填的方法确定
假设起始地址是100
begin
100:(+,-,100,k)
101:(+,i,j,t1)
102:(j>,k,t1,104)
103:(j,-,-,106)
104:(-,k,1,k)
105:(j,-,-,102)
106:(*,i,i,t2)
107:(*,j,j,t3)
108:(-,t2,t3,k)
109:(+,-,0,i)
110:(+,-,0,j)
end
看了 把赋值语句x:=a+b+c*...的网友还看了以下:
java中表达式10/4*5的结果为(B)。A.12.5B.10C.0.5D.12why6.设a= 2020-07-17 …
下列关于赋值语句的说法错误的是()A.赋值语句的作用是先计算出赋值号右边的表达式的值B.赋值语句是 2020-07-24 …
假定变量a=1,b=2,c=0,则表达式:c==b++>a&&a++,a+b的值是 2020-07-30 …
设有inta=3,b=-4,c=5;表达式++a-c+b++的值是?顺便说下过程, 2020-11-01 …
下列说法正确的是()A.输入语句可以给变量赋值,并且可以同时给多个变量赋值B.输出语句可以输出变量的 2020-11-03 …
下列关于赋值语句的说法错误的是()A.赋值语句的作用是先计算出赋值号右边表达式的值B.赋值语句是把左 2020-12-31 …
下列关于赋值语句的说法错误的是()A.赋值语句的作用是先计算出赋值号右边的表达式的值B.赋值语句是把 2020-12-31 …
C语言问答题若变量已正确定义并赋值,符合C语言语法的表达式是A:a=a+7B:a=7+b+c,a++ 2020-12-31 …
下列关于赋值语句的说法错误的是()A.赋值语句的作用是先计算出赋值号右边的表达式的值B.赋值语句是把 2020-12-31 …
关于条件表达式:的疑惑我在书上看到说若:两侧的的表达式是赋值表达式,则需要在赋值表达式上加括号如a> 2020-12-31 …