program Project1;{$APPTYPE CONSOLE}uses
SysUtils; type
a=array[1..10,1..10] of Integer; var
i,j:Integer;
x:a;
beginfor i := low(a) to high(a) do
begin
a[i,1]:=1;
a[i,i]:=1;
end;
for i := 1 to 10 do
for j := 1 to 10 do
begin
a[i,j]:=a[i-1,j-1]+a[i-1,j];
end;
for i := 1 to 10 do
begin
for j := 1 to 10 do
write(a[i,j],' ');
writeln;
end;
readln;
end.
SysUtils; type
a=array[1..10,1..10] of Integer; var
i,j:Integer;
x:a;
beginfor i := low(a) to high(a) do
begin
a[i,1]:=1;
a[i,i]:=1;
end;
for i := 1 to 10 do
for j := 1 to 10 do
begin
a[i,j]:=a[i-1,j-1]+a[i-1,j];
end;
for i := 1 to 10 do
begin
for j := 1 to 10 do
write(a[i,j],' ');
writeln;
end;
readln;
end.
for i := low(a) to high(a) do
begin
a[i,1]:=1;
a[i,i]:=1;
end;
你这个好象不大对吧.
把a改成x后
Messages显示错误
见图
http://p12.freep.cn/p.aspx?u=v20_p12_p_0809172319512652_0.jpg
你定义的数组是从1开始的,当i=1时越界了。
SysUtils;type
a = array[1..10, 1..10] of Integer;var
i, j: Integer;
x: a;
begin
for i := low(x) to high(x) do
begin
x[i, 1] := 1;
x[i, i] := 1;
end;
for i := 1 to 10 do
for j := 1 to 10 do
begin
x[i, j] := x[i - 1, j - 1] + x[i - 1, j];
end;
for i := 1 to 10 do
begin
for j := 1 to 10 do
write(x[i, j], ' ');
writeln;
end;
readln;
end.
首先是a是你定义的类型,所以不能用来变量使用。
就好比你integer不能用作变量是相同的道理,
因此,你把a换成x就可以编译通过了。
begin
x[i,1]:=1;
x[i,i]:=1;
end; for i := 2 to 10 do
for j := 2 to 10 do
begin
x[i,j]:=x[i-1,j-1]+x[i-1,j];
end;
for i := 1 to 10 do
begin
for j := 1 to 10 do
write(x[i,j],' ');
writeln;
end;readln;
begin
x[i,1]:=1;
x[i,i]:=1;
end; for i := 2 to 10 do
for j := 2 to 10 do
begin
x[i,j]:=x[i-1,j-1]+x[i-1,j];
end;
for i := 1 to 10 do
begin
for j := 1 to 10 do
write(x[i,j],' ');
writeln;
end; readln;
SysUtils; type
a=array[1..10,1..10] of Integer; var
i,j:Integer;
x:a;
begin for i := low(x) to high(x) do
begin
x[i,1]:=1;
x[i,i]:=1;
end;
for i := 1 to 10 do
for j := 1 to 10 do
begin
x[i,j]:=x[i-1,j-1]+x[i-1,j];
end;
for i := 1 to 10 do
begin
for j := 1 to 10 do
write(x[i,j],' ');
writeln;
end;
readln;
end. 然后,通过编译,运行,弹出为
http://p12.freep.cn/p.aspx?u=v20_p12_p_0809181345236400_0.jpg
原来是数组下标越界最后,再次修改了一下,代码为
program Project1;{$APPTYPE CONSOLE} uses
SysUtils; type
a=array[0..10,0..10] of Integer; var
i,j:Integer;
x:a;
begin for i := low(x) to high(x) do
begin
x[i,1]:=1;
x[i,i]:=1;
end;
for i := 1 to 10 do
for j := 1 to 10 do
begin
x[i,j]:=x[i-1,j-1]+x[i-1,j];
end;
for i := 1 to 10 do
begin
for j := 1 to 10 do
write(x[i,j],' ');
writeln;
end;
readln;
end.
结果运行出来还是没有得到正确的结果,图
http://p12.freep.cn/p.aspx?u=v20_p12_p_0809181359051089_0.jpg
SysUtils; type
a=array[1..10,1..10] of Integer; var
i,j:Integer;
x:a;
begin for i := low(x) to high(x) do
begin
x[i,1]:=1;
x[i,i]:=1;
end;
for i := 1 to 10 do
for j := 1 to 10 do
begin
x[i+1,j+1]:=x[i,j]+x[i,j+1];
end;
for i := 1 to 10 do
begin
for j := 1 to 10 do
begin
if x[i,j]=0 then continue;
write(x[i,j],' ');
end;
writeln;
end; readln;
end.