- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
湘 潭 大 学
数据结构与算法实验报告
题目:
学院
专业班级
学号
学生姓名
指导教师
完成日期
目 录
TOC \o "1-3" \h \u 3261 1、实验要求 1
28891 1.1 实验目的 1
22877 1.2实验内容 1
754 2、逻辑设计 2
14293 2.1 总体结构 2
20496 2.2 功能模块分析 2
6230 2.2.1 求和模块 2
18852 2.2.2 乘积模块 3
3277 3、存储结构与算法设计 5
7622 3.1 存储结构 5
31855 3.2算法描述 5
2275 3.2.1 函数名定义 5
4778 3.2.2 函数名1 6
11935 3.2.2 函数名2 6
6865 4、算法应用实现 8
4665 4.1 主函数程序流程图 8
7624 4.2 运行结果 8
16584 总结 9
16298 数据结构与算法III指标点达成情况分析 10
12304 附录 12
PAGE 2
1、实验要求
1.1 实验目的
目的:掌握对称矩阵的压缩储存方法及相关算法设计。
1.2实验内容
(宋体, 字体小四号,行距20磅)
内容:已知A和B为两个n*n阶的对称矩阵,在输入时,对称矩阵只输入下三角形元素,存入一维数组,如图6.15所示(对称矩阵M存储在一维数组A中),设计一个程序exp6-5.cpp实现以下功能。
(1)求对称矩阵A和B的和。
(2)求对称矩阵A和B的乘积。
2、逻辑设计
2.1 总体结构
说明该算法包含那些功能模块,可以用文字也可以用图说明。
通过main()函数的数字进行构建a,b
通过main()函数的数字进行构建a,b
计算矩阵的和a+b
计算矩阵的和a+b
计算矩阵的乘积a*b
计算矩阵的乘积a*b
2.2 功能模块分析
(基于数据的逻辑结构,描述各个功能模块所需完成的具体工作)
2.2.1 求和模块
总体描述:通过main()函数来构建a,b矩阵,进而调用函数来求得a+b
流程图:
求得a,b
求得a,b
调用函数求得a+b
调用函数求得a+b
求和模块流程图
求和算法描述
static void madd(int a[], int b[], int c[][N])
{
int i, j;
for(i = 0; i < N; i++)
{
for(j = 0; j < N; j++)
{
c[i][j] = value(a, i, j) + value(b, i, j);
}
}
}
2.2.2 乘积模块
总体描述:通过main()函数来构建a,b矩阵,进而调用函数来求得a*b
流程图:
求得a,b
求得a,b
调用函数求得a*b
调用函数求得a*b
求和模块流程图
求和算法描述
static void mult(int a[], int b[], int c[][N])
{
int i, j, k, sum;
for(i = 0; i < N; i++)
{
for(j = 0; j < N; j++)
{
sum = 0;
for(k = 0; k < N; k++)
{
sum = sum + value(a, i, k) * value(b, k, j);
}
c[i][j] = sum;
}
}
}
3、存储结构与算法设计
3.1 存储结构
描述数据的存储的定义。
int a[M] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; //a表示压缩存储的对称矩阵
int b[M] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
int c1[N][N], c2[N][N];
3.2算法描述
3.2.1 函数名定义
返回压缩存储a中a[i][j]的值
算法思路
对称矩阵M的第i行和第j列的元
文档评论(0)