ImageVerifierCode 换一换
格式:PPTX , 页数:31 ,大小:480.20KB ,
资源ID:4146659      下载积分:4 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4146659.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     索取发票    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(大连理工大学c语言函数省公共课一等奖全国赛课获奖课件.pptx)为本站上传会员【丰****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

大连理工大学c语言函数省公共课一等奖全国赛课获奖课件.pptx

1、1 1第八章第八章 函函 数数第第1 1页页2第第2 2页页3#include stdio.hvoid main()char husband3=A,B,C,wife3=X,Y,Z;int i,j,k;for(i=0;i3;i+)for(j=0;j3;j+)for(k=0;k3;k+)if(i!=j&j!=k&i!=k)/*不能不能1个新娘配个新娘配2个新郎个新郎*/*得到一个配对方式得到一个配对方式*/if(match(i,j,k,wife)printf(husband wifen);/*这种配对方式符合题目要求这种配对方式符合题目要求*/printf(A-%cn,wifei);printf(

2、B-%cn,wifej);printf(C-%cn,wifek);int match(int i,int j,int k,char wife)/*A不和不和X结婚结婚*/if(wifei=X)return 0;/*X不和不和C结婚结婚*/if(wifek=X)return 0;/*C不和不和Z结婚结婚*/if(wifek=Z)return 0;return 1;第第3 3页页4l 主要内容 8.1 8.1 概述概述 8.8.函数定义普通形式函数定义普通形式 8.8.函数参数和函数值函数参数和函数值 8.8.函数调用函数调用 8.8.函数嵌套调用函数嵌套调用 8.8.函数递归调用函数递归调用 8

3、.8.数组作为函数参数数组作为函数参数 8.8 8.8 局部变量和全局变量局部变量和全局变量 8.8.变量存放类别变量存放类别 8.10 8.10 内部函数和外部函数内部函数和外部函数第第4 4页页5#include#includeint i;void main()char string20;char str320;int i;for(i=0;i3;i+)gets(stri);int max()()C C程序程序源程序文件源程序文件1 1源程序文件源程序文件2 2源程序文件源程序文件n n预处理命令预处理命令函数函数n n函数函数1 1数据声明数据声明函数首部函数首部函数体函数体数据声明数据声

4、明执行语句执行语句第第5 5页页6 8.1 概述 一个较大程序可分为若干个程序模块(子程序),每一个模块用来一个较大程序可分为若干个程序模块(子程序),每一个模块用来实现一个特定功效,模块也叫函数。实现一个特定功效,模块也叫函数。mainmain一个源程序文件可由一个主函数和若干个其它函数组成。一个源程序文件可由一个主函数和若干个其它函数组成。函数间调用关系:由主函数调用其它由主函数调用其它函数,其它函数也函数,其它函数也能够相互调用。能够相互调用。同一个函数能够被同一个函数能够被一个或多个函数调一个或多个函数调用任意屡次。用任意屡次。第第6 6页页7函数调用示例函数调用简单例子函数调用简单例

5、子#include void main()void printstar();/*对对printstar函数申明函数申明*/void print_message();/*对对print_message函数申明函数申明*/printstar();/*调用调用printstar函数函数*/print_message();/*调用调用print_message函数函数*/printstar();/*调用调用printstar函数函数*/运行结果以下:运行结果以下:*How do you do!How do you do!*void printstar()/*定义定义printstar函数函数*/pri

6、ntf(*n);void print_message()/*定义函数定义函数*/printf(How do you do!n);第第7 7页页8 (1)(1)一个程序一个程序(文件夹)由一个或多个程序模块组成,每一个程序模块作为一个文件夹)由一个或多个程序模块组成,每一个程序模块作为一个源程序文件(源程序文件(.c).c)。对于较大程序,通常将程序内容分别放在若干个源文件中,再由若干源程序文件组成一个对于较大程序,通常将程序内容分别放在若干个源文件中,再由若干源程序文件组成一个C C程序。程序。这么便于分别编写、分别编译,提高调试效率。一个源程序文件可认为多个这么便于分别编写、分别编译,提高调

