首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法编译- Turbo Pascal

无法编译- Turbo Pascal
EN

Stack Overflow用户
提问于 2021-01-17 10:50:04
回答 2查看 184关注 0票数 1

有人能对我说,由于我不能编译程序而导致的错误在哪里?谢谢。这是错误描述:

代码语言:javascript
复制
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)

程序源代码:

代码语言:javascript
复制
    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.

    ```
EN

回答 2

Stack Overflow用户

发布于 2021-01-17 11:20:09

编译器正在抱怨意外的标记。

第一个问题是关键字begin放错了地方(正如Loren Pechtel指出的那样),编译器将类型定义和变量声明视为代码。begin应该是你的程序逻辑开始的地方。要了解this程序结构,请参阅TurboPascal教程。

另一个问题是数组类型的定义。首先,您需要创建类型并使用标识符(在下面的示例中为其命名为hexad)来命名它。然后,该标识符会变成一个类型名,比如integer,这样您就可以在进一步的var声明中使用它。Here是关于TurboPascal数组类型的另一个教程。

代码语言:javascript
复制
type
   hexad = array [1..6] of integer;

然后,您可以声明该类型的变量(在我的示例中为hexad):

代码语言:javascript
复制
var
   a: hexad;

请注意,您可以在keyword type下定义更多类型,在keyword var下定义更多变量,因此最好将它们放在单独的行中,并缩进类型定义和变量声明。

票数 4
EN

Stack Overflow用户

发布于 2021-01-17 11:23:51

除了blami指出的声明问题之外,你还有一个错误的起点--你的定义被当作代码,而不是变量。

不要过于相信编译器的错误消息,它通常会说一些与错误无关的事情。不过,它非常适合于指向错误所在的(除了当您无法关闭某些东西时,那里可能会变得疯狂)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65756871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档