稀疏矩阵运算器7.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
稀疏矩阵运算器7

稀疏矩阵运算器 需求分析 1.按照压缩存储的概念,只存储稀疏矩阵的非零元,以两个三元组{i,j,e}来表示矩阵的非零元的行,列和数值,就确定了一个非零元.由此,稀疏矩阵可由表示非零元的三元数组及行列数确定. 2.用户输入数据作为三元组的行,列和非零元的个数,用逗号隔开.并输入非零元的行,列和数值. 3.本程序只对两个矩阵进行四则运算,所的结果矩阵应该另生成,用二维数组存放,并放入新的矩阵中,只要对矩阵求解就能求出答案. 4.测试数据(附后). 5.程序执行命令为: 1)加法命令; 2)减法命令; 3)乘法命令; 概要设计 1.设定稀疏矩阵的抽象数据类型定义: ADT SparseMatrix{ 数据对象:D={aij|i=1,2,……,n; aij属于Elemset,m和n分别为矩阵的行和列数} 数据关系:R={Row,Col} Row={ai,j , ai,j+1| 1=i=m,1=j=n-1} Col={ai,j , ai+1,j| 1=i=m-1,1=j=n} 基本操作: CreateMatrix(M); 操作结果:创建稀疏矩阵M. PrintSMatrix(M); 初始条件:稀疏矩阵M存在. 操作结果:输出稀疏矩阵M. AddSMartrix(M,N,Q); 初始条件:稀疏矩阵M存在. 操作结果:求稀疏矩阵的和Q=M+N; SubtMatrix(M,N,Q); 初始条件:稀疏矩阵M存在. 操作结果:求稀疏矩阵的差Q=M-N; MultSMatrix(M,N,Q); 初始条件:稀疏矩阵M存在 操作结果:求稀疏矩阵M的乘积Q=M*N. }ADT SparseMatrix 2.本程序包括两个模块. 1)主程序模块: Void main() { 初始化; 接受命令; While(命令!=“退出”) { 处理命令; 接受命令;} } 2).稀疏矩阵模块--实现稀疏矩阵抽象数据类型 各模块之间的调用关系如下: 主程序模块->稀疏矩阵模块 3).求解矩阵的加减乘的运算: (1)加法: 若行和列相等,则数值相加,存入数组中; 否则直接存入数组中; 最后将数组中的元素放入新生成的矩阵中. (2)减法: 使第二个矩阵的每个数值都乘以-1,存入原来的数组中; 接着调用加法运算函数进行运算; (3)乘法: 若m.data中列等于n.data中行的各对应元素想乘,存入数组中,并以m.data的行和n.data的列作为数组的下标,相加所有相同的数组,否则直接存入数组,最后存入新的矩阵中. 1.稀疏矩阵类型 Typedef struct { int i,j; int e; }triple; Typedef struct { truple data[MAXSIZE+1]; int mu,nu,tu; }tsmatrix; Void CreateMatrix(tsmatrix M,int x,int y) //按照用户输入行,列,非零元的个数,并依次输入非零元的行,列,值,并在坐标为(x,y)的位置进行打印. Void PrintSMaritx(tsmatrix m,int x,inty) //在坐标为(x,y)的位置打印. Int addtsmatrix(tsmatrix m,tsmatrix,tsmatrix q) //使矩阵M,N进行加法操作,并把值赋于Q矩阵 详细设计(3) Int subtsmatrix(tsmatrix m,tsmatrix,tsmatrix q) //使矩阵M,N进行减法操作,并把值赋于Q矩阵 Int multsmatrix(tsmatrix m,tsmatrix,tsmatrix q) //使矩阵M,N进行乘法操作,并把值赋于Q矩阵 2.主函数和其他函数的伪码算法 Void main() { initscreen();//初始化 readcommand(cmd);//读入一个命令符 while(cmd!=‘q’cmd!=‘Q’) { interpret(cmd);//解释执行操作命令符 readcommand(cmd);//读入一个命令符 } } initscreet() { clrscr(); int i; gotoxy(1,1); printf(**************************************************************************); gotoxy(1,2); printf(* ADD--a(A) SUB--s(S) MUL--m(M) Quit--q(Q) *); gotoxy(1,3); printf(***

文档评论(0)

jixujianchi + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档