7、试效率。一个源程序文件可认为多个C C程序公用。程序公用。(2)(2)一个源程序文件由一个或多个函数以及其他有关内容(如命令行、数据定义一个源程序文件由一个或多个函数以及其他有关内容(如命令行、数据定义等)组成。等)组成。一个源程序文件是一个编译单位,在程序编译时是以源程序文件为单位进行编译,而不是一个源程序文件是一个编译单位,在程序编译时是以源程序文件为单位进行编译,而不是以函数为单位进行编译。以函数为单位进行编译。相关函数说明第第8 8页页9(3)(3)程程序序执执行行是是从从mainmain函函数数开开始始,假假如如在在mainmain函函数数中中调调用用其其它它函函数数,在在调调用用后

8、后流流程程返返回回到到mainmain函函数数,在在mainmain函函数数中中结结束束整整个个程程序运行。序运行。(4)(4)全部函数都是全部函数都是平行平行,即在定义函数时是分别进行,是相互独立。即在定义函数时是分别进行,是相互独立。一一个个函函数数并并不不隶隶属属于于另另一一函函数数,即即函函数数不不能能嵌嵌套套定定义义。函函数数间能够相互调用,但不能调用间能够相互调用,但不能调用mainmain函数。函数。mainmain函数是系统调用。函数是系统调用。相关函数说明第第9 9页页10(5)(5)函数分类函数分类从用户角度分:从用户角度分:从函数形式分:从函数形式分:10相关函数说明 标

9、标准准函函数数,即即库库函函数数。这这是是由由系系统统提提供供,用用户户无无须须自自己己定定义义这这些些函函数数,能能够够直直接接使使用用它它们们。不不一一样样C C系系统统提提供供库库函函数数数数量量和和功功效效会会有有一些不一样一些不一样,但许多基本函数是共同,但许多基本函数是共同 用户自己定义函数用户自己定义函数。用以处理用户专门需要。用以处理用户专门需要。无无参参函函数数。无无参参函函数数普普通通用用来来执执行行指指定定一一组组操操作作。在在调调用用无无参参函函数时,主调函数数时,主调函数不向被调用函数传递不向被调用函数传递数据。数据。有有参参函函数数。主主调调函函数数在在调调用用被被

10、调调用用函函数数时时,经经过过参参数数向向被被调调用用函函数传递数据。数传递数据。y=siny=sin(x x););函数调用简单例子函数调用简单例子#include void main()void printstar();/*对对printstar函数申明函数申明*/void print_message();/*对对print_message函数申明函数申明*/printstar();/*调用调用printstar函数函数*/print_message();/*调用调用print_message函数函数*/printstar();/*调用调用printstar函数函数*/第第1010页页11

11、8.2 函数定义普通形式 1 1 无参函数定义普通形式无参函数定义普通形式 类型标识符类型标识符函数名函数名()()申明部分申明部分 语句部分语句部分 2 2 空函数普通形式空函数普通形式 类型标识符类型标识符函数名函数名()()主调函数调用空函数时,只表明这主调函数调用空函数时,只表明这里要调用一个函数,但函数本身什里要调用一个函数,但函数本身什么工作也不做么工作也不做,等等以后扩充函数功以后扩充函数功效时补充上。效时补充上。void printstar()/*定义定义printstar函数函数*/printf(*n);第第1111页页12128.2 函数定义普通形式 3 3 有参函数定义普

