当前位置:首页 >> 初三数学 >>

19-二维数组的应用、矩阵


二维数组应用(矩阵,方阵) 二维数组应用(矩阵,方阵)
矩阵:将二维数组表示很多数这种形式称为矩阵. 方阵:行列数相同的二维数组,称为方阵.一般表示为 A N×N 方阵中的一些重要概念: 对角线:A [ I,J ] ,在( I = J )OR ( I + J = N + 1 )的情况下; 主对角线:………….,在 I = J 的情况下; 上三角:………….,在 I < J 的情况下; 下三角:………….,在 I > J 的情况下; 例一:输入 4×4 方阵,分别求两条对角线上元素之和.
S1:= 0 ; S2:= 0 ; FOR I := 1 TO 4 DO S1 := S1 + A[ I,I ] ; FOR I := 1 TO 4 DO S2 := S2 + A[ I,5 - I ] ;

例二:矩阵的转置: A: 1 2 3 4 5 6 7 8 9 10 11 12

转置为

1 2 3

B: 4 7 5 8 6 9
N行M列 A[J,I]

10 11 12

M 行 N 列 ……………………………………………….. A [ I , J ] ………………………………………………..

程序: CONST M=4;N=3; VAR A:ARRAY [ 1..M,1..N ] OF INTEGER ; B:ARRAY [ 1..N,1..M] OF INTEGER ; I, J:INTEGER ; BEGIN WRITELN('INPUT ',M,' × ',N,' ARRAY :'); FOR I := 1 TO M DO { 输入 } BEGIN FOR J := 1 TO N DO READ(A[ I,J]); READLN END; FOR I := 1 TO N DO { 转置 } FOR J := 1 TO M DO B[ I,J ] := A[ J , I ]; FOR I := 1 TO N DO { 输出 } BEGIN

FOR J := 1 TO M DO WRITELN END; END.

WRITE(A[ I,J]:4);

引申 1,将 A 数组顺时针转 90°形成 B 数组.分析找规律:B[ I ,J ] := A[ J , M + 1 – I ] 2,………….逆时针转 90°…………... 分析找规律:B[ I ,J ] := A[ M - J , I ] 3,………….顺时针转 180°…………..分析找规律:B[ I ,J ] := A[M + 1 - I , M – J ]

例三:给一维数组输入 M 个整数,假设 M=6,数组元素分别为 7 4 8 9 1 5 , 要求建立一个如下数组(矩阵): 7 4 8 9 1 5 4 8 9 1 5 7 8 9 1 5 7 4 9 1 5 7 4 8 1 5 7 4 8 9 5 7 4 8 9 1 程序:
CONST M=6 ; VAR A:ARRAY[ 1..M ] OF INTEGER ; B:ARRAY[ 1..M,1..M ] OF INTEGER ; I ,J :INTEGER ; BEGIN WRITELN('INPUT A ARRAY : '); FOR I := 1 TO M DO READ(A[ I ]); READLN; FOR I:= 1 TO M DO B[1,I ] := A[ I ] ; FOR I:= 2 TO M DO BEGIN FOR J := 1 TO M-1 DO B[ I , J ] :=B[ I-1 ,J+1 ] ; B[ I , 6 ] := B[ I-1 ,1 ] ; END ; 输出 B 数组; END.

例四:建立如下矩阵:2 3 4 5

3 4 5 6

4 5 6 7

5 6 7 8

注意: 注意:一般情况下,给二维数组赋初值,都是找 A [ I ,J ] 与 I 和 J 的函数关系. FOR I := 1 TO N DO FOR J:= 1 TO N DO A [ I, J ] := F( I,J ); 本例,对于任意的 A [ I ,J ] = I + J ; 所以,一定要强调分析能力,让学生学会分析变量的关系.

学生练习:1 学生练习 2 3 4 5

1 1 2 3 4

1 1 1 2 3

1 1 1 1 2

1 1 1 1 1 I–J=1 I–J=2 I–J=3

I–J=4 再分析一下 CASE 语句,得出: IF I > J THEN A [ I,J ]:= I – J + 1 ELSE A [ I,J ]:= 1; 引申: 引申 1 2 3 4 5 2 1 2 3 4 3 2 1 2 3 4 3 2 1 2 5 4 3 2 1

FOR I:= 1 TO 5 DO FOR J:= 1 TO 5 DO CASE I – J OF 1:A[I,J]:=2; 2:A[I,J]:=3; 3:A[I,J]:=4; 4:A[I,J]:=5; ELSE A[I,J]:=1 END;

对称矩阵:

│I-J│=3

可以先给上三角赋值, 然后利用对称性, A [ J,I ] := A[ I,J ];

│I-J│=1 │I-J│=4 再如:1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 │I-J│=2 I-J│=0

