学习笔记---自定义函数提高---2
2016-12-21 16:51
204 查看
自定义函数提高第二部分
函数原型:函数声明的形式
函数原型与函数定义的一致:
1.返回值类型一致
2.函数名一致
3.参数个数一致
4.参数类型一致
5.参数顺序一致
示例:
注:函数声明并不要求参数名称一致,所以声明时int max(int x,int y)而在定义时int max(int a,int b){}也是可以的。
函数原型对函数调用的指导
对照函数原型即可确定函数调用的形式,以及对返回值的利用方法。
通过函数解决数学问题
用弦截法解方程:
代码示例:
解析:
1.通过合理的使用函数,一个复杂的程序被分割整理的十分简洁易懂
2.弦截法是在高中的数学学习中被我们扣上无用、繁琐的帽子。但在程序编写中却发挥了巨大的作用,还有很多数学上的方法也是如此(如数列的递推公式)。
函数原型:函数声明的形式
函数原型与函数定义的一致:
1.返回值类型一致
2.函数名一致
3.参数个数一致
4.参数类型一致
5.参数顺序一致
示例:
//以下的函数声明方式是等价的 float max(float,float); float max(float x,float y); float max(float a,float b);
注:函数声明并不要求参数名称一致,所以声明时int max(int x,int y)而在定义时int max(int a,int b){}也是可以的。
函数原型对函数调用的指导
对照函数原型即可确定函数调用的形式,以及对返回值的利用方法。
通过函数解决数学问题
用弦截法解方程:
代码示例:
#include <stdio.h> #include <stdlib.h> #include <math.h> /* 用弦截法求解方程 数学基础: 介值定理:设函数f(x)在闭区间[a,b]上连续, 且f(a)与f(b)异号(即f(a)*f(b)<0)则在开区间(a,b)内至少有函数f(x)的一个解 据此设计算法: 连接(x1,f(x1))和(x2,f(x2))两点,此弦交X轴于:x=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1)) 若f(x)与f(x1)同号,则根在(x,x2)区间内,将x作为新的x1 若f(x)与f(x2)同号,则根在(x1,x)区间内,将x作为新的x2 重复运算直到f(x)的绝对值等于零或小于某个极小的值,就能将x作为方程的近似解 */ double f(double);//用于通过x的值运算f(x)的值 double xpoint(double,double);//用于通过x1,x2的值运算x的值 double root(double,double);//基础方法 int main() { double x1,x2,f1,f2,x; do//此循环用于保证输入的x1,x2区间内有解 { printf("input x1,x2:"); scanf("%lf%lf",&x1,&x2); f1=f(x1); f2=f(x2); } while(f1*f2>=0); x=root(x1,x2); printf("A root is %.5f\n",x); return 0; } double root(double x1,double x2) { double x,y,y1; y1=f(x1); do { x=xpoint(x1,x2); y=f(x); if(y*y1>0) { y1=y; x1=x; } else { x2=x; } } while(fabs(y)>=0.00001);//当f(x)的绝对值小于0.00001时,就认为x是一个近似解 return x; } double xpoint(double x1,double x2) { double x; x=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1)); return x; } /* 方程算式 可以通过改变这个方程,来改变这个架构解决的问题 */ double f(double x) { double y; y=x*x*x-5*x*x+16*x-80; return y; }结果:
解析:
1.通过合理的使用函数,一个复杂的程序被分割整理的十分简洁易懂
2.弦截法是在高中的数学学习中被我们扣上无用、繁琐的帽子。但在程序编写中却发挥了巨大的作用,还有很多数学上的方法也是如此(如数列的递推公式)。
相关文章推荐
- 学习笔记---自定义函数提高---1
- 我的PHP学习笔记(五)php函数和自定义函数
- Python中的自定义函数学习笔记
- PHP学习笔记——自定义函数中的返回值(return);
- mysql自定义函数学习笔记
- PHP学习笔记 第七讲 PHP函数和自定义函数
- python自定义输入名字并打印-学习笔记10-输入函数
- MySQL学习笔记 4:自定义函数和MySQL存储过程
- MySQL学习笔记(十四)自定义函数
- MySQL学习笔记7:MySQL自定义函数
- 【学习笔记】自定义关于wchar_t*的相关函数
- MySQL学习笔记-自定义函数
- [C++学习笔记]自定义函数的传值方法
- Python中的自定义函数学习笔记
- php学习笔记:自定义函数的调用
- Hive自定义函数的学习笔记(1)
- 学习笔记——自定义字符串操作函数
- PHP学习笔记——自定义函数中的参数;
- linux shell学习笔记二---自定义函数(定义、返回值、变量作用域)介绍
- 自定义属性之图片切换实例——代码简化、函数合并——JS学习笔记2015-5-30(第43天)