12、通形式有参函数定义普通形式 类型标识符类型标识符函数名函数名(形式参数表列形式参数表列)申明部分申明部分 语句部分语句部分 比如:比如:int max(int,int)int z;/*函数体中申明部分函数体中申明部分*z=x y?x:y;return(z);第第1212页页138.3 函数参数和函数值 1 1 形式参数和实际参数形式参数和实际参数 形式参数:形式参数:函数名后面括号中变量名称为函数名后面括号中变量名称为“形式参数形式参数”(简称(简称“形参形参”)。)。实际参数:实际参数:主调函数中调用一个函数时,函数名后面括号中参数主调函数中调用一个函数时,函数名后面括号中参数(能够是一能够

13、是一个表示式个表示式)称为称为“实际参数实际参数”(简称(简称“实参实参”)。)。函数返回值:函数返回值:returnreturn后面括号中值作为函数带回值后面括号中值作为函数带回值(称函数返回值)。(称函数返回值)。void main()int a,b,c;c=max(a,b);printf(“%d”,c);int max(int,int)int z;/*函数体中申明部分函数体中申明部分*z=x y?x:y;return(z);第第1313页页14148.3 函数参数和函数值 主调函数和被调用函数之间有数据传递关系。在不一样函数之间传递主调函数和被调用函数之间有数据传递关系。在不一样函数之间

14、传递数据,能够使用方法有:数据,能够使用方法有:参数:参数:经过形式参数和实际参数经过形式参数和实际参数返回值:返回值:用用returnreturn语句返回计算结果语句返回计算结果全局变量:全局变量:外部变量外部变量例例8.调用函数时数据传递调用函数时数据传递#include void main()int max(int,int);/*max函数申明函数申明*/int,;scanf(“,”,);c=max(,);printf(“Max is ”,);int max(int,int y)*函数函数max*int z;z=?:;return (z);运行情况以下:运行情况以下:,Max isMax

15、 is 7,87,87 7 8 88 8 8 88 8 8 8第第1414页页1515形参和实参说明形参和实参说明(1 1)在定义函数中指定形参,在未出现函数调用时,)在定义函数中指定形参,在未出现函数调用时,它们并不占内它们并不占内存中存放单元存中存放单元。只有在发生函数调用时,函数只有在发生函数调用时,函数maxmax中形参才被分配内中形参才被分配内存单元存单元。在调用结束后,形参所占内存单元也被。在调用结束后,形参所占内存单元也被释放释放。(2 2)实参能够是常量、变量或表示式,实参能够是常量、变量或表示式,例:例:max(max(,););但要求它们但要求它们有确定值有确定值。在调用时

16、将实参值赋给形参。在调用时将实参值赋给形参。(3 3)在被定义函数中,)在被定义函数中,必须指定形参类型必须指定形参类型。int max(int,int);(4 4)实参加形参类型应)实参加形参类型应相同或赋值兼容相同或赋值兼容。int max(int,int y)*函数函数max*int z;z=?:;return (z);第第1515页页1616形参和实参说明形参和实参说明(5 5)值传递)值传递:实参向形参数据传实参向形参数据传递是单向递是单向“值传递值传递”,只能由实参传给形参,而不能由只能由实参传给形参,而不能由形参传回来给实参。形参传回来给实参。int max(int,int y)

17、*函数函数max*int z;c=20;z=?:;x=100;return (z);例例8.调用函数时数据传递调用函数时数据传递#include void main()int max(int,int);/*max函函数数申申明明*/int,;scanf(“,”,);c=max(,);printf(“Max is ,%d”,,a);7,87,87 87 88 8 8 8 8 8 7 7在调用函数时,在调用函数时,给形参分配存给形参分配存放单元放单元,并将实参对应值传递,并将实参对应值传递给形参,调用结束后,给形参,调用结束后,形参单形参单元被释放元被释放,实参单元仍保留并实参单元仍保留并维持原值

18、。维持原值。第第1616页页17178.3 函数参数和函数值 2 2 函数返回值函数返回值函数返回值是经过函数返回值是经过函数调用函数调用使主调函数得到确实定值。使主调函数得到确实定值。(1)函数返回值是经过函数中return语句取得。一个函数中能够有一个以上一个以上returnreturn语句语句,执行到哪一个执行到哪一个returnreturn语句,哪语句,哪一个语句起作用。一个语句起作用。(2)在定义函数时指定函数类型普通应该和在定义函数时指定函数类型普通应该和returnreturn语句中表示式类型一致语句中表示式类型一致。假如函数值类型和假如函数值类型和returnreturn语句中

19、表示式值不一致,则以函数类型为准。语句中表示式值不一致,则以函数类型为准。对数值型数据,能够自动进行类型转换。即函数类型决定返回值类型。对数值型数据,能够自动进行类型转换。即函数类型决定返回值类型。说明说明return语句后面括弧也能够不要语句后面括弧也能够不要比如比如:“return;”等价于等价于“return (z);”return后面值能够是一个表示式。后面值能够是一个表示式。比如比如:max (int,int)return(?:);float max(int,int y)*函数函数max*int z;z=?:;return (z);例例8.调用函数时数据传递调用函数时数据传递#inc

