




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作学习目标学习目标:3 1掌握结构化程序设计的思想掌握结构化程序设计的思想使用函数使用函数2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3标准函数标准函数4 函数:根据输入,经过一系列运算过函数:根据输入,经过一系列运算过程程( (步骤步骤) ),得到结果,得到结果y=sin(30)y=sin(30)30acbsin(30)sin(30)的含义的含义: :如图中:如图中:b/ab/a2021-10-28电
2、气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3函数函数3C语言提供了很多标准函数,语言提供了很多标准函数,它们被放置在一起,形成了一个标准函数库。它们被放置在一起,形成了一个标准函数库。 自己定义的函数。自己定义的函数。2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3标准函数标准函数4头文件头文件函数类别函数类别math.h包含与数学有关的函数ctype.h包含与字符处理有关的函数string.h包含与字符串有关的函数stdio.h包含与输入输出有关的函数2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3标准函数标
3、准函数4函数原型函数原型功能描述功能描述double sin(double x)返回double型x的正弦,x是弧度double sqrt(double x)返回double型x的平方根double pow(double x,double y)返回xy2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3标准函数标准函数4例1:根据给定的两个坐标点(x1,y1)和(x2,y2),计算两点之间的距离。 问题分析问题分析l计算两点之间距离的公式为计算两点之间距离的公式为 d=d=212212)yy()xx (l在这个公式中含有平方和开平方的运算,可以直在这个公式中含有平
4、方和开平方的运算,可以直接利用接利用C C语言提供的标准函数实现这两个运算。语言提供的标准函数实现这两个运算。 2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作 算法描述 开开始始 输输入入两两个个坐坐标标点点 输输出出计计算算结结果果 结结束束 计计算算两两点点之之间间的的距距离离 显显示示两两个个坐坐标标点点 2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作#include #include int main( ) int x1, y1, x2, y2; double distance; printf(nEnter 2 coo
5、rdinates(x1,y1,x2,y2)n); scanf(%d%d%d%d, &x1, &y1, &x2, &y2); printf(nThe first coordinate is (%d,%d), x1, y1); printf(nThe second coordinate is (%d,%d), x2, y2); distance = sqrt(pow(x2-x1, 2) + pow(y2-y1, 2); printf(nThe distance is %f, distance); return 0;lesson12_01.c2021-10-28电气与
6、信息工程学院计算机系制作电气与信息工程学院计算机系制作3自定义函数自定义函数6引例引例:计算如下式子的和计算如下式子的和338305233iiiiii2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3自定义函数自定义函数2#include int main()int i,sum=0,sum1=0,sum2=0,sum3=0;for(i=3;i=23;i+)sum1+=i;for(i=5;i=30;i+)sum2+=i;for(i=8;i=33;i+)sum3+=i;sum=sum1+sum2+sum3; printf(sum=%dn,sum); return 0
7、;lesson12_0.c2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3自定义函数自定义函数2#include int main()int i,sum=0,sum1=0,sum2=0,sum3=0;for(i=3;i=23;i+)sum1+=i;for(i=5;i=30;i+)sum2+=i;for(i=8;i=33;i+)sum3+=i;sum=sum1+sum2+sum3; printf(sum=%dn,sum); return 0;这里三个过程这里三个过程都一样,都是都一样,都是给定一个起始、给定一个起始、结束结束(输入输入)的的区间得到期间区间得到期
8、间整数的和整数的和(输出输出)2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3自定义函数自定义函数52021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3自定义函数自定义函数5类型类型 函数名函数名(类型类型 参数参数1 , 类型类型 参数参数2 , ) 函数体函数体; ; returnreturn 表达式表达式; ; 2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3自定义函数自定义函数5把他作为参数把他作为参数循环求和循环求和2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算
9、机系制作3自定义函数自定义函数5 例: int sumTo(int start, int end) int i,s=0; for(i=start;i=end;i+) s+=i; return s; 2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作#include int sumTo(int start,int end);int sumTo(int start,int end)int i=0,s=0;for(i=start;i=end;i+)s+=i;return s;int main()int i,sum=0,sum1=0,sum2=0,sum3=0;sum1=
10、sumTo(3,23);sum2=sumTo(5,30);sum3=sumTo(8,33);sum=sum1+sum2+sum3;printf(sum=%dn,sum);return 0;声明,告诉声明,告诉C语言有这样一语言有这样一个函数个函数调用,使用该函调用,使用该函数,得到数,得到3-23整整数之和数之和3、实现,编写、实现,编写代码实现过程代码实现过程lesson12_0_1.c2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3自定义函数自定义函数5lC语言规定,一个函数可以有返回值,也可以没有返语言规定,一个函数可以有返回值,也可以没有返回值。如果有
11、返回值,返回值的类型在函数名前声明,回值。如果有返回值,返回值的类型在函数名前声明,并在函数体中利用并在函数体中利用return 语句将返回值返回;如果没语句将返回值返回;如果没有返回值,在函数名前声明有返回值,在函数名前声明void。l默认的返回类型是默认的返回类型是int。l函数定义不能放在另一个函数里面,不能嵌套定义。函数定义不能放在另一个函数里面,不能嵌套定义。 l函数名不但应该符合函数名不但应该符合C C语言的自定义标识符命名规范,语言的自定义标识符命名规范,还应该还应该“见名知意见名知意”。2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3自定义函数
12、自定义函数5l参数表是函数之间交换信息的接口。既可以通过参数表是函数之间交换信息的接口。既可以通过它将外界的数据传递给函数,也可以通过它将函它将外界的数据传递给函数,也可以通过它将函数的操作结果带出函数(通过指针)。数的操作结果带出函数(通过指针)。l如果形式参数属于一维数组类型,无须指出一维如果形式参数属于一维数组类型,无须指出一维数组的元素个数,一般通过其他参数指出。数组的元素个数,一般通过其他参数指出。l函数体是函数的核心部分,在这里列出需要执行函数体是函数的核心部分,在这里列出需要执行的语句序列。的语句序列。 2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系
13、制作3自定义函数自定义函数5 函数的返回值函数的返回值l在声明函数的时候,函数名前使用了保留字在声明函数的时候,函数名前使用了保留字voidvoid,说明这个函数没有返回值;否则,这,说明这个函数没有返回值;否则,这个函数执行完毕后,应该返回一个相应类型个函数执行完毕后,应该返回一个相应类型的数值。的数值。l return return 表达式;表达式;2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3函数调用函数调用7 函数的调用函数的调用 l函数调用语句的基本格式为:函数调用语句的基本格式为: (););v实在参数与形式参数的数据类型和个数一一对应。实在参数
14、与形式参数的数据类型和个数一一对应。 2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3函数应用函数应用8例例3 3:计算:计算:s=1+(1s=1+(1* *2)+(12)+(1* *2 2* *3)+3)+(1+(1* *2 2* *3 3* *4 4* * *10)10)分析:分析:sum=1! + 2! + 3! + 4! + + 10!存在这样一个过程:输入一个存在这样一个过程:输入一个n,得到得到n的阶乘的阶乘定义一个求定义一个求n的阶乘的函数的阶乘的函数2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作int fun(
15、int n) int i=0,s=1; for(i=1;i=n;i+) s*=i; return s;lesson12_03.c2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作#include int fun(int n);int main() int i=0,sum=0; for(i=1;i=10;i+) sum+=fun(i); printf(“1!+2!+3!+=%d”,sum); return 0;int fun(int n) int i=0,s=1; for(i=1;i=n;i+) s*=i; return s;lesson12_03.c2021-10
16、-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3课堂练习课堂练习9计算:计算:s=1/1+1/(1+2)+1/(1+2+3)+s=1/1+1/(1+2)+1/(1+2+3)+1/(1+2+3+1/(1+2+3+n)+n)n n的值从键盘输入的值从键盘输入2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3函数应用函数应用8数组作为函数参数数组作为函数参数问题:问题:在主函数中定义了一个数组在主函数中定义了一个数组int data=1,2,3,4,5,6,7,8,9,0在在sum函数中要对该数组求和,如何定义函数中要对该数组求和,如何定义sum函
17、数才能将数组函数才能将数组data传到传到sum函数中呢函数中呢2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3函数应用函数应用8数组作为函数参数数组作为函数参数定义形式定义形式类型名类型名 函数名函数名(类型名类型名 数组名数组名,类型名类型名 参数名参数名)int sum(int a ,int len) int i,s=0; for(i=0;ilen;i+) s+=ai; return s;2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作#include int sum(int a,int len);int main() i
18、nt data=1,2,3,4,5,6,7,8,9,0,s; s=sum(data,10); printf(s=%d,s); return 0;int sum(int a ,int len) int i,s=0; for(i=0;ilen;i+) s+=ai; return s;2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3函数应用函数应用8例例4 4:使用函数的方法:使用函数的方法, ,编写程序求数组的最大值编写程序求数组的最大值分析:分析:定义一个函数定义一个函数getMax,在该函数中传入,在该函数中传入一个数组,求该数组的最大值一个数组,求该数组的最大值2021-10-28电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作#include int getMax(int d,int len);int main() int max,data10=1,2,4,5,3,10,9,6,8,7; max=getMax(data,10); pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论