Pascal表达式求值

Pascal表达式求值

ID:40754221

大小:34.50 KB

页数:5页

时间:2019-08-07

Pascal表达式求值_第1页
Pascal表达式求值_第2页
Pascal表达式求值_第3页
Pascal表达式求值_第4页
Pascal表达式求值_第5页
资源描述:

《Pascal表达式求值》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Pascal表达式求值:负数能够参与运算。其中负数(-m)的解决办法是通过在数字栈中构建0-m方式,把单目的负数符号变成减法运算(负数主要出现在表达式的开头以及“(”后面,程序默认输入的表达式格式正确。programexpress;vars:string;//输入字符串fuhao:array[1..100]ofchar;//符号栈shuzi:array[1..100]oflongint;//数字栈fh_top,sz_top:integer;//栈指针i,j,len,k:longint;c:char;functionjibie(c:char):integer;//定义运算符的优先级begin

2、casecof'(':exit(0);'+','-':exit(1);'*','/':exit(2);'^':exit(3);end;end;functionjisuan(x,y:longint;c:char):longint;//计算函数varr,t:longint;begincasecof'+':exit(x+y);'-':exit(x-y);'*':exit(x*y);'/':exit(xdivy);'^':begint:=1;forr:=1toydot:=t*x;end;end;jisuan:=t;end;beginreadln(s);fh_top:=0;sz_top:=0;len

3、:=length(s);i:=1;ifs[i]='-'then//判断表达式第一个数是否是负数begininc(sz_top);shuzi[sz_top]:=0;end;whilei<=lendobeginifs[i]in['+','-','*','/','^']thenbeginwhile((fh_top<>0)and(jibie(s[i])<=jibie(fuhao[fh_top])))dobegink:=jisuan(shuzi[sz_top-1],shuzi[sz_top],fuhao[fh_top]);dec(fh_top);dec(sz_top);shuzi[sz_top]:=

4、k;end;inc(fh_top);fuhao[fh_top]:=s[i];end;ifs[i]='('thenbegininc(fh_top);fuhao[fh_top]:=s[i];ifs[i+1]='-'thenbegininc(sz_top);shuzi[sz_top]:=0;end;end;ifs[i]=')'thenbeginwhilefuhao[fh_top]<>'('dobegink:=jisuan(shuzi[sz_top-1],shuzi[sz_top],fuhao[fh_top]);dec(fh_top);dec(sz_top);shuzi[sz_top]:=k;en

5、d;dec(fh_top);end;ifs[i]in['0'..'9']thenbegink:=ord(s[i])-48;inc(i);whiles[i]in['0'..'9']dobegink:=k*10+ord(s[i])-48;inc(i);end;inc(sz_top);shuzi[sz_top]:=k;dec(i);end;inc(i);end;whilefh_top>0do//符号栈中的元素全部运算,并弹栈begink:=jisuan(shuzi[sz_top-1],shuzi[sz_top],fuhao[fh_top]);dec(fh_top);dec(sz_top);shu

6、zi[sz_top]:=k;end;writeln(shuzi[sz_top]);//数字栈底元素为结果end.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。