20、lude void main()int max(int,int);/*max函函数数申申明明*/int,;scanf(“,”,);c=max(,);printf(“Max is ”,);第第1717页页18188.3 函数参数和函数值 (3)函数返回值应该属于某一个确定类型,在定义函数时指定函数返回值类型。注意:注意:凡不加类型说明函数,自动按整型处理。maxmax(float float,float float)(4 4)对于不带回值函数,应该用对于不带回值函数,应该用“voidvoid”定义函数为定义函数为“无类型无类型”(或称(或称“空类型空类型”)。)。此时在函数体中不得出现此时在函数

21、体中不得出现returnreturn语句语句。比如比如:下面是下面是3个函数首行:个函数首行:int max(float,float)/*函数值为整型函数值为整型*/char letter(char c1,char c2)/*函数值为字符型函数值为字符型*/double min(int,int)/*函数值为双精度型函数值为双精度型*/函数调用简单例子函数调用简单例子#include void main()void printstar();/*对对printstar函数申明函数申明*/void print_message();/*对对print_message函数申明函数申明*/printsta

22、r();/*调用调用printstar函数函数*/print_message();/*调用调用print_message函数函数*/printstar();/*调用调用printstar函数函数*/第第1818页页19198.3 函数参数和函数值 例例 8.返回值类型与函数类型不一样返回值类型与函数类型不一样#include void main()int max(float,float);/函数申明函数申明 float,;int;scanf(“%f,%f,”,&a,&b);c=max(a,b);printf(“Max is%d n”,c);int max(float x,float y)flo

23、at z;/*z为实为实型型变变量量*/z=xy?x:y;return(z);运行情况以下:.,.Max is 1.5,2.51.5,2.51.5,2.52.522第第1919页页20208.4 函数调用1 1 函数调用普通形式函数调用普通形式函数名(实参表列)函数名(实参表列)相关说明:相关说明:(1 1)假如是调用无参函数,则)假如是调用无参函数,则“实参表列实参表列”能够没有,能够没有,但括弧不能但括弧不能省略。省略。void mainvoid main()()(2 2)假如实参表列包含多个实参,则各参数间用逗号隔开。实参加)假如实参表列包含多个实参,则各参数间用逗号隔开。实参加形参个数

24、应相等,类型应匹配。实参加形参按次序对应,一一传递数据。形参个数应相等,类型应匹配。实参加形参按次序对应,一一传递数据。max(amax(a,b)b)-float float maxmax(float float,float float)(3 3)假如实参表列包含多个实参,)假如实参表列包含多个实参,对实参求值次序并不是确定,有对实参求值次序并不是确定,有系统按自左至右次序求实参值,有系统则按自右至左次序。系统按自左至右次序求实参值,有系统则按自右至左次序。第第2020页页21218.4 函数调用例例 8.4 8.4 实参求值次序实参求值次序#include void main()int f(

25、int a,int b);/*函数申明函数申明*/int i=2,p;p=f(i,+i);/*函数调用函数调用*/printf(%dn,p);int f(int a,int b)int c;if(ab)c=1;else if(a=b)c=0;else c=-1;return(c);假如按自左至右次序求实参值,则函数假如按自左至右次序求实参值,则函数调用相当于(,)调用相当于(,)-1-1 假如按自右至左次序求实参值,则函数假如按自右至左次序求实参值,则函数调用相当于(调用相当于(3,),),TC:0 TURBO Cint i=2,p;p=f(i,+i);j=+i;p=f(i,j);第第2121

