欢迎来到天天文库
浏览记录
ID:6652852
大小:32.41 KB
页数:16页
时间:2018-01-21
《计算机高级语言程序课程设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、计算机高级语言程序(C++)课程设计报告学院:信工学院____专业:测绘工程学号:姓名:指导老师:2015年12月20日实习题目一【需求规格说明】编写一个函数实现M行K列矩阵与K行N列矩阵的乘法。设A为M行K列矩阵,B为K行N列矩阵,则C=A×B,乘积C为M行N列矩阵。矩阵乘法的规则是:设A[m,k],B[k,n],则C[m,n]=A[m,k]×B[k,n]。其中(见下述公式):例如:【算法设计】(1)设计思想:该矩阵的计算是通过a数组每一行的每一个数字分别与b数组每一列的每个数字对应相乘,所得结果累加得到c数组的目的结果。通过构建数组对所得结果进行表示和输出。(2)设计表示:调用函数fun被
2、主函数调用。【调试报告】需要输入的数组长度不知,若使用平时的数组定义,那么会导致内存的浪费或者元素的表示不完整,这时就需要采取动态内存分配的方法,需要多少,分配多少。另外,对于多维数组,采用利用指针指向指针型数组的方法,而不是简单地定义指针指向整型数组,否则导致结果的输出有问题。【附录】#include"stdafx.h"#includeusingnamespacestd;typedefint*INTPTR;//类型定义一个int型指针voidfun(intm,intn,intk){cout<<"请输入数组a[M][K]"<3、[m];//定义一个指向该int指针型数组动态内存空间的指针for(inte=0;e>pp[i][j];}cout<>pp2[i1][j1];4、}cout<>M>>N>>5、K;fun(M,N,K);return0;输入实习题目二【需求规格说明】请编写名称为fun的函数,并在主函数中调用该函数,完成以下功能:(1)根据以下公式计算S,计算结果作为函数值返回,n通过形参传入;S=1+1/(12+22)+1/(12+22+32)+……+1/(12+22+32+…+n2)(2)编写主函数代码,调用该函数,允许用户手动输入n。【算法设计】(1)设计思想:通过递归对(1^2+2^2+.....)进行计算,又对s同样以递归方式计算,最后通过主函数输出,即利用2次函数的调用。(2)设计表示:主函数(用于输出s结果)Fun函数(用于表示s结果)Diao函数(用于表示分母)【调试报6、告】由于分母表示的结果为整型,因此s结果累加的每一项结果都是0(整数相除结果还是整数),经过更正后,把1变为1.0,解决了这个问题。【附录】#include"stdafx.h"#includeusingnamespacestd;unsigneddiao(unsignedx)//对每项的分母构造函数进行递归{unsignedy;if(x==0){y=0;}else{y=diao(x-1)+x*x;}returny;}floatfun(unsignedm)//对s进行递归{floats;if(m==0){s=0;}else{s=fun(m-1)+1.0/diao(m);//避免7、整数除以整数的结果为整数产生的错误}returns;}intmain()//对s的结果进行输出{unsignedn;cout<<"输入n"<>n;cout<
3、[m];//定义一个指向该int指针型数组动态内存空间的指针for(inte=0;e>pp[i][j];}cout<>pp2[i1][j1];
4、}cout<>M>>N>>
5、K;fun(M,N,K);return0;输入实习题目二【需求规格说明】请编写名称为fun的函数,并在主函数中调用该函数,完成以下功能:(1)根据以下公式计算S,计算结果作为函数值返回,n通过形参传入;S=1+1/(12+22)+1/(12+22+32)+……+1/(12+22+32+…+n2)(2)编写主函数代码,调用该函数,允许用户手动输入n。【算法设计】(1)设计思想:通过递归对(1^2+2^2+.....)进行计算,又对s同样以递归方式计算,最后通过主函数输出,即利用2次函数的调用。(2)设计表示:主函数(用于输出s结果)Fun函数(用于表示s结果)Diao函数(用于表示分母)【调试报
6、告】由于分母表示的结果为整型,因此s结果累加的每一项结果都是0(整数相除结果还是整数),经过更正后,把1变为1.0,解决了这个问题。【附录】#include"stdafx.h"#includeusingnamespacestd;unsigneddiao(unsignedx)//对每项的分母构造函数进行递归{unsignedy;if(x==0){y=0;}else{y=diao(x-1)+x*x;}returny;}floatfun(unsignedm)//对s进行递归{floats;if(m==0){s=0;}else{s=fun(m-1)+1.0/diao(m);//避免
7、整数除以整数的结果为整数产生的错误}returns;}intmain()//对s的结果进行输出{unsignedn;cout<<"输入n"<>n;cout<
此文档下载收益归作者所有