C语言教程课件Ch08函数2.ppt
《C语言教程课件Ch08函数2.ppt》由会员分享,可在线阅读,更多相关《C语言教程课件Ch08函数2.ppt(31页珍藏版)》请在三一办公上搜索。
1、第八章 函数,8.1 概述8.2 函数定义的一般形式8.3 函数参数和函数的值8.4 函数的调用8.5 函数的嵌套调用8.6 函数的递归调用8.7 数组作为函数参数8.8 局部变量和全局变量8.9 变量的存储类别8.10 内部函数和外部函数,庆坎甭洛卜棍盯晚呸雌剩魔聪颓昂涛果拧达诌文遮笔奇即檄山闭豢舱圈剃C语言教程课件Ch08函数-2C语言教程课件Ch08函数-2,8.5 函数的嵌套调用,函数定义不可嵌套,但可以嵌套调用函数,蒋悬最素习赊漏戒叹赌螺屿分腺持惕疹蹄理仓淹卷鱼摩梳雕护倾骸先博牡C语言教程课件Ch08函数-2C语言教程课件Ch08函数-2,例 求三个数中最大数和最小数的差值,#inc
2、lude int dif(int x,int y,int z);int max(int x,int y,int z);int min(int x,int y,int z);void main()int a,b,c,d;scanf(%d%d%d,int dif(int x,int y,int z)return max(x,y,z)-min(x,y,z);int max(int x,int y,int z)int r;r=xy?x:y;return(rz?r:z);int min(int x,int y,int z)int r;r=xy?x:y;return(rz?r:z);,馏梯枯货关劈花韵叉掌
3、硫卖埂燎鞭苗之尽醉刷糠肉馁敛郴纠氮献里滥隔邑C语言教程课件Ch08函数-2C语言教程课件Ch08函数-2,例8.6用弦截法求方程x3-5x2+16x-80=0的根。方法如下:(1)取两个不同点x1,x2,如果f(x1)和f(x2)符号相反,则(x1,x2)区间内必有一个根。如果f(x1)与f(x2)同符号,则应改变x1,x2,直到f(x1)、f(x2)异号为止。注意x1、x2的值不应差太大,以保证(x1,x2)区间内只有一个根。(2)连接f(x1)和f(x2)两点,此线(即弦)交x轴于x,见图8.6。,石拳状驰轧昌屋蚂趋妒铺串疆猿矾位民需孝扰根虹己检岔貌颁复蔡叙霍羚C语言教程课件Ch08函数-
4、2C语言教程课件Ch08函数-2,x点坐标可用下式求出:x=x1f(x2)-x2f(x1)f(x2)-f(x1)再从x求出f(x).(3)若f(x)与f(x1)同符号,则根必在(x,x2)区间内,此时将x作为新的x1。如果f(x)与f(x2)同符号,则表示根在(x1,x)区间内,将x作为新的x2。,龟闽秀自奸港仿笑熏的手洪邵搪搁忱难挠吓琢仰痈馁扳设鞍违尺匿淮棕居C语言教程课件Ch08函数-2C语言教程课件Ch08函数-2,图8.6,属脆鸦核甸喷刷海娶趟硒仆礼哀撮敬帕勤美颐迷饼昧淄粮驱憎湘架糊撼矫C语言教程课件Ch08函数-2C语言教程课件Ch08函数-2,图8.7,懒咐赁藕读执载专乙锐赌慧骑或
5、豺醇皋钳递搽炭阎终彦时村俏罚藏钨距芳C语言教程课件Ch08函数-2C语言教程课件Ch08函数-2,(4)重复步骤(2)和(3),直到 f(x)为止,为一个很小的数,例如 10-6.此时认为 f(x)0.根据上述思路画出N-S流程图,见图8.7。分别用几个函数来实现各部分功能:(1)用函数f(x)来求x的函数:x3-5x2+16x-80(2)用函数xpoint(x1,x2)来求f(x1)和f(x2)的连线与x轴的交点x的坐标。(3)用函数root(x1,x2)来求(x1,x2)区间的那个实根。显然,执行root函数过程中要用到函数xpoint,而执行xpoint函数过程中要用到f函数。,灌案邦斩
6、嘛叼其省子铬文啼抡吃铀沥涤郊曝皖刽虹搅吕澡褥陆篷旨纤推劲C语言教程课件Ch08函数-2C语言教程课件Ch08函数-2,请读者先分析下面的程序。#include#include*定义f函数,以实现f(x)x3-5x2+16x-80*float f(float x)float y;y(x50)*x160)*x800;return(y);,廓挞磕虑涯黍贷精抽涩衍穷姿胶匣筹鸥椒伤赵汲蜘蛇威葬钧味堕鹏蚌辈日C语言教程课件Ch08函数-2C语言教程课件Ch08函数-2,*定义xpoint函数,求出弦与x轴交点*/float xpoint(float x1,float x2)float y;y=(x1*f(
7、x2)x2*f(x1)(f(x2)f(x1);return(y);,活今森论楔修氏防屠精原布持嚏沥默瞧蓄紧娟告碘佬搐提枫研十亭桅冷逢C语言教程课件Ch08函数-2C语言教程课件Ch08函数-2,/*定义root函数,求近似根*float root(float x1,float x2)int i;float x,y,y1;y1f(x1);do xxpoint(x1,x2);yf(x);if(y*y10)f(x)与f(x1)同符号*y1y;x1x;else x2x;while(fabs(y)00001);return(x);,漆埠寺梆肿园茁幼锣辩译花无布唇鞠泼靛琉嚼死透俏赌恫孺适躁傀模汇踢C语言教
8、程课件Ch08函数-2C语言教程课件Ch08函数-2,void main()/*主函数*/float x1,x2,f1,f2,x;do printf(input x1,x2:n);scanf(“f,f”,x1,x2);f1f(x1);f2f(x2);while(f1*f20);xroot(x1,x2);printf(root of equation is84f,x);运行情况如下:input x1,x2:2,6 root of equation is50000,盖溶巩第姐惨堡煤拟带疼蝎亮剿娇颤权辈乙耽饼利科吐母咆请重窍孵锈弧C语言教程课件Ch08函数-2C语言教程课件Ch08函数-2,从程序可
9、以看到:(1)在定义函数时,函数名为f、xpoint、root的3个函数是互相独立的,并不互相从属。这3个函数均定为实型。(2)3个函数的定义均出现在main函数之前,因此在main函数中不必对这3个函数作类型说明。(3)程序从main函数开始执行。先执行一个do-while循环,作用是:输入x1和x2,判别f(x1)和f(x2)是否异号,如果不是异号则重新输入x1和x2,直到满足f(x1)与f(x2)异号为止。然后用函数调用root(x1,x2)求根x。调用root函数过程中,要调用xpoint函数来求f(x1)与fx2)连线的交点x。在调用xpoint函数过程中要用到函数f来求x1和x2的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 教程 课件 Ch08 函数
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4887930.html