实例1模块化 寻找根的区间: f(x1)*f(x2)<0 计算函数值: f(x)=x3-5x2+16x-80 计算弦与x轴的交点x: x=X1f(x2)-X21f(x1) f(x2)-f(x1) 用弦截法逼近方程根 lf(x)|<ξ
11 实例1模块化 ◼ 寻找根的区间: f(x1)*f(x2)<0 ◼ 计算函数值: f(x) = x3 - 5x2 + 16x - 80 ◼ 计算弦与x轴的交点x: x = x1·f(x2) - x2·f(x1) f(x2) - f(x1) ◼ 用弦截法逼近方程根: |f(x)|<ξ
定义函数(创建模块) 模块:1x)=x3-5x2+16x-80 double f(double x) return x*(x*(x-5)+16)-80
定义函数(创建模块) 模块:f(x) = x 3 - 5x 2 + 16x - 80 double f(double x) { return x*(x*(x-5)+16)-80; }
调用函数(使用模块) X= XIf(X2)-X2 f(X1) f(x2)-f(x1) int main o Y1=(x1)冫Y2=f(x2) x=(x1*y2-x2*y1)/(Y2-y1)
调用函数(使用模块) x = x1 ·f(x2 ) - x2 ·f(x1 ) f(x2 ) - f(x1 ) int main() { ... y1=f(x1); y2=f(x2); x=(x1*y2-x2*y1)/(y2-y1); ... }
函数定义的格式 数据传递 返回值类型函数名(形式参数表)模块接口 函数体 实现 模块功能 14
14 函数定义的格式 返回值类型 函数名(形式参数表) { 函数体 } 模块接口 实现 模块功能 数据传递
关于函数定义的说明 ■函数名: 标识函数,表明函数功能,与变量名命名规则相同 函数形参: 传递数据,必须是变量,不能是表达式 返回值类型(函数类型) ■返回给上一层模块的数据的类型 ■通过 return实现 ■如果无返回值,则函数类型为void 函数体:实现函数的功能 15
15 关于函数定义的说明 ◼ 函数名: ◼ 标识函数,表明函数功能,与变量名命名规则相同 ◼ 函数形参: ◼ 传递数据,必须是变量,不能是表达式 ◼ 返回值类型(函数类型): ◼ 返回给上一层模块的数据的类型 ◼ 通过return实现 ◼ 如果无返回值,则函数类型为void ◼ 函数体:实现函数的功能