矩阵类实现试验任务.ppt

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 创建三角矩阵类 C++ 语言程序设计 实验六 C++ 语言程序设计 鲁东大学 2 问题描述 ? 行数与列数相等的方阵,开发类 TriMat , 它定义的是对角线以下的元素值全为 0 的上 三角矩阵。 C++ 语言程序设计 鲁东大学 3 上三角矩阵的性质 1. 假设矩阵中共有 n 2 个元素,则其中为零的元素个数为 (n*n-n)/2 2. 矩阵加法就是相应元素值相加 3. 矩阵减法就是相应元素值相减 4. 矩阵乘法,假设乘积矩阵 C 是三角矩阵 A 和 B 相乘的结 果, C(i,j) 的值根据 A 的第 i 行和 B 的第 j 列计算出来的 5. 三角矩阵的行列式的值就是对角线上元素的乘积 C++ 语言程序设计 鲁东大学 4 三角矩阵的存储 ? 如何选择三角矩阵的存储结构是至关 重要的问题 ? 可以考虑为零的元素不占用存储空间 ? 用一维数组 M 只存放上三角元素 C++ 语言程序设计 鲁东大学 5 类的描述 class TriMat { private: //M 中各行的起始下标 int rowTable[ROWLIMIT]; // 行列数 int n; // 存放上三角中的元素 double M[ELEMENTLIMIT]; C++ 语言程序设计 鲁东大学 6 类的描述 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; C++ 语言程序设计 鲁东大学 7 类的描述 // 矩阵 I/O 操作 void ReadMat(void); void WriteMat(void) const; // 取矩阵维数 int GetDimension(void) const; }; C++ 语言程序设计 鲁东大学 8 类使用的举例 #include “TriMat.h” TriMat A(10),B(10),C(10); A.ReadMat(); B.ReadMat(); C=A.AddMat(B); C.WriteMat(); C++ 语言程序设计 鲁东大学 9 三角矩阵的存储 ? 标准数组定义需要 n 2 个内存位置,但 为了节省存储空间,我们将三角矩阵 中的各项存储到一维数组 M 中,主对 角线以下的各项不再被存储 C++ 语言程序设计 鲁东大学 10 三角矩阵的存储 行 存储数据个数 存储的数据 0 n (A 00 …A 0,n-1 ) 1 n-1 (A 11 …A 1,n-1 ) 2 n-2 (A 22 …A 2,n-1 ) …… …… …… n-2 2 (A n-2,n-2 … A n-2,n-1 ) n-1 1 (A n-1,n-1 ) C++ 语言程序设计 鲁东大学 11 三角矩阵的存储 ? 存储算法需要一个存取函数,它必须 可以确定存储了元素项 A i,j ,存取函数 利用一直到 i 行的各行所存储的元素个 数的信息,对每一行 i 都可以计算这一 数据,将其存放到一个数组 ( rowTable )中,以供存取函数使用。 C++ 语言程序设计 鲁东大学 12 三角矩阵的存储 行 rowTable 说明 0 rowTable[0]=0 第 0 行前的 0 项 1 rowTable[1]=n 第 1 行前的 n 项 2 rowTable[2]= n+(n-1) 第 2 行前的 n+(n-1) 项 3 rowTable[3]= n+(n-1)+(n-2) 第 3 行前的所有项 … …… ……. n-1 rowTalbe[n-1]=

文档评论(0)

jinzhuang + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档