已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第61 62 课时课型: 理论课课题:项目4:简易计算器-函数(1)教学方法:讲授、引导讨论、案例教学教学目的:1. 理解函数的概念、定义2. 理解模块化程序设计的思想3. 了解函数的分类4了解项目内容教学重、难点:教学重点:函数的概念、函数的定义 教学难点:函数的定义辅助教学手段:多媒体授课班级授课日期月 日月 日月 日月 日月 日主要教学内容:一、回顾与引入回顾:数组和指针的知识点 ,排序优化 项目任务问题情景引入:简易计算器二、新课内容项目四 简易计算器 项目介绍:本项目为模拟计算器中的部分功能,即完成简单的加减乘除运算,首先在菜单中选择需要的运算,然后输出操作数,计算出结果输出。要求:设计有选择菜单,选择需要的运算类型,然后输出两个操作数,计算出结果并输出,要求使用函数来实现。 解决问题需要的知识点: 1、函数的定义; 2、函数的调用; 3、参数的传递; 4、函数值的返回。 知识点学习 第8章 函数章节主要内容 8.1 函数的基本概念 8.2 函数参数和函数的值 8.3 函数的调用 8.4 数组作为函数参数 8.5 指针作为函数参数 8.6 嵌套调用和递归调用 8.7 存储类型引例1:求10+8=? 8.1 函数的基本概念 模块化程序设计 基本思想:将一个大的程序按功能分割成一些小模块 特点:各模块相对独立、功能单一、结构清晰、接口简单控制了程序设计的复杂性提高元件的可靠性缩短开发周期避免程序开发的重复劳动易于维护和功能扩充 开发方法: 自上向下,逐步分解,分而治之8.1.1 概述 C是模块化程序设计语言main( )函数a函数b函数c函数a1函数a2函数c1函数c2C是函数式语言必须有且只能有一个名为main的主函数C程序的执行总是从main函数开始,在main中结束函数不能嵌套定义,可以嵌套调用使用函数的优点: 1.函数是能够完成一个特定功能的一个独立模块 2.便于结构化程序设计采用逐步求精的方法,将一个较大的程序分解为若干个较小程序模块(即函数)来实现 3.主函数可以调用其他函数,其他函数之间也可以互相调用,减少程序书写的冗余,增强程序的可读性等函数分类: 从用户角度 标准函数(库函数):由系统提供 用户自定义函数使用库函数应注意:1.函数功能2.函数参数的数目和顺序,及各参数意义和类型3.函数返回值意义和类型4.需要使用的包含头文件 从函数形式 无参函数 有参函数 按函数定义分 库函数:由系统提供用户无须定义和说明就可以直接调用它们。 用户定义函数:由用户按需要编写的专门用于实现特定功能的函数。 按功能分 有返回值函数:此类被调用执行后,将向调用者返回一个函数值。 无返回值函数:此类函数用来完成特定的功能,执行完后不向调用者返回函数值。 按使用范围分 内部函数:只能在本源文件中使用。 外部函数:可在整个源程序中使用。 按数据传送分 无参函数:函数定义、函数说明及函数调用都不带参数。 有参函数:函数调用时要有参数。8.1.2 函数的定义方法 一般格式函数类型说明符 函数名(形式参数表)说明部分语句部分 传统风格:函数类型说明符 函数名(形式参数表)形参类型说明;说明部分语句部分三、复习与小结教学后记:第63 64 课时课型: 学做一体课课题:项目4:简易计算器-函数(2)教学方法:讲授、引导讨论、案例教学教学目的:1. 理解函数中的实参与形参2. 理解函数的返回值概念3. 掌握的函数的调用4掌握调用函数的程序设计教学重、难点:教学重点:函数的参数、返回值与调用 教学难点:函数的参数、返回值与调用辅助教学手段:多媒体授课班级授课日期月 日月 日月 日月 日月 日主要教学内容:一、回顾与引入回顾:函数的定义 项目任务问题情景引入:函数的调用二、新课内容8.2 函数参数和函数的值1、形式参数和实际参数 形式参数:定义函数时函数名后括号中的变量。简称形参。 实际参数:在主调函数中调用一个函数时,函数名后括号中的参数。简称实参。说明:形参与实参顺序一致,个数相同实参与形参的类型应相同或赋值兼容形参在函数未被调用前不占内存。在函数调用时临时分配存储单元,调用结束释放内存形参也是变量,在定义的函数中必须说明类型实参可以是常量、变量和表达式,但在函数调用时要有确定的值。调用时此值赋给形参实参变量对形参变量的数据传递是单向的值传递。实参形参,形参实参例:比较两个数并输出大者int max(int a, int b) int c; c=ab?a:b; return(c); void main(void) int x,y,z; scanf(%d,%d,&x,&y); z=max(x,y); printf(Max is %dn,z);2、函数的返回值 函数返值语句 形式: return(表达式); 或 return 表达式; 或 return; 功能:使程序控制从被调用函数返回到主调函数中,同时把返值带给主调函数说明:函数中可有多个return语句,但每次调用只能有一个被执行,只返回一个函数值。 若无return语句,遇最后一个时,自动返回调用函数若函数类型与return语句中表达式值的类型不一致,按前者为准,自动转换-函数调用转换void型函数-无返回值函数例:函数返回值类型转换int max(float a, float b) float c; c=ab?a:b; return(c);void main() float x,y; int z; scanf(%f,%f,&x,&y); z=max(x,y); printf(Max is %dn,z);8.3 函数的调用1、函数调用的形式和方式 调用形式 函数名(实参表);说明: 实参与形参个数相等,类型一致(或赋值兼容),按顺序一一对应 实参表求值顺序,因系统而定(Turbo C 自右向左) 如果调用有参函数,实参表中各参数用逗号分隔;如果调用无参函数,则实参表为空。 调用方式 函数语句: 例:printstar(); printf(“Hello,World!n”); 函数表达式: 例:m=2*max(a,b); 函数参数: 例:printf(“%d”,max(a,b); m=max(a,max(b,c);2 被调函数的声明和函数原型 对被调用函数要求: 必须是已存在的函数 库函数:#include 或 #include *.h 用户自定义函数:函数声明函数声明一般形式:函数类型 函数名(形参类型 形参名, ); 或 函数类型 函数名(形参类型,);作用:告诉编译系统函数类型、参数个数及类型,以便检验函数定义与函数声明不同函数声明位置:程序的数据说明部分(函数内或外)下列情况下,可不作函数说明若函数返值是char或int型,系统自动按int型处理被调用函数定义出现在主调函数之前有些系统(如Borland C+)要求函数说明指出函数返值类型和形参类型,并且对void 和 int 型函数也要进行函数说明三、复习与小结教学后记:第65 66 课时课型: 实验课课题:实验六: 函数(1)教学方法:上机、引导讨论教学目的:1. 理解函数在程序设计中的作用2. 掌握函数的定义3. 理解函数的参数及返回值4掌握函数的调用教学重、难点:教学重点:函数的应用 教学难点:函数的应用辅助教学手段:多媒体授课班级授课日期月 日月 日月 日月 日月 日主要教学内容:一、回顾与引入回顾:函数知识点 项目任务问题情景引入:模块化管理二、新课内容1、 通过函数调用打印下列图形:* 2、 通过函数调用判断三个数的大小值,并输出最大者。 3、通过函数调用计算n个连续的正整数的和,n的值由用户输入。三、复习与小结教学后记:第67 68 课时课型: 理论课课题:项目4:简易计算器-函数(3)教学方法:讲授、引导讨论、案例教学教学目的:1. 理解不同的参数传递2. 理解数组作为参数的调用3. 理解指针作为参数的调用4掌握不同参数的传递调用教学重、难点:教学重点:数组、指针作为参数的调用 教学难点:数组、指针作为参数的调用辅助教学手段:多媒体授课班级授课日期月 日月 日月 日月 日月 日主要教学内容:一、回顾与引入回顾:函数的参数 项目任务问题情景引入:值传递与地址传递二、新课内容8.4 数组作为函数参数 1、数组元素作函数实参值传递(普通变量) 例:有一整型数组,判断各元素的正负,若为非负输出值为1,否则输出0。void judge(int);void main() int i,x6; printf(Please enter 6 integersn); for(i=0;i=0)?1:0);2 、一维数组名作函数参数 地址传递,把实参数组名的值(即数组首地址) 传递给形参数组名,使形参和实参共占实参数组的那段内存单元 在主调函数与被调函数分别定义数组,且类型应一致 形参数组大小可不指定 形参数组名是地址变量,可定义为: *数组名 数组名 数组名数组长度3 、多维数组名作函数参数 地址传递,类似于一维数组 在主调函数与被调函数分别定义数组,且类型应一致 形参数组第一维的大小可省略,但第二维的大小不能省略 形参数组名是地址变量,可定义为: 8.5 指针作为函数参数传递地址值(指针)。共享内存,实现“双向”传递例:实现两数变换。void exchange(int x,int y) int temp; temp=x; x=y; y=temp;void main() int a=4,b=5; printf(a=%d,b=%dn“,a,b); exchange(a,b); printf(a=%d,b=%dn“,a,b);void exchange(int *x,int *y) int temp; temp=*x; *x=*y; *y=temp;void main() int a=4,b=5; printf(a=%d,b=%dn“,a,b); exchange(&a,&b); printf(a=%d,b=%dn“,a,b);三、复习与小结教学后记:第69 70 课时课型: 学做一体课课题:项目4:简易计算器-函数(4)教学方法:讲授、引导讨论、案例教学教学目的:1. 理解函数的概念2. 理解函数的参数、返回值3. 掌握函数的定义和调用4理解不同的参数对函数调用的意义教学重、难点:教学重点:函数的应用 教学难点:函数的应用辅助教学手段:多媒体授课班级授课日期月 日月 日月 日月 日月 日主要教学内容:一、回顾与引入回顾:函数的基本内容二、新课内容1、值传递:加减乘除计算; 2、数组作为函数参数:数据排序;3、指针作为函数参数:数据交换。项目实现:简易计算器要求:设计有选择菜单,选择需要的运算类型,然后输出两个操作数,计算出结果并输出,要求使用函数来实现。代码:#include float add(float op1,float op2)printf(The result is:%f,op1+op2);float sub(float op1,float op2)printf(The result is:%f,op1-op2);float mul(float op1,float op2)printf(The result is:%f,op1*op2);float div(float op1,float op2)printf(The result is:%f,op1/op2);main()int choice;float a,b,c,d,e,f,g,h;printf(Please choice:nMenun1.+n2.-n3.*n4./n5.Exitn:);scanf(%d,&choice);switch(choice)case 1:scanf(%f,%f,&a,&b);add(a,b);break;case 2:scanf(%f,%f,&c,&d);sub(c,d);break;case 3:scanf(%f,%f,&e,&f);mul(e,f);break;case 4:scanf(%f,%f,&g,&h);div(g,h);break;case 5: exit(0); default:printf(error,input again:);三、复习与小结教学后记:第71 72 课时课型: 实验课课题:实验六: 函数(2)教学方法:上机、引导讨论教学目的:1. 理解数组作为函数的参数2. 理解指针作为函数的参数3. 掌握函数的调用4掌握模块化设计的思想教学重、难点:教学重点:函数的应用 教学难点:函数的应用辅助教学手段:多媒体授课班级授课日期月 日月 日月 日月 日月 日主要教学内容:一、回顾与引入回顾:函数知识点 项目任务问题情景引入:模块化管理二、新课内容1、 简易计算器的设计;2、 通过函数的调用,统计输入的学生成绩的平均分(数组作为函数参数);3、 通过函数的调用,对输入的学生成绩进行排序(指针作为函数参数)。4、 完善项目4:简易计算器,要求实现能够重复输入输出数据进行使用。三、复习与小结教学后记:第73 74 课时课型: 理论课课题:项目4:简易计算器-函数(5)教学方法:讲授、引导讨论、案例教学教学目的:1. 理解嵌套调用2. 理解递归调用3. 了解存储类型4了解命令行参数教学重、难点:教学重点:嵌套调用与递归调用 教学难点:嵌套调用与递归调用辅助教学手段:多媒体授课班级授课日期月 日月 日月 日月 日月 日主要教学内容:一、回顾与引入回顾:函数 项目任务问题情景引入:函数调用二、新课内容8.6 嵌套调用与递归调用 1 嵌套调用 嵌套调用C规定:函数定义不可嵌套,但可以嵌套调用函数2 、递归调用 定义:函数直接或间接的调用自身叫函数的递归调用说明C编译系统对递归函数的自调用次数没有限制每调用函数一次,在内存堆栈区分配空间,用于存放函数变量、返回值等信息,所以递归次数过多,可能引起堆栈溢出8.7 存储类型 1、变量的存储类型 变量是对程序中数据的存储空间的抽象 变量的属性 数据类型:变量所持有的数据的性质(操作属性) 存储属性: 存储器类型:寄存器、静态存储区、动态存储区 生存期:变量在某一时间存在-静态变量与动态变量 作用域:变量在某程序区域内有效-局部变量与全局变量 变量的存储类型: auto -自动型 register-寄存器型 static -静态型 extern -外部型 变量定义格式: 存储类型 数据类型 变量表;2、变量的作用域和生存期 变量的作用域是指变量在程序正文中合法出现的范围,分为局部变量和全局变量,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 面试情景假设应对策略
- 【新教材适配】2025秋五年级道法上学期新教材同步卷
- 高考生消防安全知识
- 2025萧山农商银行诚聘英才备考题库及1套完整答案详解
- 2026中国建设银行北京市分行校园招聘备考题库含答案详解(精练)
- 2026遂宁银行秋季校园招聘备考题库及答案详解(历年真题)
- 2025安徽合肥蜀山区社区工作者招聘11人备考题库及完整答案详解一套
- 2025年长沙农商银行招聘备考题库(30人)附答案详解(研优卷)
- 2025福建三明市将乐县社区工作者招考13人备考题库含答案详解(完整版)
- 2025年合肥市蜀山区社区工作者招聘32人备考题库及一套答案详解
- 2025至2030年江苏省乡村旅游行业市场调研分析及投资战略咨询报告
- 物业公司安全知识培训课件
- DBJT15-248-2022 建筑工程消防施工质量验收规范
- 2025年河南农商银行考试题库
- 科技成果转化技术平台
- 营养液膜水培技术
- 建筑工程述标汇报
- 卫星工程概论课件
- 公路隧道超前地质预报技术规程DB53∕T 1032-2021
- 【建筑监理大纲】工商银行某分行营业部综合楼装修改造内、外装修工程监理大纲
- 阿尔派CD机CDX-A08说明书
评论
0/150
提交评论