【发布时间】:2017-04-06 17:29:08
【问题描述】:
我是一名一年级学生,我有一项任务要完成,但不明白如何避免我遇到的错误。请你帮助我好吗? 这是我的代码:
PROGRAM LAB5MAS (INPUT,OUTPUT);
CONST
n=5;
m=6;
VAR
A: array[1..n,1..m] of Integer;
R: array[m-1] of Integer;
i,j: Integer;
max: Integer;
BEGIN
Randomize;
for i:=1 to n do
for j:=1 to m do
a[i,j]:=random(10);
Writeln('a=,');
for i:=1 to n do
BEGIN
for j:=1 to m do
write(a[i,j]:4);
writeln;
END;
for i:=1 to n do
for j:=1 to m-1 do
R[i,j]:=abs(A[i,j]-A[i,j+1]);
END.
for i:=1 to n do
BEGIN
max:=R[i,1];
for j:=1 to m-1 do
if R[i,j] > max then
max:=R[i,j];
Writeln(max);
END;
for i:=1 to n do
BEGIN
for j:=1 to m do
write(a[i,j]:4);
writeln;
END.
以及我得到的错误:
Compiling C:\Users\Nadia\Desktop\qqwww\laba.pas
laba.pas(7,17) Error: Error in type definition
laba.pas(24,7) Error: Illegal qualifier
laba.pas(26,1) Fatal: There were 2 errors compiling module, stopping
Fatal: Compilation aborted
如何解决这个问题? 以及如何计算数组 A(5,6) 中最近元素之间的最大减法值并将此结果写入数组 B? 提前致谢!
【问题讨论】:
-
上一次我用帕斯卡编程是在高中....但似乎
R被定义为 1 维数组,而您使用矩阵R[I,J](也定义为R应该是ARRAY [1..M-1] OF INTEGER; -
Pascal 不采用简单的下标来定义数组;您必须提供预期有效的整个下标范围。您对
R的定义不正确。看看你是如何在上面的行中定义A的有效下标的。此外,您正在尝试将R用作二维数组,但尚未如此定义。返回并检查您的代码。 -
您有两个
END.(END以句号结尾)。这将是一个语法错误。你的 Pascal 程序的句法结束在第一个END.的末尾。 -
另请注意,第一部分(直到第一个
END.)看起来好像是一个单独的过程。这是什么帕斯卡方言?
标签: pascal freepascal