矩阵转置实验报告文档格式.docx
- 文档编号:17820444
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:11
- 大小:17.65KB
矩阵转置实验报告文档格式.docx
《矩阵转置实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《矩阵转置实验报告文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
3)
4)
5)
6)获取用户输入的矩阵1的行数和列数,动态生成一个一维数组利用随机数生成数组成员,并利用两个循环输出数组,使其符合矩阵的格式矩阵2同矩阵1的处理方法通过两个矩阵的行数和列数比较来判断能否进行加减乘等运算,如不能,输出相关信息如能够进行计算,则利用数组进行相应运算,并按照正确格式输出通过改变一维数组中元素的顺序来实现转置并输出
算法流程图
四.基本界面。
五.关键代码。
关键类的声明
classCMatrixclass
{
public:
CMatrixclass
intm_Row=0;
//行
intm_Col=0;
//列
m_pElements=NULL;
//一维数组
};
virtual~CMatrixclass
deletem_pElements;
}
intm_Row;
intm_Col;
int*m_pElements;
关键函数代码
voidCMyView:
:
OnCHECKadd
m_;
OnCHECKsubtrict
OnCHECKcombine
OnCHECKnums
OnBUTTONcompute
UpdateData;
//TODO:
Addyourcontrolnotificationhandlercodehereif==1)
if
m_result=“行数列数不等无法相加!
”;
else
matrixc;
c=*op1+*op2;
m_result=“matrix1+matrix2”;
m_result+=“\r\n”;
m_result+=_show;
elseif==1)
if
m_result=“行数列数不等无法相减!
c=*op1-*op2;
m_result=“matrix1-matrix2”;
m_result=“以上无法相乘!
c=*;
m_result=“matrix1*matrix2”;
}
篇二:
稀疏矩阵三元组实现矩阵转置算法实验报告
实验三稀疏矩阵的三元组表示实现矩阵转置算法
学院专业班
学号姓名一.实习目的
1.掌握稀疏矩阵的三元组顺序表存储表示;
2.掌握稀疏矩阵三元组表示的传统转置算法的实现;
3.掌握稀疏矩阵三元组表示的快速转置算法的实现;
二.实习内容
1.稀疏矩阵的按三元组形式输入,即按行序输入非零元的行号、列号、值,实现传统转置
算法,输出按通常的阵列形式输出。
2.稀疏矩阵的按三元组形式输入,即按行序输入非零元的行号、列号、值,实现快速转置
三.实验步骤
1.三元组的定义
#defineMAX_SIZE100//非零元个数的最大值
structTriple
inti,j;
//行下标,列下标
ElemTypee;
//非零元素值
structTSMatrix
structTripledata[MAX_SIZE+1];
//非零元三元组表,data[0]未用
intmu,nu,tu;
//矩阵的行数、列数和非零元个数
2.创建稀疏矩阵M(按三元组形式输入,即按行序输入非零元的行号、列号、值)
3.编写三元组传统转置函数。
4.编写三元组快速转置函数。
4..主函数
程序代码
#include““
typedefintElemType;
//行下标,列下标
//非零元素值
structTSMatrix
//非零元三元组表,data[0]未用intmu,nu,tu;
intCreateSMatrix
{//创建稀疏矩阵M
inti,m,n;
intk;
printf;
scanf;
return-1;
[0].i=0;
//为以下比较顺序做准备
for
do
printf,列,元素值:
”,i,,);
//输入非零元的行号、列号、元素值k=0;
if//行或列超出范围
k=1;
if//行或列的顺序有错
}while;
[i].i=m;
//将m,n,e填入M
[i].j=n;
[i].e=e;
return1;
voidPrintSMatrix
{//按矩阵形式输出M
inti,j,k=1;
Triple*p=;
p++;
//p指向第1个非零元素
for
//p指向非零元,且p所指元素为当前处理元素
//输出p所指元素的值
//p指向下一个元素
k++;
//计数器+1
else//p所指元素不是当前处理元素
//输出0
voidTransposeSMatrix
{//求稀疏矩阵M的转置矩阵T。
intp,q,col;
=;
q=1;
[q].i=[p].j;
[q].j=[p].i;
[q].e=[p].e;
++q;
voidFastTransposeSMatrix
{//快速求稀疏矩阵M的转置矩阵T。
算法改
intp,q,t,k,col,*num,*cpot;
num=malloc*sizeof);
//存M每列非零元素个数cpot=malloc*sizeof);
//存T每行的下1个非零元素的存储位置
//给T的行、列数与非零元素个数赋值
if//是非零矩阵
num[col]=0;
//计数器初值设为0
for//求M中每一列含非零元素个数
{k=[t].j;
++num[col];
}
cpot[1]=1;
//T的第1行的第1个非零元在中的序号为1
cpot[col]=cpot[col-1]+num[col-1];
//求T的第col行的第1个非零元在中的序号
for//从M的第1个元素开始
col=[p].j;
//求得在M中的列数
q=cpot[[p].j];
//q指示M当前的元素在T中的序号[q].i=[p].j;
[q].e=[p].e;
++cpot[col];
//T第col行的下1个非零元在中的序号
free;
voidmain
TSMatrixA,T;
CreateSMatrix;
PrintSMatrix;
TransposeSMatrix;
printf:
\n”);
PrintSMatrix;
FastTransposeSMatrix;
(2)调试程序
运行程序(截图)
四.实习小结
自己写
篇三:
矩阵转置实验
实习一熟悉使用计算机系统
一、实习内容
选择一个计算机系统,熟悉该系统的操作命令,且掌握该计算机系统的使用方法。
二、实习目的
配合操作系统课程的学习,模拟实现操作系统的功能,有助于对操作系统的理解。
操作系统功能的模拟实现可以在计算机系统的终端上进行,也可以在一台微型计算机上进行。
根据您的学习条件,选择一个计算机系统,熟悉对该系统的使用,那么您可以顺利地完成本课程的实习。
为了尽快地熟悉计算机系统,可编辑一个源程序,且对编辑好的源程序编译、运行、显示/打印运行结果等。
三、实习题目
编制一个程序,求10?
10矩阵A的转置矩阵AT,即
要求确定两组初值,运行设计的程序,显示或打印每一组的A和AT。
四、实习报告
实习题目。
程序中使用的数据结构及符号说明。
流程图。
打印一份源程序并附上注释。
打印两组A和AT的值。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 矩阵 实验 报告