版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程_计算机程序设计_实验名称_函数_第1 页 共页系_实 验 日 期 年3月日实验报告日期 年3月29日姓_报 告 退 发 (、重做 )同组教师审批签字一、实验目的用函数的方法。二、实验内容编写字符串反转函数mystrrev(),该函数的功能是将指定字符串中的字符顺序颠倒排列。然后再编写主函数验证之。1.源程序代码:#include#include mystrrev( string); cout请输入字符串(不多于个字符): cin.get(in,81);mystrrev(in);/对字符串“in” mystrrev( for /将字符串的前一半字符与后一半字符对应交换,因而只执行m/2st
2、ringm=0;cout反转结果为:n2.实验结果:由于函数中有“forinti=0;im/2;i+)”的语句,为避免该格和符号的字符串的检测:(1)奇数:(2)偶数:(3)含空格字符串:3.问题分析:(1)起初没有用“.get”,不够全面;(2)如果一直执行到i=m的话,就等于反转两次又回到了原来的字所以容易错误;(3)第一次编写时,没有写stringm=0这使得输出结果混乱。(二)第二题:编写一组求数组中最大元素和最小元素的函数。其函数原型为:int imax(int array,int count);int imin(int array,int count);1.源程序代码:#inclu
3、de imax(array,count); imin(array,count); cout请输入您要输入的整数个数,不超过个:;cout请输入每个整数:n; for(i=0;in;i+)cout最大值为:cout最小值为: imax(array, m=array0;for i=1;icount;i+)/循环比较m与arrayi的大小if(arraym=array m; imin(array, l=arrayfor if(arrayl=array 2.实验结果:问题分析:(1)起初误将:cout最大值为:cout最小值为:写成imin、imax,不能执行。(2)误将:if(arrayif(arr
4、ay写为:if(array arrayif(array array导致输出不正确。(3)虽然理论上应该加上判断输入的数字是否为整数的程序,但考虑到这个不是重点,只是徒劳的增加麻烦,因而就没有加。(三)第三题:编写函数isprime(int 用来判断变量a是否为素数,若是素数,函数返回1,否则返回。调用该函数找出任意给定的n个整数中的素数。1.源程序代码:#include isprime( cout请输入要进行判断的数字的个数:; cout请输入要判断的各个数:n; forcout其中的素数为:n;forif(isprime(ai)!=0)coutai1&m!=0;i-)return(m!=0?
5、1:0);2.实验结果:3.问题分析:“(isprime(ai)!=0)”if(isprime(ai)=1),没有认识到只有零和非零的区别,导致程序始终判断得到错误结果;(2)对“”:原来写作”,这样的时候会将1也作为的数字时,由于初始值m0,也不会被影响。(四)第四题:(数asin()进行比较测试检验)源程序代码:/用自定义函数求arcsin(x),并和系统库函数asin()进行比较测试检验#include#include n);/阶乘函数 x, n);/乘方函数 myasin( x, last); cout ;whilecout您输入的自变量不在范围内,请输入(-1,1)之间的x:;cou
6、t请输入在自定义函数下的精度u: ;cout cout库函数执行计算结果是: while S; x, while v;/返回v为x的n次方 myasin( x, while(in=-last); 2.实验结果:(1)特别检测了输入的自变量不符合范围要求的情况的鉴别:(2)正常运行:3.问题分析:(1)题目中用到了三个自定义函数,分别的作用是:乘方、阶乘和运算过程。由于不知道标准的乘方、阶乘库函数,所以就自定义了。(2)不足:精确性不太好,如输入 0.5 时差距较大,但一直找不到问题所在。(3)说明:在此题中将精度设置成了可调整的,而在下题中则设置麻烦且不一定精确,但也人性化。五、第五题:(必做
7、题)编写计算平方根函数,并和库函数进行比较10-7doublenmysqrt ( double x )#include#include mysqrt( cout请输入自变量x:;cout自定义函数计算结果是:cout0.000000001|f_-f0.000000001); /返回最终结果到mysqrt2.实验结果:(1)结果为整数的:(2)结果为非整数的:六、第六题:编写函数判定一个正整数是否是递增数,即该数各位数等都是递增数。例如:32768、43987、123498都不是递增数。显示输出0至9999999之间所有递增数。1源程序代码:#include n); n);/自定义函数,求n的位
8、数的函数,使用到自定义函数my中 cout0到之间的递增数有:n;forifcoutm; forgwszi=(n/k)%10; for(i=0,u=0;im-1;i+)if (u=m-1?1:0);/通过u的最终大小来判断是否递增,只有都是递增才能使得u=m-1 n)/判断位数,输出的ws(n)为位数 for 2实验结果:3.问题分析:(1)一,要设计一个识别是否为递增数的函数,这个函数作为分离出主函数的函数;二,在输出0 到999999之间递增数时,主函数中用到循环体,从0逐一循环到9999999每次都用函数进行判断是否递增;三,在分离出的函数中,返回值应该为是或否,1 或0,然后在主函数中
9、判断是否输出;或者不返回,直接输出也可以。程序。(2)对于:if 只有在该mu 每次都增加1,从而最终得到u=m-1;只要有一个地方不满足,就可以说明不是递增的。故可以用该条件判断是否递增。(七)第七题:(选作题)假设有如下一元多项式:aX+a X +.+aX+an1n10必须采用函数求得,具体函数原型如下:double dxs(double a,double x,int n)double dxsds(double a,double x,int n)形式参数a用来存放多项式n+1为多项式的变量,n为数多项式,再输入某个x的值,再输出多项式和导数的计算结果值)源程序代码:#include dxs( a, x, dxsds( a, x, x, cout请输入多项式最高次项的次数n:;cout请按照从低次到高次的顺序依次输入系数:n; a30;couti;whilecout0;i-)coutai*xi+;cout1;i-)coutai*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Blockchain技术对合同管理的变革
- 2026年活动视频剪辑服务合同
- 2026年网站维护合同协议2026
- 土地承包经营权合同2026年分配协议
- 2026年薪资变更合同
- 云服务器租用合同2026年技术支持
- 《信息技术基础(上册)》课件 模块三课题五
- 家用电器和用火安全课件
- 家校社家长培训课件
- 培训课件质量要求
- 2025年中考数学二轮专项复习【最值问题-瓜豆原理专题训练】-讲义
- T-ZJICA 1101-2024 算力中心智慧物业服务规范
- 签订劳动合同的注意事项
- 体育赛事组织团队职责分配
- 2024-2025学年上海市普陀区五年级(上)期末数学试卷(含答案)
- DG-TG08-12-2024 普通中小学建设标准
- 2025新高考数学核心母题400道(教师版)
- 《民用建筑集中空调自动控制系统技术标准》
- 民警进校园安全教育
- 《电力建设工程施工安全管理导则》(NB∕T 10096-2018)
- 【MOOC】金融风险管理-中央财经大学 中国大学慕课MOOC答案
评论
0/150
提交评论