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.

解决方案 »

  1.   

    是编译不过去还是结果不对。
    for i := low(a) to high(a) do 
        begin 
          a[i,1]:=1; 
          a[i,i]:=1; 
        end; 
    你这个好象不大对吧.
      

  2.   


    把a改成x后
    Messages显示错误
    见图
    http://p12.freep.cn/p.aspx?u=v20_p12_p_0809172319512652_0.jpg
      

  3.   

    a[i,j]:=a[i-1,j-1]+a[i-1,j]; 
    你定义的数组是从1开始的,当i=1时越界了。
      

  4.   

    a[i,j]:=a[i-1,j-1]+a[i-1,j]; 
      

  5.   

    越界了,没有a[0] 当i=1时则出现a[0]
      

  6.   

    program Project1;{$APPTYPE CONSOLE}uses
      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就可以编译通过了。
      

  7.   

        for i := low(x) to high(x) do
        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;
      

  8.   

    for i := low(x) to high(x) do 
        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;
      

  9.   

    首先是,变量搞错了,代码整理一下,把a换成xprogram Project1;{$APPTYPE CONSOLE} uses 
      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
      

  10.   

    终于在,不懈努力下,完成了杨辉三角 复制出来 program Project1; {$APPTYPE CONSOLE} uses 
    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.