算式求解(pascal程序)

来源:百度知道 编辑:UC知道 时间:2024/07/04 02:54:42
输入一个算式,输出算式的结果。每个算式只有一种运算(+、-、*、/)参加运算的数是-32768到32767的整数.算式要可以用负数!!!
例:
输入:2+5
输出:2+5=7

输入:3+-8
输出:3+-8=-5

急急急啊
好的+30

输出格式错了,刚修改过
var n,i,j,p:integer;
s,s1,s3:string;
s2:char;
begin
readln(s);{用字符串输入}
n:=1;
repeat
inc(n);{寻找运算符的位置,从1开始是为了避免把第一个数前的符号当成要进行的运算}
until (s[n]='+')or(s[n]='-')or(s[n]='*')or(s[n]='/')or(n>256);{判断是否找到运算符的条件,(n>256)是防止死循环}
s1:=copy(s,1,n-1);s2:=s[n];s3:=copy(s,n+1,length(s));{截取,s1和s3分别是两个数,s2是运算符}
val(s1,i,p);val(s3,j,p);{把s1,s3两个字符串转换成数字}
case s2 of{计算并输出}
'+':writeln(i,s2,j,'=',i+j);
'-':writeln(i,s2,j,'=',i-j);
'*':writeln(i,s2,j,'=',i*j);
'/':writeln(i,s2,j,'=',i/j);
end;
end.
这个程序验证过,准确而且正确

要加分哦.

var a,b:integer;
c:char;
begin
read(a);
read(b);
readln(c);
case b of
'+':a:=a+b;
'-':a:=a-b;
'*':a:=a*b;
'/':a:=a/b;