我想请教下有关pascal语句的....

来源:百度知道 编辑:UC知道 时间:2024/05/30 06:10:08
问题是:当x>0时候,计算x*x,并且输出x和x*x

我写的pascal语言是下面的:
var
x:real;
begin
readln(x);
if x>0
then writeln(x,x*x);
else writeln('that is no answer');
end.
end.

请问我写的pascal语言有什么问题?

1: var
2: x:real;
3: begin
4: readln(x);
5: if x>0
6: then writeln(x,x*x);
7: else writeln('that is no answer');
8: end.
9: end.

第6行最后不能有“;”
第9行多余,没有begin与它匹配

var
x:real;
begin
readln(x);
if x>0
then writeln(x,x*x); //这里不要这样子,此时不应有分号,且输出时数字会连在一起的
else writeln('that is no answer');
end.//这里不应该是 end.
end.

正确程序:
var
x:real;
begin
readln(x);
if x>0
then writeln(x,' ',x*x)
else writeln('that is no answer');
end.

多个end.
而且在语句then writeln(x,x*x);之后的“;”多余,会造成“but else find”的错误。
改为
var
x:real;
begin
readln(x);
if x>0
then writeln(x,x*x)
else writeln('that is no answer');
end.
我还有点建议,像这个题,可以把x定义成double,可以防止超出范围。

then writeln(x,x*x);
ELSE语句前不要分号

多打了个END,ELSE后无‘;’改为:
var x:real