矩阵类实现实验任务ppt课件_第1页
矩阵类实现实验任务ppt课件_第2页
矩阵类实现实验任务ppt课件_第3页
矩阵类实现实验任务ppt课件_第4页
矩阵类实现实验任务ppt课件_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、创建三角矩阵类创建三角矩阵类C+言语程序设计 实验六C+语言程序设计鲁东大学问题描画问题描画l行数与列数相等的方阵,开发类TriMat,它定义的是对角线以下的元素值全为0的上三角矩阵。C+语言程序设计鲁东大学上三角矩阵的性质上三角矩阵的性质1.假设矩阵中共有n2个元素,那么其中为零的元素个数为(n*n-n)/22.矩阵加法就是相应元素值相加3.矩阵减法就是相应元素值相减4.矩阵乘法,假设乘积矩阵C是三角矩阵A和B相乘的结果,C(i,j)的值根据A的第i行和B的第j列计算出来的5.三角矩阵的行列式的值就是对角线上元素的乘积C+语言程序设计鲁东大学三角矩阵的存储三角矩阵的存储l如何选择三角矩阵的存

2、储构造是至关如何选择三角矩阵的存储构造是至关重要的问题重要的问题l可以思索为零的元素不占用存储空间可以思索为零的元素不占用存储空间l用一维数组用一维数组M只存放上三角元素只存放上三角元素C+语言程序设计鲁东大学类的描画类的描画class TriMat private: /M中各行的起始下标 int rowTableROWLIMIT;/行列数 int n;/存放上三角中的元素 double MELEMENTLIMIT;C+语言程序设计鲁东大学类的描画类的描画public: /构造函数,无缺省值 TriMat(int matsize); /访问矩阵元素方法 void PutElement (dou

3、ble item, int i, int j); double GetElement(int i,int j) const; /矩阵的算术运算 TriMat AddMat(const TriMat& A) const; double DetMat(void) const; C+语言程序设计鲁东大学类的描画类的描画/矩阵I/O操作 void ReadMat(void); void WriteMat(void) const; /取矩阵维数 int GetDimension(void) const;C+语言程序设计鲁东大学类运用的举例类运用的举例#include “TriMat.hTriMat A(

4、10),B(10),C(10);A.ReadMat();B.ReadMat();C=A.AddMat(B);C.WriteMat();C+语言程序设计鲁东大学三角矩阵的存储三角矩阵的存储l规范数组定义需求规范数组定义需求n2个内存位置,但个内存位置,但为了节省存储空间,我们将三角矩阵为了节省存储空间,我们将三角矩阵中的各项存储到一维数组中的各项存储到一维数组M中,主对中,主对角线以下的各项不再被存储角线以下的各项不再被存储C+语言程序设计鲁东大学三角矩阵的存储三角矩阵的存储行行存储数据个数存储数据个数存储的数据存储的数据0n(A00A0,n-1)1n-1(A11A1,n-1)2n-2(A22A

5、2,n-1)n-22(An-2,n-2An-2,n-1)n-11(An-1,n-1)C+语言程序设计鲁东大学三角矩阵的存储三角矩阵的存储l存储算法需求一个存取函数,它必需存储算法需求一个存取函数,它必需可以确定存储了元素项可以确定存储了元素项Ai,j,存取函,存取函数利用不断到数利用不断到i行的各行所存储的元素行的各行所存储的元素个数的信息,对每一行个数的信息,对每一行i都可以计算这都可以计算这一数据,将其存放到一个数组一数据,将其存放到一个数组rowTable中,以供存取函数运用。中,以供存取函数运用。C+语言程序设计鲁东大学三角矩阵的存储三角矩阵的存储行行rowTable说明说明0rowT

6、able0=0第第0行前的行前的0项项1rowTable1=n第第1行前的行前的n项项2rowTable2=n+(n-1)第第2行前的行前的n+(n-1)项项3rowTable3=n+(n-1)+(n-2)第第3行前的所有项行前的所有项.n-1rowTalben-1=n+(n-1)+2C+语言程序设计鲁东大学三角矩阵的存储三角矩阵的存储l存取存取Ai,j的算法如下:的算法如下:l1.假设假设j=i,那么取,那么取rowTablei的值,的值,即数组即数组M中存储的不断到第中存储的不断到第i行的一切行的一切元素个数,在第元素个数,在第i行,前行,前i项是项是0,不在,不在M中存放,元素项中存放,

7、元素项Ai,j的位置是的位置是MrowTalbei+(j-i)。C+语言程序设计鲁东大学类的声明类的声明#include #include #include / 上三角矩阵存储元素个数及行数的最大值const int ELEMENTLIMIT = 325;const int ROWLIMIT = 25;C+语言程序设计鲁东大学类的声明类的声明class TriMat private: /私有数据成员 int rowTableROWLIMIT;/ M中各行的起始下标int n;/ 行/列数double MELEMENTLIMIT;/存放上三角中的元素C+语言程序设计鲁东大学类的声明类的声明pub

8、lic: / constructor. no default parameters / 构造函数,无缺省参数 TriMat(int matsize); / matrix element access methods /访问矩阵元素的方法 void PutElement (double item, int i, int j); double GetElement(int i,int j) const; / matrix arithmetic operations /矩阵的算数运算 TriMat AddMat(const TriMat& A) const; double DetMat(void) const;C+语言程序设计鲁东大学类的声明类的声明 / matrix I/O operations /矩阵的I/O操作 void ReadMat(void);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论