函数----程序的功能模块
- 函数:定义好的可重用的语言模块
- 定义函数:将一个模块的算法用C++语言描述出来
- 函数的参数:计算所需的数据,条件
- 函数的返回值:需要返回的计算结果
2.函数定义的语法形式‘
类型标识符 函数名 (形参列表)
{
语句序列
}
- 形参在定义时是不占存储空间,在函数调用,新参实参结合时才分配储存空间
3.函数调用
- 在函数调用之前,必须做一个函数原型的声明,因为函数的定义不一定在这个程序中,或在函数调用之后
函数原型声明:类型标识符 被调用函数名 (含类型说明的形参表)
- 函数调用形式:
函数名 (实参列表)
在调用时使用实参去初始化形参 - 嵌套调用:在一个函数的函数体中,调用另一函数
- 递归调用:函数直接或间接调用自身
4.例3-1
//计算x的n次方
#include <iostream>
using namespace std;
double power(double x,int n){
double val=1.0;
while(n--)
val*=x;
return val;
}
int main(){
double pow;
pow=power(5,2);
//函数调用作为一个表达式出现在语句中
cout<<"5 to the power 2 is "<<pow<<endl;
return 0;
}
5.例3-3
//1.编写程序计算Π的值 Π=16arctan(1/5)-4arctan(1/239)
//2.其中arctan用如下形式的技术进行计算:arctanx=x-x^3/3+x^5/5-x^7/7+...
//直到级数某项不大于10^-15为止,Π和x均为double型
#include <iostream>
using namespace std;
double arctan(double x) {
double sqr=x*x;
double e=x;
double r=0;
int i=1;
while((e/i)>1e-15){
double f=e/i;
r=(i%4==1)?r+f:r-f;
e=e*sqr;
i+=2;
}
return r;
}
int main() {
double a=16.0*arctan(1/5.0);
double b=4.0*arctan(1/239.0);
cout<<"the final is "</