




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验八1实验目的(1)初步学会指针数组的定义与使用方法。(2)了解指向一维数组的指针变量的概念,能用指向一维数组的指针变量按行处理二维数组的问题。(3)理解返回指针值函数的概念、定义格式,学会用返回指针值函数处理字符串问题。(4)理解函数指针与函数指针变量的概念,学会用函数指针变量处理不同函数数学计算问题。2实验要求(1)编写实验程序(2)在VC+运行环境中,输入源程序;(3)编译运行源程序;(4)输入测试数据进行程序测试;(5)写出实验输入数据与运行结果。3实验内容(1)定义一个二维字符数组s380及指针数组p3,用cin.getline(si,80) 输入3个字符串到二维数组3行中,然后用指针数组p对字符串进行降序排列(要求用擂台法),最后用指针数组p输出排序后的结果,用字符数组s输出排序前的三个字符串。实验数据:Visual C+ ,Visual Basic ,Delphi(2)输入一个二维数组a33,设计一个函数,用指向一维数组的指针变量和二维数组的行数作为函数的参数,求出平均值、最大值和最小值,并输出。实验数据:10,25,90,80,70,35,65,40,55(3)设计程序,用函数指针变量完成两个操作数的加、减、乘、除、取余运算。实验数据:10 + 20 10 - 5 10 * 15 10 / 2 10 % 3 (4)设计一个用梯形法求定积分的通用函数,被积函数的指针、积分的上限、积分的下限和积分的区间等分数作为函数的参数。分别求出下列定积分的值。 4解答参考(1)#include # include void main(void) char s380; char *p3=s0,s1,s2; char *pc; int i,j,k; coutInput 3 String:endl; for (i=0;ipi; for (i=0;i2;i+) k=i;for (j=i+1;j3;j+) if (strcmp (pi,pj)0) k=j; if (k!=i) pc=pi;pi=pk;pk=pc; for ( i=0;i3;i+) coutpiendl;for ( i=0;i3;i+) coutsiendl;程序运行结果:Input 3 String:Visual BasicVisual C+DelphiVisual C+Visual BasicDelphiVisual BasicVisual C+Delphi(3)解:# include int add(int x,int y) return x+y;int sub(int x,int y) return x-y;int mul(int x,int y) return x*y;int div(int x,int y) return x/y;int res(int x,int y) return x%y;void main(void) int x,y; char operate; int (*f)(int,int); coutinput three 0 endendl; coutInput x operate y= xoperatey ; switch (operate) case +: f=add; break;case -: f=sub; break;case *: f=mul; break;case /: f=div; break;case %: f=res; break;default: return; coutxoperatey=(*f)(x,y)endl; 程序运行结果:input three 0 endInput x operate y=10 + 2010+20=3010 - 510-5=510 * 1510*15=15010 / 210/2=510 % 310%3=10 0 0(3)方法一:用指向一维数组的指针变量和二维数组的行数作为函数的参数#include float ave(float (*p)3,float *max,float *min) float sum=0; int i,j; for(i=0;i3;i+) for(j=0;j3;j+)sum+=(*p)j;if (*max(*p)j) *min=(*p)j;p+; return sum/9;void main(void) float a33,max,min,average; int i,j; coutInput Data:; for (i=0;i3;i+) for (j=0;jaij; max=min=a00; average=ave(a+0,&max,&min); coutave=averagen; coutmax=maxn; coutmin=minn;方法二:用数组名为函数参数,在函数内用指向一维数组的指针变量,求出平均值、最大值和最小值,并输出。解:#include void fun(float a33) float max,min,sum=0,(*p)3; int i,j; max=min=a00; for(i=0;i3;i+) p=a+i; for(j=0;j3;j+) sum+=(*p)j; if (max(*p)j) min=(*p)j; coutave=sum/9nmax=maxnmin=minendl;void main(void) float b33; int i,j; coutInput Data:; for (i=0;i3;i+) for (j=0;jbij; fun(b);程序运行结果:Input Data:10 25 90 80 70 35 65 40 55ave=52.2222max=90min=10(4)图 用梯形法求定积分面积 y y=f (x) yn-1 y2 yn y1 y0 s0 s1 s2 sn-1 x=a x=bx0 x1 x2 x3 xn-1 xn x0 a h b 分析:由高等数学可知,的定积分值等于由曲线y=f(x)、直线x=a 、x=b、 y=0所围曲边梯形的面积s,如下图所示。现将曲边梯形划分成n个小曲边梯形s0、s1、s2、sn-1。每个曲边梯形的高均为h=(ba)/n,用矩形近似曲边梯形后各曲边梯形的面积近似为:s0=y0*hs1=y1*hs2 =y2*h sn-1=yn-1*hs =s0+s1+s2+sn-1=(y0+y1+y2+yn-1)*h=(f (x0)+(f (x1)+f (x2)+f (xn-1)*hx0=a ,xn=b,xi=a+i*h用梯形法求定积分面积的公式为:其中:a、b分别为积分的下、上限,n为积分区间的分隔数,h=(ba)/n,h为积分步长;f(x)为被积函数。程序编写如下:# include # include float f1(float x) return (1+log(x)+x*x*x);float f2(float x) return (1/(1+x*x);float f3(float x) return (x+exp(x)/(1+sin(x)+x*x);float integral(float (*f)(float),float a,float b,int n) float y,h; int i; y=0; h=(b-a)/n; for (i=0;in;i+) y+=f(a+i*h); return (y
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 系统电规划方案(3篇)
- 儿童游乐设备管理制度
- 农户小额贷款管理制度
- 岗前检查项目管理制度
- 医院科室申报管理制度
- 养生疗养基地管理制度
- DB62T 4390-2021 西瓜品种 金瑞5号
- 教室公寓改造方案(3篇)
- 火灾应急预案演练方案桌面推演(3篇)
- 水灾监测方案模板(3篇)
- 详尽的施工方案
- DB3305T 323-2024政府储备粮绿色仓储技术规范
- 二级保密资格认定办法培训
- 门禁系统施工技术方案
- 小数计算六年级练习题
- 中国公民健康素养66条知识答题(试题及答案)
- 广东省佛山市南海区桂城街道2023-2024学年四年级下学期期末英语试卷
- 高危妊娠及五色管理课件
- 2024项目投资协议书
- 保洁队伍人员稳定性措施
- 自动控制原理 第3版 课件全套 陶洪峰 第1-8章 概论、控制系统数学模型-线性离散系统分析
评论
0/150
提交评论