文章目录
- 系列文章目录
- 前言
- 一、pandas是什么?
- 二、使用步骤
- 1.引入库
- 2.读入数据
- 总结
前言
- 什么是函数?
写了一段牛顿迭代法求平方根的代码,程序里面无数地方都要求平方根, 难道需要的地方都把这段代码拷贝一遍?一个数十万行的程序,都写在 main里面? 数百个程序员如何合写一个 main?
- 为什么需要函数?
- 如何定义函数?
- 计算机函数和数学定义中的函数有什么区别?
- 如何使用函数?
提示:以下是本篇文章正文内容,下面案例可供参考
一、什么是函数?
1.函数是一个固定的一个程序段,或称其为一个子程序。
“函数” 可以将实现了某一功能,并需要反复使用的代码包装起来形成一个功能模块(即写成一个“函数”),那么当程序中需要使用该项功能时,不需要把这段代码重新再写一遍,只需写一条语句,调用实现该功能的 “函数”即可
。
2.特征:有三部分组成,除了可以实现固定运算功能,还有一个入口和一个出口
所谓入口,就是函数所带的各个参数,我们可以通过这个入口,把函数的参数值代入子程序,供计算机处理;
所谓出口,就是指函数的函数值,在计算机求得之后,由此口带回给调用它的程序。
二、怎么使用函数?
1.函数的定义
返回值类型 函数名(参数1类型 参数1名称, 参数2类型 参数2名称……)
{
语句组(即“函数体”)
}
- 如果函数不需要返回值,则“返回值类型”可以写“void”
- 由函数类型、函数名、形参列表(形式参数的类型和名称)、函数体(语句和返回值)组成
2.函数的声明
返回值类型 函数名(参数1类型 参数1名称, 参数2类型 参数2名称……);
- 注意是一个完整的说明语句,所以分号不能丢。
3.函数的调用和return语句
-
调用函数:函数名(参数1,参数2,……);
-
对函数的调用,也是一个表达式。函数调用表达式的值,由函数内部的 return语句决定。return语句语法如下:return 返回值;
-
return语句的功能是结束函数的执行,并将“返回值”作为结果返回。“ 返回值”是常量、变量或复杂的表达式均可。如果函数返回值类型为 “void”, return语句就直接写: return ;
-
return 语句作为函数的出口,可以在函数中多次出现。多个return语句的 “返回值”可以不同。在哪个return语句结束函数的执行,函数的返回值就和哪个return语句里面的“返回值”相等
4.函数定义和声明的辨析
- 正如变量必须先声明后使用一样,函数也必须先声明后调用。C语言编译系统是由上往下编译的,如果被调函数在主调函数之前被定义,可以直接调用函数。而一般被调函数放在主调函数后面的话(如果习惯main函数在前,被调函数在后的话),前面就该有声明。否则C由上往下的编译系统将无法识别。
-
声明时,参数名称可以省略。函数声明也称为“函数的原型”
- 函数的声明可以与定义分离,一个函数只能被定义一次,但可以声明多次。
- 根本区别时声明式不开辟内存的,而定义开辟内存
二、函数使用示例
1.Max函数
代码如下(示例):
#include<iostream>//C++中用于数据的流式输入与输出的头文件
using namespace std;
int Max(int a,int b)//形参需要与实参类型相同
{if(a>b){return a;//需要分号 }else return b; }
int main()
{int n=Max(4,6);//需要分号//判断4和6中的较大值//调用函数只是一个手段,目的是得到一个结果 cout<<n<<","<<Max(20,n)<<endl; //是cout不是cont return 0;}
2.判断是否是素数
代码如下(示例):
#include<iostream>
using namespace std;
bool IsPrime(unsigned int n)//bool布尔型变量,返回ture或flase
{if(n<=1)return false;for(int i=2; i<n; ++i) if(n%i==0)return false;return true;//不是ture }
int main()
{cout<<IsPrime(2)<<","<<IsPrime(4)<<","<<IsPrime(5);return 0;}
3.已知三角形三个顶点位置, 求边长
代码如下(示例):
#include<iostream>
using namespace std;
#include <iostream>
using namespace std;
#define EPS 0.001 //用以控制计算精度
double Sqrt(double a)
{
//求a的平方根
double x = a/2,lastX = x + 1 + EPS; //确保能够进行至少一次迭代
while( x - lastX > EPS || lastX - x > EPS) {
//只要精度没有达到要求,就继续迭代
lastX = x;
x = (x + a/x)/2;
}
return x;
}
double Distance(double x1,double y1,double x2,double y2)
{ //求两点(x1,y1),(x2,y2) 的距离
return Sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
int main()
{
int x1,y1,x2,y2,x3,y3;
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
cout << Distance(x1,y1,x2,y2) << endl;
//输出(x1,y1)到(x2,y2)距离
cout << Distance(x1,y1,x3,y3) << endl;
cout << Distance(x3,y3,x2,y2) << endl;
return 0;
}