一个pascal程序四则计算器的问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 01:14:31
以下程序为什么不对?会出现运行错误
这是一个最简单的计算器,做+-*/,并且只做一次
program calculator(input,output);
var
x,y,result:real;
oper:char;
begin
read(x,oper,y);
case oper of
'+': result:=x+y;
'-': result:=x-y;
'*': result:=x*y;
'/': result:=x/y
end;
writeln(x:6:2,oper,y:6:2,'=',result:8:4);
readln;
readln
end.
请指教 ,我用的是lazarus 0.9.10beta

最后不加分号是对的
分行读是不可能的事
一行String读掉用While判
其实程序第一行基本是没用的,不打也会对

read(x,oper,y); 不对
输入一个算式如‘4+8’,lazarus 不能直接分辨字符和数字,你输入中带了‘+’,属字符串型,与x的real不符,会被视为错误。最好分行来读入:
readln(x);
readln(oper);
readln(y);
就可以了
还有最后一个readln没加分号

用字符串读入吧

最好用字符串读入
read(x,oper,y)错了,
应该分开读入