IF I < = J THEN A[ I ,J ] := 1 ELSE A[ I ,J ] := 0; 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 IF ( I = J ) OR ( I + J = 5 ) THEN A[ I ,J ] := 1 ELSE A[ I ,J ] := 0; 例五:请编写一个程序,输入一个 n(小于 10 的奇数),输出他的奇数幻方.
说明:n 阶幻方表示一个 n 行,n 列的方阵,由 1 到 n*n,这 n*n 个数构成. 以下是一个 5 阶幻方:17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 条件:每一行,每一列和两个对角线上的每个元素之和都相等(为 n*(n
2

+1)/2

).

怎么形成这个方阵呢?以 n=5 为例,算法如下: 一,确定幻方的阶数 N; 二,初始化:将 N*N 的方阵 A 全部设置成 0; 三,从第一个数开始填,即 T=1; 四,确定第一个数的位置,行下标 R=1 和列下标 C=N DIV 2 +1; 五,填入当前数 A[R,C]:=T,准备好下一个数 T:=T+1; 六,寻找下一个数的位置(最关键) 一般为:右上角,即 R:=R-1;C:=C+1; 但:1.如果已到了第一行上边,即 R=0,则应该把该数调整到本列的最后一行,R=N; 即 IF R=0 THEN R:=N; 2.如果已到了最后一列的右边,即 C=N,则应该把该数调整到本行的第一列,C=1; 即 IF C=N THEN C:=1; 3.如果上边两个条件都满足,即 R=0 且 C=N,则应该把该数调整到上一个数的正下方; 即 IF (R=0)AND (C=N) THEN BEGIN R:=R+2;C:=C-1 ; END; 4. 如果该位置已有数了,,即 A[R,C]<>0,则应该把该数也调整到上一个数的正下方; 即 IF A[R,C]<>0 THEN BEGIN R:=R+2;C:=C-1 ; END; 转到第五部继续.即循环.循环的条件是什么呢?T<=N*N,可以用 WHILE 或 FOR 循环. 如:WHILE T<=N*N DO BEGIN 五; 六; T:=T+1; END; 七,打印输出 A.

赞助商链接
相关文章:
二维数组问题
二维数组问题_计算机软件应用_IT/计算机_专业资料。【例 6.9】求 n×n 矩阵 a 的上三角形元素之积。其中矩阵的行数、 列数和全部元素值均由键盘输入,编程...
Matlab二维数组及其应用
Matlab二维数组及其应用_能源/化工_工程科技_专业资料。Matlab:二维数组及其应用 二维数组实际上也是一个矩阵。应此直接创建一个矩阵就行。创建的方法你应该会吧,就...
java数组之二维数组
("转置前的矩阵如下:"); //输出字符串 //声明并 二维数组的应用 09 10 ...二维数组的二维 //for 循环遍历二维数组的一维 12 13 14 15 16 17 18 19 ...
二维数组的压缩存储矩阵
二维数组的压缩存储矩阵_计算机软件应用_IT/计算机_专业资料。已知两个n阶下半三角矩阵的乘积仍为n阶下半三角矩阵。编程输入两个n阶下半三角矩阵,输出这两个...
动态开辟和释放二维矩阵求两个矩阵的加减
动态开辟和释放二维矩阵求两个矩阵的加减_计算机软件应用_IT/计算机_专业资料。动态开辟和释放空间存放二维数组,求两个矩阵的加法和减法。其中输入二维数组,输出二...
二维数组作业
百度文库 专业资料 IT/计算机 计算机软件应用上传文档支持以下设备:扫二维码下载...二维数组作业 隐藏>> 1、求一个 3*3 矩阵对角线元素之和以及左下半三角之和...
16-二维数组
百度文库 专业资料 IT/计算机 计算机软件应用...16二维数组 暂无评价 7页 免费 16相似矩阵 22页 ...[3] 17 19 21 23 行名 每个元素a[i]由包含4...
实验八 二维数组及字符数组应用
方法和字符串处理函数; 4、掌握与二维数组应用有关的算法(如查找、矩阵转置等)...12 76 4 1 -19 28 55 -6 2 10 13 -2 3 -9 112 167 -2- 实验...
多维数组和矩阵
矩阵运算矩阵二维数组,但因为其应用广泛所以对它定义了一些特殊的运算和操作。...比如 fr[1]的元素名为-81,值为 19,表示值 -81 在数组 d2 中出现了 19 ...
二维数组例题答案
二维数组例题答案_计算机软件应用_IT/计算机_专业资料。VB基本例题【例 1】编写程序,利用二维数组在窗体上输出如图 5x5 矩阵,矩阵两条对角 线上的元素为 1,...
更多相关标签: