欢迎来到天天文库
浏览记录
ID:6578601
大小:1.17 MB
页数:30页
时间:2018-01-18
《c++上机题目复习及答案2》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第十周上机题目题目:1.建立一个矩阵类Array,存储一个n×n矩阵并能完成矩阵转置运算。要求如下:(1)私有成员数据int*x:指向存储一个n×n矩阵值的内存区域(二维数组作为一维数组存储)intn:存储矩阵行数(2)公有成员函数构造函数:用参数指定的值或缺省值3初始化n,并用n的值为矩阵动态申请内存空间;析构函数:释放对象存储矩阵时占用的内存空间;viodinput(int*a):将一个矩阵赋值给对象中的数组。voidprint():按行输出矩阵的值。voidchange():转置矩阵。编写一个程序测试该类。定义
2、对象A,将一个矩阵存入A中,并输出矩阵的值,转置对象A中的矩阵并输出,使用以下测试数据:A=A转置后的矩阵=#include#defineN3classArray{int*x;//指向存储一个n×n矩阵值的内存区域(二维数组作为一维数组存储)intn;//存储矩阵行数public:Array(ints=3){n=s;x=newint[N*N];}voidinput(int*a);//将一个矩阵赋值给对象中的数组。voidprint();//按行输出矩阵的值。voidchange();//转置矩
3、阵。~Array(){if(x)delete[]x;}};voidmain(){inta[N][3];inti,j;cout<<"请输入"<>a[i][j];}Arrayd(N);d.input(a[0]);cout<<"原始数组为:";d.print();d.change();cout<<"转置后的数组为:";d.print();}voidArray::input(int*a){fo
4、r(inti=0;i5、i表示输入信号,wi表示输入信号的加权系数,y表示神经元的输出,它们的之间的关系为:30这里,∑表示各项的和,exp(z)为求z的自然指数值ex的函数,包含在头文件math.h中,其函数原型为doubleexp(doublez)。试定义一个NN类实现上述模型。具体要求如下:1)私有成员lfloatx[5],dt:数组x和数组w分别存放输入信号xi及其加权系数wi;dt存放非零参数σ。ldoubley:神经元的突出。2)公有成员:lNN(floatt[],floatd)用数组t初始化加权系统wi,用d初始化dt。lvo6、idfun(floatt[]):用数组t初始化xi,并根据上述公式计算y的值。lvoidprint():输出输入信号和输出信号的值在主函数中,用输入信号{1.2,3.5,2.3,3.2,2.8}以及加权系数{o.5,0.8,1.2,1.8,1.1}对该类进行测试。#include#includeclassNN{floatx[5],w[5],dt;doubley;public:NN(floatt[],floatd);//用数组t初始化加权系统wi,用d初始化dt。voidfun(7、floatt[]);//用数组t初始化xi,并根据上述公式计算y的值。voidprint();//输出输入信号和输出信号的值};voidmain(){floata[5]={1.2,3.5,2.3,3.2,2.8};floatb[5]={0.5,0.8,1.2,1.8,1.1};NNt(b,0.2);t.fun(a);t.print();}NN::NN(floatt[],floatd){for(inti=0;i<5;i++)w[i]=t[i];dt=d;}voidNN::fun(floatt[]){for(inti=08、;i<5;i++)x[i]=t[i];doublen=0.0;for(i=0;i<5;i++)n+=(x[i]-w[i])*(x[i]-w[i]);30y=exp(-n/(2*dt*dt));}voidNN::print(){cout<<"x[i]=";for(inti=0;i<5;i++)cout<
5、i表示输入信号,wi表示输入信号的加权系数,y表示神经元的输出,它们的之间的关系为:30这里,∑表示各项的和,exp(z)为求z的自然指数值ex的函数,包含在头文件math.h中,其函数原型为doubleexp(doublez)。试定义一个NN类实现上述模型。具体要求如下:1)私有成员lfloatx[5],dt:数组x和数组w分别存放输入信号xi及其加权系数wi;dt存放非零参数σ。ldoubley:神经元的突出。2)公有成员:lNN(floatt[],floatd)用数组t初始化加权系统wi,用d初始化dt。lvo
6、idfun(floatt[]):用数组t初始化xi,并根据上述公式计算y的值。lvoidprint():输出输入信号和输出信号的值在主函数中,用输入信号{1.2,3.5,2.3,3.2,2.8}以及加权系数{o.5,0.8,1.2,1.8,1.1}对该类进行测试。#include#includeclassNN{floatx[5],w[5],dt;doubley;public:NN(floatt[],floatd);//用数组t初始化加权系统wi,用d初始化dt。voidfun(
7、floatt[]);//用数组t初始化xi,并根据上述公式计算y的值。voidprint();//输出输入信号和输出信号的值};voidmain(){floata[5]={1.2,3.5,2.3,3.2,2.8};floatb[5]={0.5,0.8,1.2,1.8,1.1};NNt(b,0.2);t.fun(a);t.print();}NN::NN(floatt[],floatd){for(inti=0;i<5;i++)w[i]=t[i];dt=d;}voidNN::fun(floatt[]){for(inti=0
8、;i<5;i++)x[i]=t[i];doublen=0.0;for(i=0;i<5;i++)n+=(x[i]-w[i])*(x[i]-w[i]);30y=exp(-n/(2*dt*dt));}voidNN::print(){cout<<"x[i]=";for(inti=0;i<5;i++)cout<
此文档下载收益归作者所有