有人能对我说,由于我不能编译程序而导致的错误在哪里?谢谢。这是错误描述:
Compiling main.pas
main.pas(4,1) Error: Illegal expression
main.pas(4,6) Fatal: Syntax error, ";" expected but "identifier A" found
Fatal: Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode (normal if you did not specify a source file to be compiled)程序源代码:
program Hello;
begin
type a = array [1..6] of integer;
integer a : array;
a[1]:=2;
a[2]:=6;
a[3]:=4;
a[4]:=2;
a[5]:=4;
a[6]:=3;
n:=6;
x:=a[1];
for i:=2 to 6 do
begin
{
if (a[i-1]>=x) then
begin
a[i]:=a[i] - x div 2;
end;
else
begin
a[i]:=a[i] + x;
x:= x + mod x(a[i] + 1);
end;
}
end;
writeln (a[i]);
end.
```发布于 2021-01-17 11:20:09
编译器正在抱怨意外的标记。
第一个问题是关键字begin放错了地方(正如Loren Pechtel指出的那样),编译器将类型定义和变量声明视为代码。begin应该是你的程序逻辑开始的地方。要了解this程序结构,请参阅TurboPascal教程。
另一个问题是数组类型的定义。首先,您需要创建类型并使用标识符(在下面的示例中为其命名为hexad)来命名它。然后,该标识符会变成一个类型名,比如integer,这样您就可以在进一步的var声明中使用它。Here是关于TurboPascal数组类型的另一个教程。
type
hexad = array [1..6] of integer;然后,您可以声明该类型的变量(在我的示例中为hexad):
var
a: hexad;请注意,您可以在keyword type下定义更多类型,在keyword var下定义更多变量,因此最好将它们放在单独的行中,并缩进类型定义和变量声明。
发布于 2021-01-17 11:23:51
除了blami指出的声明问题之外,你还有一个错误的起点--你的定义被当作代码,而不是变量。
不要过于相信编译器的错误消息,它通常会说一些与错误无关的事情。不过,它非常适合于指向错误所在的(除了当您无法关闭某些东西时,那里可能会变得疯狂)。
https://stackoverflow.com/questions/65756871
复制相似问题