编写程序实现将输入的数学表达式转换成后缀式(逆波兰式),并对后缀式进行计算,输出得到的值.测
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/04/27 19:44:03
编写程序实现将输入的数学表达式转换成后缀式(逆波兰式),并对后缀式进行计算,输出得到的值.测
这要写到综合性实验报告里面
这要写到综合性实验报告里面
这是数据结构中栈的一个应用实例:表达式的计算.
具体程序如下(PASCAL语言编写):
Program Houzhuishi;
Const smaxsise=100;
Type selement=char;
sposition=0..smaxsise;
stack=record
data:array[1..smaxsise] of selement;
top:sposition;
end;
stackerro=(noerro,empty,stackunderflow,stackoverflow);
Var
s:stack;
serro:stackerro;
strin,strout:string;
Function first(t:selement):integer;
Begin
case t of
'(':first:=0;
'+','-':first:=1;
'*','/':first:=2;
end;
End;
precedure change(strin,string;Var strout:string;Var s:stack);
Var t:selement;
md,me,mt:set of selement;
i,j:integer;
Begin
md:=['0'..'9','',';'];me:=['+','-','*','/','(',')'];
mt:=md+me;
strin:=strin+';';
strout;='';
for i:=1 to length(strin) do
if not(strin[i] in mt) then
begin
strout:='change erro!';exit;
end;
spush('(',s);
for i:=1 to length(strin) do
case strin[i] of
'':;
'0'..'9':strout:=strout:strin[i];
'(':spush(strin[i],s);
')',';':repeat
spop(t,s);
if t'(' then
strout:strout+t;
until (t='(')or(sempty(s));
'+','-','*','*':begin
stop(t,s);
while first(strin[i]
具体程序如下(PASCAL语言编写):
Program Houzhuishi;
Const smaxsise=100;
Type selement=char;
sposition=0..smaxsise;
stack=record
data:array[1..smaxsise] of selement;
top:sposition;
end;
stackerro=(noerro,empty,stackunderflow,stackoverflow);
Var
s:stack;
serro:stackerro;
strin,strout:string;
Function first(t:selement):integer;
Begin
case t of
'(':first:=0;
'+','-':first:=1;
'*','/':first:=2;
end;
End;
precedure change(strin,string;Var strout:string;Var s:stack);
Var t:selement;
md,me,mt:set of selement;
i,j:integer;
Begin
md:=['0'..'9','',';'];me:=['+','-','*','/','(',')'];
mt:=md+me;
strin:=strin+';';
strout;='';
for i:=1 to length(strin) do
if not(strin[i] in mt) then
begin
strout:='change erro!';exit;
end;
spush('(',s);
for i:=1 to length(strin) do
case strin[i] of
'':;
'0'..'9':strout:=strout:strin[i];
'(':spush(strin[i],s);
')',';':repeat
spop(t,s);
if t'(' then
strout:strout+t;
until (t='(')or(sempty(s));
'+','-','*','*':begin
stop(t,s);
while first(strin[i]
编写程序实现将输入的数学表达式转换成后缀式(逆波兰式),并对后缀式进行计算,输出得到的值.测
试采用逻辑算式的后缀(逆波兰)表示法来实现对下列算式的计算并输出计算结果:
一个含多位数的中缀表达式如何转换成后缀表达式(逆波兰表达式)?
1.编写程序,将用户输入的正整数转换成相应的星期值输出,如用户输入3,则输出Wednesday;用户输入0,则输出Sun
编写一个程序,可以计算算术表达式的值,对非法表达式要给出提示,并要求重新输入正确的表达式.(正确的表达式范例:123+4
编写一个程序,可以计算算术表达式的值,对非法表达式要给出提示,并要求重新输入正确的表达式.
编写一个程序,可以计算算术表达式的值,对非法表达式要给出提示,并要求重新输入正确的表达式
什么是逆波兰式?怎样把一个算术表达式转化成逆波兰式进行计算?
C语言 、 输入半径R ,并计算圆的面积S 和周长L .3、 编写一个程序实现把小写字母转换成大写字母.比如
编写程序,输入两个整数,求出它们的商数和余数并进行输出.
把中缀表达式转换为后缀表达式的算法
编写程序,输入圆的半径r 计算并输出圆的周长和面积.