版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022/12/19电气与信息工程学院计算机系制作Lesson12程序的组织结构2022/12/16电气与信息工程学院计算机系制作Lesso2022/12/19电气与信息工程学院计算机系制作学习目标:31掌握结构化程序设计的思想使用函数2022/12/16电气与信息工程学院计算机系制作学习目标:2022/12/19电气与信息工程学院计算机系制作3标准函数4函数:根据输入,经过一系列运算过程(步骤),得到结果y=sin(30)30acbsin(30)的含义:如图中:b/a2022/12/16电气与信息工程学院计算机系制作3标准函数2022/12/19电气与信息工程学院计算机系制作3函数31、标准函数:C语言提供了很多标准函数,它们被放置在一起,形成了一个标准函数库。
2、自定义函数:自己定义的函数。两类函数2022/12/16电气与信息工程学院计算机系制作3函数312022/12/19电气与信息工程学院计算机系制作3标准函数4头文件函数类别math.h包含与数学有关的函数ctype.h包含与字符处理有关的函数string.h包含与字符串有关的函数stdio.h包含与输入输出有关的函数2022/12/16电气与信息工程学院计算机系制作3标准函数2022/12/19电气与信息工程学院计算机系制作3标准函数4函数原型功能描述doublesin(doublex)返回double型x的正弦,x是弧度doublesqrt(doublex)返回double型x的平方根doublepow(doublex,doubley)返回xy调用函数时,不但需要了解函数的功能,还要通过函数原型弄清楚函数需要的参数格式以及函数的返回类型2022/12/16电气与信息工程学院计算机系制作3标准函数2022/12/19电气与信息工程学院计算机系制作3标准函数4例1:根据给定的两个坐标点(x1,y1)和(x2,y2),计算两点之间的距离。
问题分析计算两点之间距离的公式为
d=在这个公式中含有平方和开平方的运算,可以直接利用C语言提供的标准函数实现这两个运算。
2022/12/16电气与信息工程学院计算机系制作3标准函数2022/12/19电气与信息工程学院计算机系制作算法描述
2022/12/16电气与信息工程学院计算机系制作算法描述2022/12/19电气与信息工程学院计算机系制作#include<stdio.h>#include<math.h>intmain(){intx1,y1,x2,y2;doubledistance;printf("\nEnter2coordinates(x1,y1,x2,y2)\n");scanf("%d%d%d%d",&x1,&y1,&x2,&y2); printf("\nThefirstcoordinateis(%d,%d)",x1,y1); printf("\nThesecondcoordinateis(%d,%d)",x2,y2);distance=sqrt(pow(x2-x1,2)+pow(y2-y1,2)); printf("\nThedistanceis%f",distance); return0;}lesson12_01.c2022/12/16电气与信息工程学院计算机系制作#incl2022/12/19电气与信息工程学院计算机系制作3自定义函数6引例:计算如下式子的和2022/12/16电气与信息工程学院计算机系制作3自定义函2022/12/19电气与信息工程学院计算机系制作3自定义函数2#include<stdio.h>intmain(){ inti,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=%d\n",sum);return0;}lesson12_0.c2022/12/16电气与信息工程学院计算机系制作3自定义函2022/12/19电气与信息工程学院计算机系制作3自定义函数2#include<stdio.h>intmain(){ inti,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=%d\n",sum);return0;}这里三个过程都一样,都是给定一个起始、结束(输入)的区间得到期间整数的和(输出)2022/12/16电气与信息工程学院计算机系制作3自定义函2022/12/19电气与信息工程学院计算机系制作3自定义函数5实现一个实现前需要明确:1、该模块需要解决一个什么问题,完成一个什么任务2、解决该问题需要知道些什么条件如何自定义一个函数?2022/12/16电气与信息工程学院计算机系制作3自定义函2022/12/19电气与信息工程学院计算机系制作3自定义函数5类型函数名(类型参数1,类型参数2,……)
返回值类型标识符参数表:需要知道的条件返回值函数出口{
}
函数体;
return
表达式;
主要部分:完成模块需要完成的功能(任务)2022/12/16电气与信息工程学院计算机系制作3自定义函2022/12/19电气与信息工程学院计算机系制作3自定义函数5例题:给定一个区间,计算其间整数的和1、该模块需要解决一个什么问题:
求整数的累加和2、需要知道些什么条件
区间的起始值、结束值把他作为参数循环求和2022/12/16电气与信息工程学院计算机系制作3自定义函2022/12/19电气与信息工程学院计算机系制作3自定义函数5例:
intsumTo(intstart,intend){ inti,s=0; for(i=start;i<=end;i++)s+=i; returns;}2022/12/16电气与信息工程学院计算机系制作3自定义函2022/12/19电气与信息工程学院计算机系制作#include<stdio.h>intsumTo(intstart,intend);intsumTo(intstart,intend){ inti=0,s=0; for(i=start;i<=end;i++) s+=i; returns;}intmain(){ inti,sum=0,sum1=0,sum2=0,sum3=0; sum1=sumTo(3,23); sum2=sumTo(5,30); sum3=sumTo(8,33); sum=sum1+sum2+sum3; printf("sum=%d\n",sum); return0;}声明,告诉C语言有这样一个函数调用,使用该函数,得到3-23整数之和3、实现,编写代码实现过程lesson12_0_1.c2022/12/16电气与信息工程学院计算机系制作#incl2022/12/19电气与信息工程学院计算机系制作3自定义函数5C语言规定,一个函数可以有返回值,也可以没有返回值。如果有返回值,返回值的类型在函数名前声明,并在函数体中利用return语句将返回值返回;如果没有返回值,在函数名前声明void。默认的返回类型是int。函数定义不能放在另一个函数里面,不能嵌套定义。
函数名不但应该符合C语言的自定义标识符命名规范,还应该“见名知意”。2022/12/16电气与信息工程学院计算机系制作3自定义函2022/12/19电气与信息工程学院计算机系制作3自定义函数5参数表是函数之间交换信息的接口。既可以通过它将外界的数据传递给函数,也可以通过它将函数的操作结果带出函数(通过指针)。如果形式参数属于一维数组类型,无须指出一维数组的元素个数,一般通过其他参数指出。函数体是函数的核心部分,在这里列出需要执行的语句序列。
2022/12/16电气与信息工程学院计算机系制作3自定义函2022/12/19电气与信息工程学院计算机系制作3自定义函数5函数的返回值在声明函数的时候,函数名前使用了保留字void,说明这个函数没有返回值;否则,这个函数执行完毕后,应该返回一个相应类型的数值。
return表达式;2022/12/16电气与信息工程学院计算机系制作3自定义函2022/12/19电气与信息工程学院计算机系制作3函数调用7函数的调用
函数调用语句的基本格式为:
<函数名>(<实在参数表>);实在参数与形式参数的数据类型和个数一一对应。
2022/12/16电气与信息工程学院计算机系制作3函数调用2022/12/19电气与信息工程学院计算机系制作3函数应用8例3:计算:s=1+(1*2)+(1*2*3)+…+(1*2*3*4*…*10)分析:sum=1!+2!+3!+4!+……+10!存在这样一个过程:输入一个n,得到n的阶乘定义一个求n的阶乘的函数2022/12/16电气与信息工程学院计算机系制作3函数应用2022/12/19电气与信息工程学院计算机系制作intfun(intn){inti=0,s=1;for(i=1;i<=n;i++)s*=i;returns;}lesson12_03.c2022/12/16电气与信息工程学院计算机系制作intf2022/12/19电气与信息工程学院计算机系制作#include<stdio.h>intfun(intn);intmain(){inti=0,sum=0;for(i=1;i<=10;i++){sum+=fun(i);}printf(“1!+2!+3!+…=%d”,sum);return0;}intfun(intn){inti=0,s=1;for(i=1;i<=n;i++)s*=i;returns;}lesson12_03.c2022/12/16电气与信息工程学院计算机系制作#incl2022/12/19电气与信息工程学院计算机系制作3课堂练习9计算:s=1/1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)n的值从键盘输入2022/12/16电气与信息工程学院计算机系制作3课堂练习2022/12/19电气与信息工程学院计算机系制作3函数应用8数组作为函数参数问题:在主函数中定义了一个数组intdata[]={1,2,3,4,5,6,7,8,9,0}在sum函数中要对该数组求和,如何定义sum函数才能将数组data传到sum函数中呢2022/12/16电气与信息工程学院计算机系制作3函数应用2022/12/19电气与信息工程学院计算机系制作3函数应用8数组作为函数参数定义形式类型名函数名(类型名数组名[],类型名参数名)intsum(inta[],intlen){inti,s=0;for(i=0;i<len;i++)s+=a[i];returns;}2022/12/16电气与信息工程学院计算机系制作3函数应用2022/12/19电气与信息工程学院计算机系制作#include<stdio.h>intsum(inta[],intlen);intmain(){intdata[]={1,2,3,4,5,6,7,8,9,0},s;s=sum(data,10);printf("s=%d",s);return0;}intsum(inta[],intlen){inti,s=0;for(i=0;i<len;i++)s+=a[i];returns;}2022/12/16电气与信息工程学院计算机系制作#incl2022/12/19电气与信息工程学院计算机系制作3函数应用8例4:使用函数的方法,编写程序求数组的最大值分析:定义一个函数getMax,在该函数中传入一个数组,求该数组的最大值2022/12/16电气与信息工程学院计算机系制作3函数应用2022/12/19电气与信息工程学院计算机系制作#include<stdio.h>intgetMax(intd[],intlen);intmain(){intmax,data[10]={1,2,4,5,3,10,9,6,8,7};max=getMax(data,10);printf(“最大值是%d”,max);return0;}intgetMax(intd[],intlen){inti=0,m=d[0];for(i=0;i<len;i++)if(d[i]>m)m=d[i];returnm;}注意:参数为数组的定义方法len:数组的长度注意:调用时直接传数组名lesson12_04.c2022/12/16电气与信息工程学院计算机系制作#incl2022/12/19电气与信息工程学院计算机系制作3函数应用8课堂练习:使用函数的方法,计算一个数组中的奇数和要求:定义一个函数sum(intdata[],intlen),该函数的功能是计算数组data中的奇数和在主函数中定义一个数组a,从键盘给该数组的每个元素输入值,调用该函数,输出其中的奇数和2022/12/16电气与信息工程学院计算机系制作3函数应用2022/12/19电气与信息工程学院计算机系制作3课后练习101、使用函数求1*2*3+4*5*6+7*8*9+…100*101*1022、使用函数求水仙花数3、使用函数打印等腰三角形4、使用函数求所有的[1,1000]范围内的完数(完数:因子(不过括自身)和等于自身的数)2022/12/16电气与信息工程学院计算机系制作3课后练习2022/12/19电气与信息工程学院计算机系制作Lesson12程序的组织结构2022/12/16电气与信息工程学院计算机系制作Lesso2022/12/19电气与信息工程学院计算机系制作学习目标:31掌握结构化程序设计的思想使用函数2022/12/16电气与信息工程学院计算机系制作学习目标:2022/12/19电气与信息工程学院计算机系制作3标准函数4函数:根据输入,经过一系列运算过程(步骤),得到结果y=sin(30)30acbsin(30)的含义:如图中:b/a2022/12/16电气与信息工程学院计算机系制作3标准函数2022/12/19电气与信息工程学院计算机系制作3函数31、标准函数:C语言提供了很多标准函数,它们被放置在一起,形成了一个标准函数库。
2、自定义函数:自己定义的函数。两类函数2022/12/16电气与信息工程学院计算机系制作3函数312022/12/19电气与信息工程学院计算机系制作3标准函数4头文件函数类别math.h包含与数学有关的函数ctype.h包含与字符处理有关的函数string.h包含与字符串有关的函数stdio.h包含与输入输出有关的函数2022/12/16电气与信息工程学院计算机系制作3标准函数2022/12/19电气与信息工程学院计算机系制作3标准函数4函数原型功能描述doublesin(doublex)返回double型x的正弦,x是弧度doublesqrt(doublex)返回double型x的平方根doublepow(doublex,doubley)返回xy调用函数时,不但需要了解函数的功能,还要通过函数原型弄清楚函数需要的参数格式以及函数的返回类型2022/12/16电气与信息工程学院计算机系制作3标准函数2022/12/19电气与信息工程学院计算机系制作3标准函数4例1:根据给定的两个坐标点(x1,y1)和(x2,y2),计算两点之间的距离。
问题分析计算两点之间距离的公式为
d=在这个公式中含有平方和开平方的运算,可以直接利用C语言提供的标准函数实现这两个运算。
2022/12/16电气与信息工程学院计算机系制作3标准函数2022/12/19电气与信息工程学院计算机系制作算法描述
2022/12/16电气与信息工程学院计算机系制作算法描述2022/12/19电气与信息工程学院计算机系制作#include<stdio.h>#include<math.h>intmain(){intx1,y1,x2,y2;doubledistance;printf("\nEnter2coordinates(x1,y1,x2,y2)\n");scanf("%d%d%d%d",&x1,&y1,&x2,&y2); printf("\nThefirstcoordinateis(%d,%d)",x1,y1); printf("\nThesecondcoordinateis(%d,%d)",x2,y2);distance=sqrt(pow(x2-x1,2)+pow(y2-y1,2)); printf("\nThedistanceis%f",distance); return0;}lesson12_01.c2022/12/16电气与信息工程学院计算机系制作#incl2022/12/19电气与信息工程学院计算机系制作3自定义函数6引例:计算如下式子的和2022/12/16电气与信息工程学院计算机系制作3自定义函2022/12/19电气与信息工程学院计算机系制作3自定义函数2#include<stdio.h>intmain(){ inti,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=%d\n",sum);return0;}lesson12_0.c2022/12/16电气与信息工程学院计算机系制作3自定义函2022/12/19电气与信息工程学院计算机系制作3自定义函数2#include<stdio.h>intmain(){ inti,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=%d\n",sum);return0;}这里三个过程都一样,都是给定一个起始、结束(输入)的区间得到期间整数的和(输出)2022/12/16电气与信息工程学院计算机系制作3自定义函2022/12/19电气与信息工程学院计算机系制作3自定义函数5实现一个实现前需要明确:1、该模块需要解决一个什么问题,完成一个什么任务2、解决该问题需要知道些什么条件如何自定义一个函数?2022/12/16电气与信息工程学院计算机系制作3自定义函2022/12/19电气与信息工程学院计算机系制作3自定义函数5类型函数名(类型参数1,类型参数2,……)
返回值类型标识符参数表:需要知道的条件返回值函数出口{
}
函数体;
return
表达式;
主要部分:完成模块需要完成的功能(任务)2022/12/16电气与信息工程学院计算机系制作3自定义函2022/12/19电气与信息工程学院计算机系制作3自定义函数5例题:给定一个区间,计算其间整数的和1、该模块需要解决一个什么问题:
求整数的累加和2、需要知道些什么条件
区间的起始值、结束值把他作为参数循环求和2022/12/16电气与信息工程学院计算机系制作3自定义函2022/12/19电气与信息工程学院计算机系制作3自定义函数5例:
intsumTo(intstart,intend){ inti,s=0; for(i=start;i<=end;i++)s+=i; returns;}2022/12/16电气与信息工程学院计算机系制作3自定义函2022/12/19电气与信息工程学院计算机系制作#include<stdio.h>intsumTo(intstart,intend);intsumTo(intstart,intend){ inti=0,s=0; for(i=start;i<=end;i++) s+=i; returns;}intmain(){ inti,sum=0,sum1=0,sum2=0,sum3=0; sum1=sumTo(3,23); sum2=sumTo(5,30); sum3=sumTo(8,33); sum=sum1+sum2+sum3; printf("sum=%d\n",sum); return0;}声明,告诉C语言有这样一个函数调用,使用该函数,得到3-23整数之和3、实现,编写代码实现过程lesson12_0_1.c2022/12/16电气与信息工程学院计算机系制作#incl2022/12/19电气与信息工程学院计算机系制作3自定义函数5C语言规定,一个函数可以有返回值,也可以没有返回值。如果有返回值,返回值的类型在函数名前声明,并在函数体中利用return语句将返回值返回;如果没有返回值,在函数名前声明void。默认的返回类型是int。函数定义不能放在另一个函数里面,不能嵌套定义。
函数名不但应该符合C语言的自定义标识符命名规范,还应该“见名知意”。2022/12/16电气与信息工程学院计算机系制作3自定义函2022/12/19电气与信息工程学院计算机系制作3自定义函数5参数表是函数之间交换信息的接口。既可以通过它将外界的数据传递给函数,也可以通过它将函数的操作结果带出函数(通过指针)。如果形式参数属于一维数组类型,无须指出一维数组的元素个数,一般通过其他参数指出。函数体是函数的核心部分,在这里列出需要执行的语句序列。
2022/12/16电气与信息工程学院计算机系制作3自定义函2022/12/19电气与信息工程学院计算机系制作3自定义函数5函数的返回值在声明函数的时候,函数名前使用了保留字void,说明这个函数没有返回值;否则,这个函数执行完毕后,应该返回一个相应类型的数值。
return表达式;2022/12/16电气与信息工程学院计算机系制作3自定义函2022/12/19电气与信息工程学院计算机系制作3函数调用7函数的调用
函数调用语句的基本格式为:
<函数名>(<实在参数表>);实在参数与形式参数的数据类型和个数一一对应。
2022/12/16电气与信息工程学院计算机系制作3函数调用2022/12/19电气与信息工程学院计算机系制作3函数应用8例3:计算:s=1+(1*2)+(1*2*3)+…+(1*2*3*4*…*10)分析:sum=1!+2!+3!+4!+……+10!存在这样一个过程:输入一个n,得到n的阶乘定义一个求n的阶乘的函数2022/12/16电气与信息工程学院计算机系制作3函数应用2022/12/19电气与信息工程学院计算机系制作intfun(intn){inti=0,s=1;for(i=1;i<=n;i++)s*=i;returns;}lesson12_03.c2022/12/16电气与信息工程学院计算机系制作intf2022/12/19电气与信息工程学院计算机系制作#include<stdio.h>intfun(intn);intmain(){inti=0,sum=0;for(i=1;i<=10;i++){sum+=fun(i);}printf(“1!+2!+3!+…=%d”,sum);return0;}intfun(intn){inti=0,s=1;for(i=1;i<=n;i++)s*=i;returns;}lesson12_03.c2022/12/16电气与信息工程学院计算机系制作#incl2022/12/19电气与信息工程学院计算机系制作3课堂练习9计算:s=1/1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)n的值从键盘输入2022/12/16电气与信息工程学院计算机系制作3课堂练习2022/12/19电气与信息工程学院计算机系制作3函数应用8数组作为函数参数问题:在主函数中定义了一个数组intdata[]={1,2,3,4,5,6,7,8,9,0}在sum函数中要对该数组求和,如何定义sum函数才能将数组data传到sum函数中呢2022/12/16电气与信息工程学院计算机系制作3函数应用2022/12/19电气与信息工程学院计算机系制作3函数应用8数组作为函数参数定义形式类型名函数名(类型名数组名[],类型名参数名)intsum(inta[],intlen){
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年黔恒职业学院单招综合素质考试模拟试卷附参考答案详解(轻巧夺冠)
- 2026年三门峡技师学院高职部高职单招职业技能考试模拟试卷附答案详解【轻巧夺冠】
- 2024年蜀盛专修高职学院单招职业技能考试题库及参考答案详解(能力提升)
- 2027年河南鄢陵职业学院单招职业技能考试模拟试卷及完整答案详解(夺冠)
- 2024年德阳绵远河职业学院高职单招职业技能考试题库【含答案详解】
- 2027年山东鲁北职业学院高职单招职业技能考试题库及参考答案详解一套
- 2024年山东涧头职业学院高职单招职业技能考试题库【综合题】附答案详解
- 2025年威海技师学院单招职业技能考试模拟试卷(满分必刷)附答案详解
- 2025年广西壮族自治区北海市高职单招职业技能考试题库(原创题)附答案详解
- 2024年承德技师学院双滦高职部高职单招职业技能考试题库(名师系列)附答案详解
- (鲁科版2017课标)高中物理必修第三册 第1章综合测试及答案01
- 电厂职业健康培训课件
- 2025建筑门窗抗风压计算书
- 生产车间清场管理制度
- T/CHES 54-2021取水权交易可行性报告编制导则
- 美缝合同协议书
- 回扣承诺协议书范本
- 动脉血气标本采集并发症预防及处理课件
- 车间夜间值班管理制度
- 2025年电工(中级)职业技能鉴定参考试指导题库(含答案)
- 研究生入学考试中医基础理论考点精要
评论
0/150
提交评论