中职《C语言程序设计》教案 第3课 计算三角形的面积.docx
课题计算三角形的面积课时2课时(90min)教学目标知识目标:(1)掌握标识符和关键字的概念,常量和变量的使用方法(2)掌握基本的数据类型,运算符和表达式的基本使用方法能力目标:能有找并改正标识符、数据类型和常见表达式的语法错误素质目标:根据编写程序需要遵循相应的语法,增强学生遵守规则的意识,养成按规矩行事的习惯教学重难点教学重点:标识符和关键字,常量和变量,基本数据类型,运算符和表达式教学难点:自增与自减表达式教学方法问答法、讨论法、讲授法、实践法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,完成课前任务学习英语有相应的英语语法,请同学们上网查找,C语言中的语法规则。【学生】完成课前任务考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因问题导入【教师】请同学们扫码观看“C语言的库函数”视频(详见教材),讨论并回答以下问题:请同学们思考,C语言中使用库函数的注意事项有哪些?要使用C语言提供的库函数sqrt(),在程序开头的文件包含命令该如何书写?【学生】思考、举手回答传授新知【教师】讲解C语言基本语法中饭的标识符和关键字,常量和变量,基本数据类型,运算符和表达式,一、标识符和关键字*【教师】介绍标识符概念、命名规则,关健字的概念及C语言中包含的关键字1 .标识符标识符是指软件开发人员在编写程序时自己规定的具有特定含义的词,用来标明设定的变量名、数组名、函数名等。在C程序中,标识符应遵循以下命名规则。(1)标识符只能由字母、下划线、数字组成,且第T字符必须是字母或下划线。(2)标识符区分字母大小写。(3)标识符不能是C程序中的关键字。中提示从理论上讲,C程序中并不限制标识符的长度,但实际上,标识符的长度会受到编译系统和机器系统的限制.为提高程序的可读性,应尽量使标识符可以"见名知义”。2 .关键字C程序中规定具有特别意义的字符串称为关键字,也称"保留字"。ANSIC90标准中共有32个关键字,见表2-1所列(详见教材)。二、常量和变量【教师】介绍直接常量和符号常量,变量的定义及注意事项C程序中的数据,按其取值是否可改变分为常量和变量。在程序执行过程中,其值不发生改变的量称为常量,其值可变的量称为变量。1 .常量常量可分为直接常量和符号常量两种。常见的直接常量又包括整型常量、实型常量和字符常量。符号常量是用标识符来表示一个常量。符号常量在使用之前必须先定义,其一般格式如下。#define标识符常量其中,"define"是一条预处理命令,称为宏定义命令,其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代表该常量值。宏定义的作用是给常量起"别名",利用它可以增强程序的可维护性。例如,当需要修改某一常量值时,只需要修改宏定义中的常量值,而不必在程序各处逐T务改。另外,意义明确的"别名"还可以增强程序的可读性。中提示习惯上符号常量的标识符用大写字母表示。2 .变量每个变量都有一个名字,这个名字称为变量名。变量名必须是合法的标识符,它代表了某个存储空间及其所存储的数据,这个空间所存储的数据称为该变量的值。变量在使用之前必须先定义,定义变量的一般格式如下。类型说明符变量名;在定义变量时,应注意以下四点。(1)允许在一个类型说明符后定义多个相同类型的变量,各变量名之间用逗号隔开,具体格式如下。类型说明符变量名1,变量名2,;(2)类型说明符与变量名之间至少有一个空格。(3)最后T变量名之后必须以结尾。(4)变量定义必须放在变量使用之前,一般放在函数体的开始部分。用户可在定义变量的同时为变量赋初值,这种形式称为变量的初始化。【课堂讨论】*【教师】请学生分组讨论以下问题请同学们以小组为单位,讨论定义变量的所有语句是否必须放在程序的最前面,并编写简单的测试程序,验证讨论结果。【学生】讨论、聆证、总结、回答÷【教师】总结学生的回答三、基本数据类型1 .整型整型数据包括整型常量和整型变量两类。(1)整型常量。整型常量的表示形式如下。十进制整数。k三制整数。以数字O开头,用O7这8个数字组合表达.十六进制整数。以OX或OX开头,用09这10个数字及字母AF(或af)组合表达。其中,A代表数值10,B代表数值11,依此类推。中提示在使用整型常量时,可以在常量的后面加上字符L(I)或者U(U)进行修饰。L表示该常量为长整型,U表示该常量为无符号整型,如1256U500U等。(2)整型变量。整型变量是用来存储整数的变量,可分为有符号整型和无符号整型两大类。有符号整型指的是数值可以带正负号,所以需要一个符号位;无符号整型指的是数值只有正数,所以可以去掉符号位。在默认情况下,C程序中的整型变量都是有符号的,若要使用无符号整型,需要用关键字unsigned声明.为了适应不同的应用场合,C程序中可以定义多种整数类型,其长度各不相同。其中,最常用的是有符号整型(用关键字int表示),长度为32位(4个字节).此外,还有长整型(用关键字long表示)和短整型(用关键字short表示)。在编写程序时,除可以指明变量是长整型或短整型、有符号整型或无符号整型,还可以把说明符组合起来.因此,整型变量可以分为有符号基本整型、无符号基本整型、有符号短整型、无符号短整型、有符号长整型和无符号长整型这六种。在C程序中,各种整型变量都有其特定的表示范围,当一个数据超出了其类型所能表示的范围时,称为数据溢出.【课堂练习】÷【教师】出示【例21】,组织学生编写代码有符号短整型数据的溢出。(详见教材)*【学生】编写程序、运行、对比结果÷【教师】解析例题这里定义的变量a和b是有符号短整型,其取值范围为-3276832767,所以当a的值加1变成了32768后就会发生“溢出"。但程序运行时并不报错,它好像汽车里程表一样,达到最大值以后,又从最小值开始计数.所以32767加1后得到的结果不是32768,而是-32768。程序运行结果如图2-1所示(详见教材)。高手点拨C程序的用法比较灵活,即使程序存在潜在问题,系统也不会给出“出错信息",此时只能依靠程序员的经验来保证结果的正确。在例2-1中,只需把变量b改成int型或者long型,就可以得到预期的结果了(32768)2 .浮点型浮点型数据也称为“实型幡",是带有小数点或指数符号的数值数据,包括浮点型常量和浮点型变量两类.(1)浮点型常量。浮点型常量的表示只采用十进制形式,包括直接十进制形式和指数形式两类。直接十进制形式。指数形式,通常用来表示一些比较大或者比较小的数值,格式如下:实数部分+字母E或e+正负号+整数部分其中,字母E或C表示十次方,正负号表示指数部分的符号,整数部分为幕的大小。字母E或e之前必须有数字(实数部分),之后的数字必须为整数。提示C程序中允许浮点数使用后缀。后缀为f或F即表示该数为浮点数。例如,42f和42.0是等价的。(2)浮点型变量。根据其精度不同,浮点型变量可以分为单精度类型、双精度类型和长双精度类型.单精度类型使用关键字float来定义变量,它在内存中占4个字节,提供6位有效数字,取值范围为-3.4x10381.2x10-38、0和1.2×10-38-3.4×1038双精度类型使用关键字double来定义变量,它在内存中占8个字节,提供15位有效数字,取值范围为-1.7x10308-2.3x10-308、OfQ2.3×10-308-1.7x10308.【课堂练习】÷【教师】出示【例2.2.【例2.3】,组织学生编写代码单精度型数据的有效位,双精度型数据的有效位。(详见教材)*【学生】编写程序、运行、对比结果【教师】解析例题由于float型只接受6位有效数字,因此显示的数据中只有前6位是保证正确的,后面显示的数据是编译器随机给出的。为了扩展有效数字范围,可使用双精度类型或长双精度类型。由于double型提供15位有效数字,所以输出的数据数值是正确的。程序运行结果如图2-2、图23所示(详见教材)。长双精度类型使用的关键字是longdouble.不同的编译系统对longdouble型的处理方法不同.例如,TurboC2.0对longdouble型分配16个字节,而VisualC+则对longdouble型和double型一样处理,其有效数字位数和取值范围也与double型一致.3 .字符型字符型数据包括字符型常量和字符型变量。(1)字符型常量。字符型常量包括字符常量、字符串常量和转义字符。÷【教师】多媒体播放“常用字符与ASCIl代码对照表“视频(详见教材),让学生了解ASCH及对应的值C程序中的字符常量必须用单撇号(单引号)括起来,且单撇号中只能是单个字符,如豆、'8'&;由于字符型数据在C程序中是以ASCn码形式存储的,因此字符常量的值就是其对应的ASCn码值。由于ASCII码值为整型,所以C程序中字符型数据与整型数据是可以互用的。字符串常量是一对双撇号(双引号)括起来的T或多个字符。C程序中存储字符串常量时,系统会在字符串的末尾自动加一个,(r作为字符串的结束标志。转义字符是C程序中表示字符的一种特殊形式,它以反斜杠作为标志符号,后面跟一个字符(也可以是一个八进制或十六进制数)转义字符具有特定的含义,不同于字符原有的意义,如转义字符'0'表示字符串结束。常用转义字符见表2-3所列(详见教材)。(2)字符型变量。字符型变量用来存储单个字符,类型说明符是Cha心字符型变量定义的格式和书写规则都与整型变量相同。小高手点拨字符型数据和整型数据可以互用,区别是整型数据占4个字节,字符型数据只占1个字节,故当整型数据按字符型数据处理时,只有低八位参与处理。4 .类型转换【教师】多媒体播放“数据类型转换“视频(详见教材),让学生了解隐式类型转换和强制类型转换,及其转换方法在C程序中,不同类型的数据可以混合运算,但在运算之前应先转换成同一类型.数据类型的转换有自动类型转换和强制类型转换两种方式。(1)自动类型转换。自动类型转换是由编译系统自动进行的,不需要人为干预。自动类型转换要遵循以下三个基本规则。若参与运算的变量类型不同,须先转换成同一类型(自动转换),然后进行运算。"低级向高级转换"原则。如果运算中有几种不同类型的操作数,则统T专换为最高级的瑛类型后再进行运算。数据类型的转换方向如图2-5所示(详见教材)。赋值运算两边的数据类型不同时,赋值号右边数据的类型将会转换为左边数据的类型。【课堂练习】* 【教师】出示【例2-4,组织学生编写代码数据类型转换的应用。(详见教材)÷【学生】编写程序、运行、对比结果* 【教师】解析例题计算a+b+c时,先将变量a和变量b都转换成double型,然后计算,所以结果为double型。但赋值时,X为血型,故会将计算结果转换成i11t型赋值给X,X的值为6。程序运行结果如图2-6所示(详见教材)。(2)强制类型转换。强制类型转换也称“显示类型转换",作用是将表达式的结果强制转换成类型标识符所指定的数据类型,运算格式如下。(类型标识符)(表达式)类型标识符和表达式都应用圆括号括起来(单个操作数时,表达式的圆括号可以省略).* 提示强制类型转换只作用于表达式的结果,并不改变各个变量本身的数据类型e四、运算符和表达式* 【教师】多媒体观看“算术运算符和算术表达式“(详见教材),让学生了解使用算术运算符运算的方法1.算术运算符和算术表达式算术运算符用于各类数值运算。在C程序中,基本算术运算符有五种,即+(加)、-(减)、*(乘)、/(除)、(模运算);正负号运算符有两种,即+(正号)和-(负号);自增、自减运算符有两种,即+(自增)和一(自减)。带有算术运算符的表达式称为算术表达式。基本算术运算符是双目运算符,即要求有两个操作数,如x+y、X-y、x*y、x/y、x%y等,其优先级和数学中一样.自增和自减运算符是在程序设计中使用频率较高的两个运算符,它们的作用是将操作数的值增】(或减1)后,重新写回该操作数所在的存储单元。自增和自减运算符有前置和后置两种形式。当某一运算只包含自增或自减操作时,自增或自减运算符的前置和后置形式的作用相同.但是,当自增、自减运算的结果作为操作数参与其他操作时,前置与后置的情况就有所区别了。例如,设运算前i=3,则以下4个表达式的运算结果见表2-4所列(详见教材)【课堂问答】÷【教师】随机邀请学生回答以下问题请同学们思考,当自增、自减运算的结果作为操作数参与其他操作时,将其分解成变量加一和赋值运算两个选项,前置与后置时两个选项的前后顺序是怎么样的?÷【学生】聆听、思考、回答*【教师】总结学生的回答)提示自增和自减运算符只能用于变量,而不能用于常量和表达式。例如,8+、(a+b)+都是不合法的。此外,自增、自减运算符的优先级要高于基本算术运算符。2 .赋值运算符和赋值表达式C程序中,赋值也是一种运算,运算符为,它的作用是将一个表达式的值赋给一个变量,如x=4需要注意的是,赋值运算符的左边必须是T变量。赋值运算符的优先级低于算术运算符,结合方向是从右向左。大多数双目运算符都可以与赋值运算符"=”结合起来,构成一个复合的赋值运算符,如+=、-=、*=、/=、=等.【课堂练习】*【教师】出示【例25】,组织学生编写代码赋值运算符的应用。【学生】编写程序、运行、对比结果÷【教师】解析例题3 .逗号运算符和逗号表达式C语言中逗号可作为间隔符,如定义变量时用的逗号"inta,b,cf,;亦可作为运算符,用于连接多个表达式,其一般形式如下。表达式1,表达式2,表达式n逗号表达式在运算时将从左至右依次求取各个表达式的值(先求表达式1,然后求表达式2直至求解完表达式n),而整个逗号表达式的值为最后一个表达式的值。逗号运算符在全部运算符里优先级最低,因此最好将整个逗号表达式用圆括号括起来,否则意义可能会不同。逗号运算符的结合方向是从左向右。因此,前后表达式用到相同的变量,则前面表达式中变量值如果发生了变化,将会影响后面的表达式。4 .位运算符和位表达式位运算是指进行二进制位的运算,如将一个存储单元中的各二进制位左移或右移T立。位运算符包括按位与(&)、按位或、按位异或(八)、取反()、左移(")和右移()6个,其中,取反运算是单目运算,其余是双目运算,参与位运算的数据类型只能是整型或字符型。位运算符的功能见表2-5所列(详见教材).【课堂讨论】【教师】请学生分组讨论以下问题请同学们以小组为单位,讨论按位与(&)、按位或(I)的运算规则,哪个与物理当中的串联电路和并联电路相类似?÷【学生】讨论、总结、回答÷【教师】总结学生的回答左移运算符(<<).左移运算用来将一个数的二进制位全部左移若干位,高位左移溢出后舍弃,右端低位补0.右移运算符(>>)。右移运算用来将一个数的二进制位全部右移若干位,低位右移舍弃,对无符号数,高位补0对于有符号数,在右移时,符号位将一同移动,当为正数时,最高位补0;而为负数时,符号位为1,最高位是补0或是补1取决于编译系统,VisualC+规定为补1。位运算符与赋值运算符也可以组成复合赋值运算符,包括&=、I=、>>=、«=,=.五、任务实施÷【教师】多媒体播放“计算三角形的面积”视频(详见教材),让学生了解三角形面积的程序设计步骤及代码实现1 .任务分析本任务中涉及的变量包括三角形的边长和面积,边长的数据类型通常为浮点型,为了更精确地显示计算结果,面积的数据类型可定义为双精度型。由于计算面积时需要用到平方根函数,须调用maih.h头文件.知识库math.h头文件中声明了一些常用的数学函数,如三角函数、平方根函数、指数函数、对数函数、绝对值函数等。2 .参考程序(详见教材)3 .运行结果通过键盘输入345/,程序运行结果如图2-8所示(详见教材).【学生】聆听、思考、理解、记录课堂实训【教师】介绍课堂实训要求,以及实训内容,要求学生按照实训要求完成实训任务请同学们按照任务实施中计算三角形的程序设计思路和步骤进行练习。首先包含math.h头文件,然后定义三个变量代表代表三角形的三条边,定义一个变量代表中间运算结果,定义最终的面积结算结果变量,调用SCanf用户输入三角形三条边的值,计算中间变量的值,用平方根函数计算三角形面积,最终调用PrinIf输出运算结果。【学生】按照要求进行操作,完成后总结自己哪些地方做得很好,还有哪些地方需要改进课堂小结【教师】简要总结本节课的要点本次课介绍了标识符的含义、用途、命名规则,关键字的含义,列举了32个关键字。讲解了常量和变量的定义,定义方法、语法格式及注意事项。讲解了基本幡类型,包括整型、浮点型、字符型,以及数据类型的转换,包括自动类型转换和强制类型转换两种方式.介绍了算术运算符和算术表达式,赋值运算符和赋值表达式,逗号运算符和逗号表达式,位运算符和位表达式。最后通过任务实施,利用已学知识,编写计算面积代码,输出计算结果。【学生】总结回顾知识点作业布置【教师】布置课后作业请根据本课内容,完成课后习题中的相关习题。【学生】完成课后任务教学反思