帮我看看这个PASCAL程序哪里错了

来源:百度知道 编辑:UC知道 时间:2024/05/18 08:42:39
program cale;
const e:extended=1;m:extended=0;t:extended=1;
var n,i:extended; a:=longint;
begin
read(a)
for i=1 to a do
begin
m:=m+1;
t:=t*m;
n=1/n;
e:=e+n;
end;
write('e=', e)
end.

我初学,多指教~~
FREE PASCAL给出的提示是(6,7)Error:ordinal expression expected
不是单单漏掉分号的问题吧……

program cale;
const e=1;m=0;t=1;
var n,i:extended; a:longint;
begin
read(a);
for i=1 to a do
begin
m:=m+1;
t:=t*m;
n:=1/n;
e:=e+n;
end;
write('e=', e)
end.

语法有错误,正确的程序如下:
program cale;
const e:extended=1;m:extended=0;t:extended=1;
var n,i:extended; a:longint;
begin
read(a);
for i=1 to a do
begin
m:=m+1;
t:=t*m;
n=1/n;
e:=e+n;
end;
write('e=', e);
end.

话说
PASCAL中const定义时不用写类型。
你那样写就不对,
像这样
const e=1.0; m=0.0; t=1.0;
另外,var n,i:extended; a:=longint; , 请在定义变量时把=号去鸟(⊙﹏⊙b汗)
还有啊。
read(a) 加分号。
n=1/n; 加冒号
for i=1 to a do , i后面加冒号(你……好牛?)

然后是。
摆脱e既然是const,是常量,是不能对它赋值的。

大概就这么多错了。

顺便说下,虽然end前句话可以不加分号,但养成好习惯加上。(write...)

最主要的一个错误是
Extended型是扩展型,适用于19-20位的实数,需要提前定义。

var a:longint;
read(a);
for i:=1 to a do
n