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

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.


相关文章:
java数组之二维数组
("转置前的矩阵如下:"); //输出字符串 //声明并 二维数组的应用 09 10 ...二维数组的二维 //for 循环遍历二维数组的一维 12 13 14 15 16 17 18 19 ...
动态开辟和释放二维矩阵求两个矩阵的加减
动态开辟和释放二维矩阵求两个矩阵的加减 - 动态开辟和释放空间存放二维数组,求两个矩阵的加法和减法。其中输入二维数组,输出二 维数组以及求矩阵的加法和减法分别...
二维数组
二维数组 - 二维数组 具有两个下标的数组称为二维数组。有些数据要依赖于两个因素才能惟一地确定,例如有 3 个学生,每个学生有 4 门课的成绩,显然,成绩数据是...
矩阵操作C++
计算机与软件工程学院 矩阵操作(动态数组) 算法设计技能...全零矩阵或者全零方阵或者根据一 维数组二维数组来...矩阵相加" <<endl; 19 cout<< "3.矩阵相减" <...
二维数组(矩阵)基础知识_小学计算机_教学视频大全
pascal初学者(1)二维数组的概念,以及输入与输出(2)二维数组相似性比较(3)二维数组的绘制(4)二维数组的旋转与变换视频教程,pascal语言知识与基础算法全套教学,在线...
二维数组基本操作的编程实现
二维数组基本操作的编程实现_计算机软件应用_IT/计算机_专业资料。实验四 二维...2.运行程序了解二维结构:稀疏矩阵的压缩和解压缩、生命繁衍模型、迷宫问题等,...
c语言实现矩阵的相关操作
c语言实现矩阵的相关操作_计算机软件应用_IT/...这一概念由 19 世纪英国数学家凯利首 先提出。 ...理论分析 在 C 语言中,可以使用二维数组来描绘一个...
矩阵和操作
一个沿每根轴均匀缩放顶点的矩阵,也称为统一缩放,用如下数学符号表示。 在 C++应用程序中,Microsoft? Direct3D?使用 D3DMATRIX 结构,将矩阵声明为一个二维数组。...
矩阵文档
矩阵文档_计算机软件应用_IT/计算机_专业资料。成都信息工程学院课程设计 题目:...使用二维数组来表示魔方矩阵。 使用 if 条件语句,for 循环,switch 选择语句。 ...
VB程序设计-矩阵旋转
VB程序设计-矩阵旋转_计算机软件及应用_IT/计算机_专业资料。VB程序设计,二维数组的应用,旋转矩阵,一个很简单,但很巧妙的算法;有普通数组写法,也加入动态数组的...
更多相关标签: