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

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.


相关文章:
19-二维数组.doc
19-二维数组 - 二维数组应用(矩阵、方阵) 矩阵:将二维数组表示很多数这种形式称为矩阵。 方阵:行列数相同的二维数组,称为方阵。一般表示为 A N×N 方阵中的...
数组--二维数组_图文.ppt
数组--二维数组 - C语言程序设计 数组 一维数组的应用、 一维数组的应用二维数组 授课教师: 授课教师:李群 个人邮箱: 个人邮箱:sdbzlq@126.com 学习邮箱: ...
二维数组简单讲解_图文.ppt
二维数组简单讲解_计算机软件应用_IT/计算机_专业...6 个元素 表示1个3行2列的矩阵 二维数组的元素在...文档贡献者 汪小胖66 贡献于2018-06-19 ...
数组与矩阵的应用_图文.ppt
数组矩阵的应用 - 山东大学软件学院 数据结构、算法与应用课程 教学专用演示文
java数组之二维数组.doc
("转置前的矩阵如下:"); //输出字符串 //声明并 二维数组的应用 09 10 ...二维数组的二维 //for 循环遍历二维数组的一维 12 13 14 15 16 17 18 19 ...
Matlab二维数组与其应用.doc
Matlab二维数组与其应用_能源/化工_工程科技_专业资料...y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19....三维条形图:bar3(y),将 m× n 阶的矩阵绘制成...
二维数组.ppt
二维数组_计算机软件应用_IT/计算机_专业资料。二维...19 23 24 5 10 15 20 25 a[0,0] a[0,1]...("pause"); return 0; } 编程计算矩阵中对角线...
C语言程序设计第10讲(二维数组)(2012级)_图文.ppt
6.2.3 二维数组应用实例 例8 有一个3x4的矩阵,求该矩阵中最大值元 素。...[mid]成立,则找到 大学课件 2014-9-16 Page 19 查找 1 3 5 7 9 1 ...
vb中一维二维数组应用.txt
vb中一维二维数组应用 - 一维数组 排序 一、 选择排序法: 数据已经放在一维
16-二维数组.doc
百度文库 专业资料 IT/计算机 计算机软件应用...16二维数组 暂无评价 7页 免费 16相似矩阵 22页 ...[3] 17 19 21 23 行名 每个元素a[i]由包含4...
C语言--矩阵应用_图文.ppt
C语言--矩阵应用 - 例1 求二维数组中最大元素及其下标(程序) main ( ) 定义二维数组a并初始化 { int a[3][4]={ { 1,2,3,4 } , { 9,8,7,6 ...
第6讲--矩阵应用_图文.ppt
第6讲--矩阵应用 - 求二维数组中最大元素及其下标(程序) 例1 求二维数组中最大元素及其下标(程序) main ( ) 定义二维数组a并初始化 定义二维数组 并初始化...
实验八 二维数组及字符数组应用.doc
方法和字符串处理函数; 4、掌握与二维数组应用有关的算法(如查找、矩阵转置等)...12 76 4 1 -19 28 55 -6 2 10 13 -2 3 -9 112 167 -2- 实验...
6wz第6章 特殊矩阵、广义表及其应用_图文.ppt
7 第6章 数组及其应用 矩阵与数组的关系 :对照上述数组的定义,我们不难看出,矩阵中所有 数据元素组成了一个二维数组,矩阵的每一行、每一列的数据元素分别组成...
第18次(二维数组)_图文.ppt
二维数组的简单应用 IT Education & Training Date:...19 IT Education & Training Date: 2012年10月18...设矩阵为: 3 8 9 10 a= 2 5 -3 5 7 0 ...
矩阵的操作.doc
矩阵的操作_计算机软件应用_IT/计算机_专业资料。...x(3)=[] % (不是二维数组) x = 删除第三个...0.0619 0.4176 -0.9065 -0.3041 0.8572 0....
特殊矩阵广义表及其应用_图文.ppt
6 第6章 数组及其应用 矩阵与数组的关系 :对照上述数组的定义,我们不难看出,矩阵中所有 数据元素组成了一个二维数组,矩阵的每一行、每一列的数据元素分别组成...
java将正矩阵的二维数组旋转45度.txt
java将正矩阵的二维数组旋转45度_计算机软件应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档 java将正矩阵的二维数组旋转45度_计算机软件应用_IT...
专题5 一维数组和二维数组的概念及基本应用_图文.ppt
专题5 一维数组和二维数组的概念及基本应用 - 专题五 数组与字符数组的基本概念
二维数组_图文.ppt
二维数组 - 二维数组 在实际应用中,有大量数据是以行列排列的方法存放的 。 例
更多相关标签: