二维数组及应用举例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5
信息学奥赛培训系列AmberXie
二维数组的输入与输出
对二维数组的输入与输出也同样可用二重循环来实
现:
for i:=1 to 5 do begin for j:=1 to 4 do read(a[i,j]); readln; end;
for i:=1 to 5 do begin
for j:=1 to 4 do write(a[i,j]:5); writeln; end;
2 2 6
3 3 7
4
4 8
a[3]
9 10 11 12
二维数组按行存放
4
信息学奥赛培训系列AmberXie
二维数组的元素引用
对于整个二维数组的元素引用时,大多采用二重循
环来实现。如:给如上说明的二维数组a进行赋
值:a[i,j]=i*j。
for i:=1 to 5 do for j:=1 to 4 do a[i,j]:=i*j;
9
信息学奥赛培训系列AmberXie
螺旋方阵
0 0 1 2 3 4 1 1 2 2 3 20 29 26 13 3 4 21 30 25 12 4 5 22 23 24 11 5 6 7 8 9 10
18 19 17 28 16 27 15 14
10
信息学奥赛培训系列AmberXie
求二维数组行列之和
二维数组
xiechengxi@vip.qq.com
信息学奥赛培训系列AmberXie
二维数组的常量定义
Const
a:array[0..2,0..3] of integer=
((1,2,3,4),(5,6,7,8),(9,10,11,12));
0 a[0]
a[1] a[2] 1
1 2
2 3
3 4
5
6
把二维数组 a 各行之和分别放入 b 数组,各列之和 for j:=0 to 3 do begin
for i:=0 to 2 do
分别放入 c 数组。 b[i] =b[i]+ a[i,j];
c[j] =c[j]+ a[i,j];
a
0 1
end;
0
1 2 9 3
2 4 2 5
3 1 6 8
b
3 + 2 +4 + 1 5 + 9 +2 + 6 7+ 3 + 5 + 8
7
信息学奥赛培训系列AmberXie
杨辉三角
0 1 2 3 4 5 6
0
1
1
1 1
2
3
1
1
2
3
1
3 1
4
5
1
1
4
5
6
4
1
5 1
10 10
6
8
1
6
15 20 15
6
1
信息学奥赛培训系列AmberXie
塔形方阵
0 0 1 2 3 4 1 1 1 1 1 1 1 2 2 2 1 2 1 2 3 2 1 3 1 2 3 2 1 4 1 2 3 2 1 5 1 2 2 2 1 6 1 1 1 1 1
6
信息学奥赛培训系列AmberXie
读程序写结果
program exp2; const n=5; var i,j,k:integer; a:array [1..2*n,1..2*n] of integer; begin k:=1; for i:=1 to 2*n-1 do if i<=n then if odd(i) then for j:=i downto 1 do begin a[i-j+1,j]:=k;k:=k+1; end else for j:=1 to i do begin a[i-j+1,j]:=k; k:=k+1;end else if odd(i) then for j:=n downto i-n+1 do begin a[i-j+1,j]:=k; k:=k+1;end else for j:=i-n+1 to n do begin a[i-j+1,j]:=k; k:=k+1; end; for i:=1 to n do begin for j:=1 to n do write(a[i,j]:3); writeln; end; end.
3 5
7
2
c 3 + 5 + 7 2+9 + 3 4+2 + 5 1+6 + 8
11
信息学奥赛培训系列AmberXie
4×4魔术方阵 1
5 8
14 2
11 6 7
15 3
10 7 6
4
8 5
12 9
13
11 10 7
14 2
10 6 11
3 15
9 12
16
12
信息学奥赛培训系列AmberXie
7
8
9 10 11 12
二维数组按行存放
2
信息学奥赛培训系列AmberXie
二维数组的变量定义
type matrix=array[1..5,1..4]of integer;
var
a:matrix;
a是二维数组,共有5*4=20个元素,它们是:
a (1,1) a (2,1) a (3,1) a (4,1) a (5,1) a (1,2) a (2,2) a (3,2) a (4,2) a (5,2) a (1,3) a (2,3) a (3,3) a (4,3) a (5,3) a (1,4) a (2,4) a (3,4) a (4,4) a (5,4)
3
信息学奥赛培训系列AmberXie
Fra Baidu bibliotek
存储
由于计算机的存储器是一维的,要把二维数组的元素存放到存储器 中,pascal是按行(第一个下标)的次序存放,即按a (1,1) a (1,2) a (1,3)
a (1,4) a (2,1) …,a (5,4) 的次序存放于存储器中某一组连续的存储
单元之内。
1 a[1] a[2] 1 5
相关文档
最新文档