网站大量收购闲置独家精品文档,联系QQ:2885784924

矩阵类实现 实验任务.pptVIP

  1. 1、本文档共18页,可阅读全部内容。
  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文档。上传文档
查看更多
矩阵类实现 实验任务

创建三角矩阵类 问题描述 行数与列数相等的方阵,开发类TriMat,它定义的是对角线以下的元素值全为0的上三角矩阵。 上三角矩阵的性质 三角矩阵的存储 如何选择三角矩阵的存储结构是至关重要的问题 可以考虑为零的元素不占用存储空间 用一维数组M只存放上三角元素 类的描述 类的描述 类的描述 类使用的举例 #include “TriMat.h” TriMat A(10),B(10),C(10); A.ReadMat(); B.ReadMat(); C=A.AddMat(B); C.WriteMat(); 三角矩阵的存储 标准数组定义需要n2个内存位置,但为了节省存储空间,我们将三角矩阵中的各项存储到一维数组M中,主对角线以下的各项不再被存储 三角矩阵的存储 三角矩阵的存储 存储算法需要一个存取函数,它必须可以确定存储了元素项Ai,j,存取函数利用一直到i行的各行所存储的元素个数的信息,对每一行i都可以计算这一数据,将其存放到一个数组(rowTable)中,以供存取函数使用。 三角矩阵的存储 三角矩阵的存储 存取Ai,j的算法如下: 1.若ji,则Ai,j=0,不存储该项 2.若j=i,则取rowTable[i]的值,即数组M中存储的一直到第i行的所有元素个数,在第i行,前i项是0,不在M中存放,元素项Ai,j的位置是M[rowTalbe[i]+(j-i)]。 类的声明 类的声明 类的声明 类的声明 实验任务 实现这个矩阵类并测试。 * C++语言程序设计 鲁东大学 * C++语言程序设计 实验六 1.假设矩阵中共有n2个元素,则其中为零的元素个数为(n*n-n)/2 2.矩阵加法就是相应元素值相加 3.矩阵减法就是相应元素值相减 4.矩阵乘法,假设乘积矩阵C是三角矩阵A和B相乘的结果,C(i,j)的值根据A的第i行和B的第j列计算出来的 5.三角矩阵的行列式的值就是对角线上元素的乘积 class TriMat { private: //M中各行的起始下标 int rowTable[ROWLIMIT]; //行列数 int n; //存放上三角中的元素 double M[ELEMENTLIMIT]; public: //构造函数,无缺省值 TriMat(int matsize); //访问矩阵元素方法 void PutElement (double item, int i, int j); double GetElement(int i,int j) const; //矩阵的算术运算 TriMat AddMat(const TriMat A) const; double DetMat(void) const; //矩阵I/O操作 void ReadMat(void); void WriteMat(void) const; //取矩阵维数 int GetDimension(void) const; }; (An-1,n-1) 1 n-1 (An-2,n-2… An-2,n-1) 2 n-2 …… …… …… (A22…A2,n-1) n-2 2 (A11…A1,n-1) n-1 1 (A00…A0,n-1) n 0 存储的数据 存储数据个数 行 rowTalbe[n-1]= n+(n-1)+……+2 n-1 ……. …… … 第3行前的所有项 rowTable[3]= n+(n-1)+(n-2) 3 第2行前的n+(n-1)项 rowTable[2]= n+(n-1) 2 第1行前的n项 rowTable[1]=n 1 第0行前的0项 rowTable[0]=0 0 说明 rowTable 行 #include iostream.h #include iomanip.h #include stdlib.h // 上三角矩阵存储元素个数及行数的最大值 const int ELEMENTLIMIT = 325; const int ROWLIMIT = 25; class TriMat { private: //私有数据成员 int rowTable[ROWLIMIT]; // M中各行的起始下标 int n; // 行/列数 double M[ELEMENTLIMIT];//存放上三角中的元素 public: // constructor. no default parame

文档评论(0)

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

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

版权声明书
用户编号:5132241303000003

1亿VIP精品文档

相关文档