欢迎来到天天文库
浏览记录
ID:4141899
大小:196.16 KB
页数:16页
时间:2017-11-29
《函数与编译预处理06》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、2、#ifndef标识符#defineDEBUG程序段1......#else#ifndefDEBUG程序段2cout<2、ine编译程序段1,表达式DEBUG0,则不输出调试信为零,编译程序段2。息。采用条件编译后,可以使机器代码程序缩短。以下程序的运行结果是:#defineDEBUGvoidmain(void){inta=14,b=15,c;c=a/b;#ifdefDEBUGcout<<“a=“<3、数据放在一个文件中。当一个完整的程序被存放在多于一个文件中时,称为程序的多文件组织。内部函数和外部函数内部函数:函数只限于在本文件中调用,其它文件不能调用,用static定义该函数。staticfloatfac(intn){......}外部函数:函数的默认形式,可以被其它文件调用,用extern定义该函数。调用时,在文件中用extern说明。voidmain(void){externenter_string();charstr[80];enter_string(str);说明外部函数..........}补充算法方程求解1、牛顿切线法4、只有为数不多的方程有精确解,一般都是用迭代方法近似求方程的解。方程f(x)=0的实数解实际上是曲线f(x)在x轴上交点的值。yf(x)xx01、任选一x值x1,在y1=f(x1)处做切线与x轴相交于x2处。2、若5、x2-x16、或7、f(x2)8、小于指定的精度,则令x1=x2,继续做1。当其满足所需的精度时,x2就是方程的近似解。根据已知点求其切线的公式为:f(x1)f(x1)x2=x1−yf′(x1)f(x)x2这就是牛顿切线法。x1x2x牛顿切线法收敛快,x0x1适用性强,缺陷是必须求出方程的导数。已知方程为f(x)=x*x-a时,用牛9、顿切线法求方程的解。给定初值x0,精度10-6,算法编程如下。cin>>x1;//从键盘输入x0do上一循环的新值成为本次循环的旧值{x0=x1;旧值算本次循环的新值f(x0)x1=x0-(x0*x0-a)/(2*x0);//x1=x0−f′(x0)}while(fabs(x1-x0)>=1e-6);cout>>”x=”>>x1>>endl;yf(x1)2、弦截法f(x)x0x0=x1*f(x2)−x2*f(x1)x2x2x0f(x2)−f(x1)xxx1f(x2)1、在x轴上取两点x1和x2,要确保x1与x2之间有且只有方程唯一的解。10、2、x1与x2分别与f(x)相交于y1=f(x1)、y2=f(x2)。3、做直线通过y1、y2与x轴交于x0点。4、若11、f(x0)12、满足给定的精度,则x0即是方程的解,否则,若f(x0)*f(x1)<0,则方程的解应在x1与x0之间,令x2=x0,继续做2。同理,若f(x0)*f(x1)>0,则方程的解应在x2与x0之间,令x1=x0,继续做2,直至满足精度为止。用两分法求方程的根。x3-5x2+16x-80=0voidmain(void)x1*f(x2)−x2*f(x1){floatx1,x2,x0,f0,f1,f2;x0=f(x2)13、−f(x1)do{cout<<“Inputx1,x2”;#includecin>>x1>>x2;floatf(floatx)输入x,输出f(x)f1=f(x1);f2=f(x2);{returnx*x*x-5*x*x+16*x-80;}while(f1*f2>0);}do判断输入是否合法{x0=xpoint(x1,x2);f0=f(x0);输入x1,x2,输出x0if((f0*f1)>0){x1=x0;f1=f0;}else{x2=x0;f2=f0;}floatxpoint(floatx1,floatx2)}whil14、e(fabs(f0)>=0.0001);{floatx0;cout<<”x=”<
2、ine编译程序段1,表达式DEBUG0,则不输出调试信为零,编译程序段2。息。采用条件编译后,可以使机器代码程序缩短。以下程序的运行结果是:#defineDEBUGvoidmain(void){inta=14,b=15,c;c=a/b;#ifdefDEBUGcout<<“a=“<3、数据放在一个文件中。当一个完整的程序被存放在多于一个文件中时,称为程序的多文件组织。内部函数和外部函数内部函数:函数只限于在本文件中调用,其它文件不能调用,用static定义该函数。staticfloatfac(intn){......}外部函数:函数的默认形式,可以被其它文件调用,用extern定义该函数。调用时,在文件中用extern说明。voidmain(void){externenter_string();charstr[80];enter_string(str);说明外部函数..........}补充算法方程求解1、牛顿切线法4、只有为数不多的方程有精确解,一般都是用迭代方法近似求方程的解。方程f(x)=0的实数解实际上是曲线f(x)在x轴上交点的值。yf(x)xx01、任选一x值x1,在y1=f(x1)处做切线与x轴相交于x2处。2、若5、x2-x16、或7、f(x2)8、小于指定的精度,则令x1=x2,继续做1。当其满足所需的精度时,x2就是方程的近似解。根据已知点求其切线的公式为:f(x1)f(x1)x2=x1−yf′(x1)f(x)x2这就是牛顿切线法。x1x2x牛顿切线法收敛快,x0x1适用性强,缺陷是必须求出方程的导数。已知方程为f(x)=x*x-a时,用牛9、顿切线法求方程的解。给定初值x0,精度10-6,算法编程如下。cin>>x1;//从键盘输入x0do上一循环的新值成为本次循环的旧值{x0=x1;旧值算本次循环的新值f(x0)x1=x0-(x0*x0-a)/(2*x0);//x1=x0−f′(x0)}while(fabs(x1-x0)>=1e-6);cout>>”x=”>>x1>>endl;yf(x1)2、弦截法f(x)x0x0=x1*f(x2)−x2*f(x1)x2x2x0f(x2)−f(x1)xxx1f(x2)1、在x轴上取两点x1和x2,要确保x1与x2之间有且只有方程唯一的解。10、2、x1与x2分别与f(x)相交于y1=f(x1)、y2=f(x2)。3、做直线通过y1、y2与x轴交于x0点。4、若11、f(x0)12、满足给定的精度,则x0即是方程的解,否则,若f(x0)*f(x1)<0,则方程的解应在x1与x0之间,令x2=x0,继续做2。同理,若f(x0)*f(x1)>0,则方程的解应在x2与x0之间,令x1=x0,继续做2,直至满足精度为止。用两分法求方程的根。x3-5x2+16x-80=0voidmain(void)x1*f(x2)−x2*f(x1){floatx1,x2,x0,f0,f1,f2;x0=f(x2)13、−f(x1)do{cout<<“Inputx1,x2”;#includecin>>x1>>x2;floatf(floatx)输入x,输出f(x)f1=f(x1);f2=f(x2);{returnx*x*x-5*x*x+16*x-80;}while(f1*f2>0);}do判断输入是否合法{x0=xpoint(x1,x2);f0=f(x0);输入x1,x2,输出x0if((f0*f1)>0){x1=x0;f1=f0;}else{x2=x0;f2=f0;}floatxpoint(floatx1,floatx2)}whil14、e(fabs(f0)>=0.0001);{floatx0;cout<<”x=”<
3、数据放在一个文件中。当一个完整的程序被存放在多于一个文件中时,称为程序的多文件组织。内部函数和外部函数内部函数:函数只限于在本文件中调用,其它文件不能调用,用static定义该函数。staticfloatfac(intn){......}外部函数:函数的默认形式,可以被其它文件调用,用extern定义该函数。调用时,在文件中用extern说明。voidmain(void){externenter_string();charstr[80];enter_string(str);说明外部函数..........}补充算法方程求解1、牛顿切线法
4、只有为数不多的方程有精确解,一般都是用迭代方法近似求方程的解。方程f(x)=0的实数解实际上是曲线f(x)在x轴上交点的值。yf(x)xx01、任选一x值x1,在y1=f(x1)处做切线与x轴相交于x2处。2、若
5、x2-x1
6、或
7、f(x2)
8、小于指定的精度,则令x1=x2,继续做1。当其满足所需的精度时,x2就是方程的近似解。根据已知点求其切线的公式为:f(x1)f(x1)x2=x1−yf′(x1)f(x)x2这就是牛顿切线法。x1x2x牛顿切线法收敛快,x0x1适用性强,缺陷是必须求出方程的导数。已知方程为f(x)=x*x-a时,用牛
9、顿切线法求方程的解。给定初值x0,精度10-6,算法编程如下。cin>>x1;//从键盘输入x0do上一循环的新值成为本次循环的旧值{x0=x1;旧值算本次循环的新值f(x0)x1=x0-(x0*x0-a)/(2*x0);//x1=x0−f′(x0)}while(fabs(x1-x0)>=1e-6);cout>>”x=”>>x1>>endl;yf(x1)2、弦截法f(x)x0x0=x1*f(x2)−x2*f(x1)x2x2x0f(x2)−f(x1)xxx1f(x2)1、在x轴上取两点x1和x2,要确保x1与x2之间有且只有方程唯一的解。
10、2、x1与x2分别与f(x)相交于y1=f(x1)、y2=f(x2)。3、做直线通过y1、y2与x轴交于x0点。4、若
11、f(x0)
12、满足给定的精度,则x0即是方程的解,否则,若f(x0)*f(x1)<0,则方程的解应在x1与x0之间,令x2=x0,继续做2。同理,若f(x0)*f(x1)>0,则方程的解应在x2与x0之间,令x1=x0,继续做2,直至满足精度为止。用两分法求方程的根。x3-5x2+16x-80=0voidmain(void)x1*f(x2)−x2*f(x1){floatx1,x2,x0,f0,f1,f2;x0=f(x2)
13、−f(x1)do{cout<<“Inputx1,x2”;#includecin>>x1>>x2;floatf(floatx)输入x,输出f(x)f1=f(x1);f2=f(x2);{returnx*x*x-5*x*x+16*x-80;}while(f1*f2>0);}do判断输入是否合法{x0=xpoint(x1,x2);f0=f(x0);输入x1,x2,输出x0if((f0*f1)>0){x1=x0;f1=f0;}else{x2=x0;f2=f0;}floatxpoint(floatx1,floatx2)}whil
14、e(fabs(f0)>=0.0001);{floatx0;cout<<”x=”<
此文档下载收益归作者所有