26、页页22228.4 函数调用2 2 函数调用方式函数调用方式函数语句函数语句把函数调用作为一个语句。把函数调用作为一个语句。这时不要求函数带回值这时不要求函数带回值,只要求函数完成一定操作。,只要求函数完成一定操作。如:如:printfprintf(“%d”,a);%d”,a);函数表示式函数表示式函数出现在一个表示式中,这种表示式称为函数表示式。这时要求函数函数出现在一个表示式中,这种表示式称为函数表示式。这时要求函数带回一个带回一个确定值以参加表示式运算确定值以参加表示式运算。比如。比如:*(,);(,);函数参数函数参数函数调用作为一个函数实参。函数调用作为一个函数实参。比如比如:m=m

27、ax(a,m=max(a,max(b,c)max(b,c););其中其中max(b,c)max(b,c)是一次函数调用,它值作为是一次函数调用,它值作为maxmax另一次调用实参。另一次调用实参。m m值是值是a a、b b、c c三者中最大者。三者中最大者。z z第第2222页页231.1.首先被调用函数必须是首先被调用函数必须是已经存在函数已经存在函数(是库函数或用户自己定义函数(是库函数或用户自己定义函数)。但)。但光有这一条件还不够光有这一条件还不够2.2.假如使用假如使用库函数库函数,还应该在本文件开头用,还应该在本文件开头用#include#include 命令将调用相关库函数时命

28、令将调用相关库函数时所需用到信息所需用到信息“包含包含”到本文件中来。到本文件中来。#include#include 3.3.假如使用假如使用用户自己定义函数用户自己定义函数,而该函数位置在调用它函数(即主调函数),而该函数位置在调用它函数(即主调函数)后后面面,应该在主调函数中对被调用应该在主调函数中对被调用函数作申明函数作申明。4.4.申明作用是把申明作用是把函数名、函数参数个数和参数类型函数名、函数参数个数和参数类型等信息通知编译系统,方便等信息通知编译系统,方便在碰到函数调用时,编译系统能正确识别函数并检验调用是否正当。在碰到函数调用时,编译系统能正确识别函数并检验调用是否正当。8.4

29、 函数调用3 3 对被调用函数申明和函数原型对被调用函数申明和函数原型第第2323页页24248.4 函数调用函数申明称为函数原型,函数原型普通形式函数申明称为函数原型,函数原型普通形式1.1.函数类型函数类型 函数名函数名(参数类型参数类型1 1 参数名参数名1 1,参数类型,参数类型2 2 参数名参数名2 2);2.2.函数类型函数类型 函数名函数名(参数类型参数类型1 1,参数类型,参数类型2 2);如:如:int max(int a,int b);int max(int,int)int max(int a,int b);int max(int,int)注意:注意:函数函数“定义定义”和

30、和“申明申明”区分:区分:l 函数定义是指对函数功效确实立,包含指定函数名,函数值类型、形参函数定义是指对函数功效确实立,包含指定函数名,函数值类型、形参及其类型、函数体等,它是一个完整、独立函数单位。及其类型、函数体等,它是一个完整、独立函数单位。l 函数申明作用则是把函数名字、函数类型以及形参类型、个数和次序通函数申明作用则是把函数名字、函数类型以及形参类型、个数和次序通知编译系统,方便在调用该函数时系统按此进行对照检验。知编译系统,方便在调用该函数时系统按此进行对照检验。在函数申明中能够不写形参名,而只写形在函数申明中能够不写形参名,而只写形参类型。编译系统只检验参数个数和参数参类型。编

31、译系统只检验参数个数和参数类型,而不检验参数名。类型,而不检验参数名。第第2424页页25258.4 函数调用例例8.对被调用函数作申明对被调用函数作申明#include void main()float add(float x,float y);float a,b,c;scanf(%f,%f,&a,&b);c=add(a,b);printf(sum is%fn,c);float add(float x,float y)float z;z=x+y;return(z);例例8.对被调用函数作申明对被调用函数作申明#include float add(float x,float y)float z

32、;z=x+y;return(z);void main()float a,b,c;scanf(%f,%f,&a,&b);c=add(a,b);printf(sum is%fn,c);float add(float,float);float add(float,float);float add(float,float);float add(float,float);第第2525页页26268.5 函数嵌套调用C语言函数定义是相互平行、独立,在定义函数时,一个函数不能包含另一个函数,不能嵌套定义。C语言能够嵌套调用函数,在调用一个函数过程中,又调用一个函数。例例8.对被调用函数作申明对被调用函数作申

33、明#include void main()float add(float x,float y)float z;z=x+y;return(z);float a,b,c;scanf(%f,%f,&a,&b);c=add(a,b);printf(sum is%fn,c);函数调用简单例子函数调用简单例子#include void main()void printstar();/*对对printstar函数申明函数申明*/void print_message();/*对对print_message函数申明函数申明*/printstar();/*调用调用printstar函数函数*/print_mess

34、age();/*调用调用print_message函数函数*/printstar();/*调用调用printstar函数函数*/void printstar()/*定义定义printstar函数函数*/printf(*n);第第2626页页278.5 函数嵌套调用例例 8.8.用弦截法求方程用弦截法求方程 f(x)=xf(x)=x3 3-5x-5x2 2+16x-80=0+16x-80=0 根根 方法:方法:1.1.取两个不一样点取两个不一样点x1,x2,x1,x2,假如假如f(x1)f(x1)和和f(x2)f(x2)符号相反符号相反,则则(x1,x2)(x1,x2)区间内必有一个根。假如区间

35、内必有一个根。假如f(x1)f(x1)与与f(x2)f(x2)同同符号符号,则应改变则应改变x1,x2,x1,x2,直到直到f(x1)f(x1)、f(x2)f(x2)异号为止。异号为止。注意注意x1x1、x2x2值不应差太大值不应差太大,以确保以确保(x1,x2)(x1,x2)区间内只有区间内只有一个根。一个根。2.2.连接连接(x1,f(x1)(x1,f(x1)和和(x2,f(x2)(x2,f(x2)两点两点,此线此线(即弦即弦)交交x x轴于轴于x x。3.3.若若f(x)f(x)与与f(x1)f(x1)同符号同符号,则根必在则根必在(x,x2)(x,x2)区间内区间内,此此时将时将x x

36、作为新作为新x1x1。假如。假如f(x)f(x)与与f(x2)f(x2)同符号同符号,则表示根则表示根在在(x1,x)(x1,x)区间内区间内,将将x x作为新作为新x2x2。4.4.重复步骤重复步骤 (2)(2)和和 (3),(3),直到直到 f(x)f(x)为止为止,为一个很小数。为一个很小数。第第2727页页2828N-S 流程图8.5 函数嵌套调用1.1.用函数用函数f(x)f(x)代表代表x x函数函数:x x3 3-5x-5x2 2+16x-80+16x-80。2.2.用函数用函数xpoint(x1,x2)xpoint(x1,x2)来来(x1,f(x1)(x1,f(x1)和和(x2

37、,f(x2)(x2,f(x2)连线与连线与x x轴交点轴交点x x坐标。坐标。x=(x1*f(x2)-x2*f(x1)/(f(x2)-f(x1);3.3.用函数用函数root(x1,x2)root(x1,x2)来求来求(x1,x2)(x1,x2)区间那个实根。显然区间那个实根。显然,执行执行rootroot函函数过程中要用到函数数过程中要用到函数xpoint,xpoint,而执而执行行xpointxpoint函数过程中要用到函数过程中要用到f f函数。函数。实现各个部分函数第第2828页页29298.5 函数嵌套调用#include#include float f(float x)float

38、y;y=(x-5.0)*x+16.0)*x-80.0;return(y);float xpoint(float x1,float x2)float x;x=(x1*f(x2)-x2*f(x1)/(f(x2)-f(x1);return(x);float root(float x1,float x2)float x,y,y1;y1=f(x1);do x=xpoint(x1,x2);y=f(x);if(y*y10)x1=x;else x2=x;while(fabs(y)=0.0001);return(x);第第2929页页30308.5 函数嵌套调用 void main()float x1,x2,f1,f2,x;do printf(input x1,x2:n);scanf(%f,%f,&x1,&x2);f1=f(x1);f2=f(x2);while(f1*f2=0);x=root(x1,x2);printf(a root of equation is%8.4fn,x);运行情况以下:运行情况以下:input x1,x2input x1,x2:,root of equation is 5.00005.0000第第3030页页31v作业:作业:v8.18.58.18.5第第3131页页

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服