pascal 超简单的问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 23:50:27
给出一个可以运行的程序,(有漏打字符不用管啦)
var
result,x,y:real
ch:char;
begin
writeln('Input x,y:');
readln(x,y);
write('Input operator(+,-,*,/):');
readln(ch)
result:=0;
case ch of
'+':result;=x+y;
'-':result;=x-y;
'*':result;=x*y;
'/':if y<>0
then
result:=x/y
else
writeln('divide overflow!')
end;
if y<>0 then
writeln(x:6:3,ch:2,Y:6:3,'=',result:6:3);
readln
end.
想问一下就是ch在这里做什么用? 还有就是那个result:=0是什么意思
还有后面的
if y<>0 then
writeln(x:6:3,ch:2,Y:6:3,'=',result:6:3);
readln
这一段是什么意思,(为什么then写在那里)
麻烦大家了

1,ch是参数x,y的运算符,x与y可以进行加减乘除运算;
2,resule:=0是初始化返回值为0;
3,如果y<>0,则显示运算表达式和结果。then写在这里主要是在y<>0的情况下,用来显示运算的最终结果。

ch是运算符,这是一个简单的计算器程序,只能计算一步,result:=0;也就是把结果清0,看起来工整,其实也没多大用处,因为不赋值的话那个result也是0.
if y<>0 then
writeln(x:6:3,ch:2,Y:6:3,'=',result:6:3);
readln
这一段错了.
程序应为:var
result,x,y:real;
ch:char;
begin
writeln('Input x,y:');
readln(x,y);
write('Input operator(+,-,*,/):');
readln(ch);
result:=0;
case ch of
'+':result;=x+y;
'-':result;=x-y;
'*':result;=x*y;
'/':if y<>0
then
result:=x/y
else begin
writeln('divide overflow!');
halt;
end;
end;
writeln(x:6:3,ch:2,Y:6:3,'=',result:6:3);