1、第11-12课时 顺序结构教学内容分析本课的主题1阐述了C语言的基本数据类型,介绍了常量和变量的定义与使用方法,随后进一步介绍了如何利用赋值语句和输入函数对变量进行赋值,以及输出函数的语法格式。为了让学生更容易掌握这部分内容,教材给出了许多小例子,同时以交换变量值和转换摄氏华氏温度为例,强化巩固了本主题所教授的各项知识要点。主题2对C语言中常见的算术运算符做了介绍,并通过用编程解决两个实际问题向学生展示了算术运算符的具体用法。本课所学的常量、变量、数据类型、输入输出语句等基础知识,在将来几乎每一个程序中都能得到体现和运用。这意味着教师要带领学生扎实地掌握本课所教授的知识点。教师在指导学生学习的
2、时候,除了进行相关知识概念的讲解,还要特别注意学生动手实践能力的培养。只有学生具备了动手编写和创造自己代码的能力,才说明学生真正掌握了这部分基础知识。为此教师在自己的力范围之内,可以考虑根据学生的具体情况,增加一些其他的简单样例,帮助学生巩固程序设计的基础知识和编程技巧。教学对象分析顺序结构是最简单的一种程序流程,它在生活方方面面都有所体现,从中不难找到类似的例子进行类比。结合生活知识和以往学习经验,学生在理解顺序结构程序流程方面应该不会存在特别大的困难。C语言的算术运算符有它自身的特点和与众不同之处,特别是取模运算、自增和自减运算,在以往的学习中并不涉及,教师要充分考虑到学生对这部分知识的理
3、解难度,做好课堂讲解和举例示范工作。掌握好算术运算符的计算方法,是学生学好程序设计的基础,本课的教学将为学生的程序设计知识框架奠定坚实的基础。教学目标1.了解C语言的基本数据类型及常量和变量的定义方法。2.理解赋值运算的含义。3.掌握输入输出函数和常见的算术运算符。教学重点和难点1.教学重点。(1)数据类型。(2)赋值运算的含义。(3)算术运算符2.教学难点(1)输入输出函数的用法。(2)“/、%、+、-”算术运算符的功能。教学方法1.讲授法:讲解取模运算、自增和自减运算等,通过课堂用例将这些知识的具体应用展示给学生。2.任务驱动教学法:在课堂上设定编程任务,让学生体会各种不同数据类型的变量和
4、常量,输入函数与赋值语句对变量的影响。教学准备1.教学环境。多媒体网络教室。2.教学资。C语言源代码样例。教学过程第11课时一、引入新课(5分钟)1.引言:编程中最本质和核心的问题有两个,一个是存储数据,一个是处理数据。其中存储数据是处理数据的基础,也是编程所要面临的第1个问题。2.提问:在我们的生活中有哪些数据?预设回答:语数英的考试成绩,学生的年龄,出生日期和年份,今天的气温等。二、学习程序中的数据类型(10分钟)1、总结学生的课堂回答,提醒学生:在我们上一课所讨论的计算矩形面积的程序中,矩形的长和宽就是我们要处理的数据。不仅仅这些数值是计算机所需要存储和处理的数据,有的时候比如像我们的姓
5、名、家庭住址、学校名称等,这些也是计算机需要处理的数据。综上所述,我们可以发现数据的基本类型总体可以分为数值类型和字符类型。2.结合课本主题1,介绍基本的数据类型。3.提问:为什么在C语言中同样是数值类型却分为整型和实型两类?4.展示教材P63的示例2,布置课堂任务一:将示例2的代码输入Dev-C+。尝试着改变教材中给出的数据,观察运行结果的变化。5.提问:(1)改变数据后再运行程序,你观察到了什么现象?(2)变量a、b、c具有怎样的特性?(3)是不是向a、b、c输入任意的数值都可以得到正确的结果?你对此有何猜想?6.总结学生的回答。7.讲解变量的作用,变量是用来存储需要改变的数据的。8.提问
6、:大家想想看,我们在写程序的时候,有没有可能需要存储一些不需要改变也不可能会改变的数据呢?如果有的话,请你举几个例子吧。三、学习常量、变量与赋值语句(10分钟)1.小结学生的回答,还可以给出一些常量的例子,比如说圆周率等。2.提问:参考教材示例3,解释一下在C语言中是如何定义并使用常量数据的。3.介绍#define和const。4.布置课堂任务二:参照教材的示例3,将示例2代码中的a、b、c设定为常量,检查一下代码的运行结果,你观察到了什现象?这一现象说明了什么问题?5.小结学生的课堂发言。要求学生将示例2的代码修正回原来的表达。6.分析课堂示例2的代码,进一步提出新的观点,既然变量的值是可以
7、改变的,那么我们在C语言中要如何改变某个变量的值呢?7.介绍赋值语句,展示课本示例4。根据对课本示例4的分析,让学生把这段源代码输入Dev-C+,同时试试看把x=1改为1=x,可以吗?8.提问:x=x+1有怎样的含义?四、学习输入输出函数(15分钟)1.在之前的几个示例代码中,我们都用到了 printf,请学生猜测一下: printf有什么作用?2.提问:观察教材示例2的源代码,里面有三个 printf,请你想想看,这三个语句有什么共性,又有哪些不同?鼓励学生动手修改示例2的代码,观察输出结果,看看有哪些变化。把观测到的变化记录下来,和同学分享交流一下。3.参考教材P65输出函数部分,特别要说
8、明格式化字符串的含义。4.如果说 printf函数是用来输出程序计算的结果,那么同样的我们也需要有一种机制,来获得运行程序时用户输入的数据信息,C语言为我们提供了 scanf函数。5.在介绍了格式化字符串的基础上,结合课本,进一步介绍 scanf函数。6.参考课本示例6,将它的源代码输入Dev-C+,认真比对一下, printf函数和scanf函数在格式化字符串上有哪些相似之处和不同?尝试着修订 scanf函数的格式化字符串,看它会不会有其他意想不到的结果。和同学分享一下你对 scanf函数格式化字符串的见解。7.在学生活动之前要特别强调,输入函数需要在语句变量前增加一个&运算符。五、总结本课
9、(5分钟)回顾本节课的教学内容,我们重点学习了不同类型的数据在C语言编程中的表示方法,同时见识了数据的两种形态,分别是可改变的变量和不可改变的常量,另外赋值语句可以帮助我们修正变量中的值,最后, printf函数和scanf函数为我们输入和输出数据提供了可能。第12课时一、复习已有知识(15分钟)1.布置课堂任务一:要求定义两个整型变量a和b,分别从键盘上输入它们的值,打印输出a,b的值;交换a,b的值,再次打印输出a,b的值。规定打印输出的语句必须采用: printf(“a=%d,b=%d”,a,b),以此验证a和b的值是否真正得到了交换。2.利用多媒体网络教室展示学生的作品范例,注意点评学
10、生作品中可能出现的典型错误,比如使用 scanf函数时忘了加上&取地址符。要求学生参考课本中动手实践的参考程序,进一步修正自己的代码。3.提问:(1)参考程序中,int、temp的作用是什么?(2)temp=a;a=b;b=temp;这三句话能否调换顺序?原因是什么?4.布置课堂任务二:编写一个程序,将用户输入的摄氏温度ct转换成华氏温度ft输出。在学生开始编程任务之前,提醒学生注意思考以下问题:(1)ft和ct应当被定义成什么数据类型?为什么?(2)将摄氏温度转换为华氏温度的公式,应当如何在程序中表达? 预设学生的回答:由于温度可能含有小数,所以大多数学生可能会把摄氏温度和华氏温度都定义为
11、float类型。5.教师展示并点评部分学生的典型代码,同时可以请还没有完成任务的学生参考教材P68实践创新的参考程序。6.进一步提出问题,如果我们约定输的摄氏温度ct一定是整数(目前大多数气象预报也都只报告整数温度值),那么我们可以怎样修订之前的代码?引导学生将摄氏温度变量ct设定为int类型之后,再次运行代码,并观察结果。请学生讨论观测到的结果,并尝试着分析其中的原因。二、讲解新知识:算术运算(10分钟)1.在上述的温度转换例子中,我们注意到在给变量赋值的时候,并不是简单地直接赋值,而是需要对赋值的数据进行一定的加工和计算,比如通过特定的转换规则将摄氏温度转换为华氏温度。计算处理数据的方式,
12、就是我们今天要重点介绍的算术运算。2.结合教材中的表5-4,向学生介绍常见的算术运算符的类型和作用。对于常见的加减乘除运算,学生已经比较熟悉了,教师在课堂上不做更多的赘述。要特别引起注意的是除法运算,在C语:言中,除法运算有两种不同的表现形态。3.布置课堂任务三:请参照教材算术运算的示例程序,输入程序,观察运行结果。要求学生尝试以下4个代码片段,观察它们的运行结果,想想看这都说明了除法运算的哪些特性? int x=10; float y; y=x/3; printf (%f,y); float x=10; float y; y=x/3; printf(%f,y); int x=10; floa
13、t y; y=x/3. 0; printf(%f,y);float x=10;int y; y=x/3; printf(%f,y);结合学生的分析和回答情况,点评除法运算的特性。4.结合教材表5介绍“%、+、-”运算符,并讲评课堂任务三的运行结果。三、能力提升(15分钟)1.布置课堂任务四:完成三个小朋友分糖果的程序。提醒学生每一个糖果本身是不可分割的,请学生们开始编程之前要思考:我们应该用怎样的数据类型存储糖果的数量?2.交流展示学生完成的代码。注意引导学生观察程序代码中除法的用法。3.结合教材中的参考程序,提问:如果我们将x,y,z都设定为 I float类型,那么这个代码的运行结果将会产生怎样的变化?4.布置课堂任务五:完成教材P71的实践创新任务,输入一个三位正整数,求出每个数位上的数字之和。提醒学生注意取模运算符的使用。5.展示学生的典型代码并进行讲评。教师要注意展示多种不同的计算方法来获取各个数位的数字。在讲评的时候不要拘泥于某一种特定方法,而是应该多做一些示范,拓展学生的思维和眼界。四、复习小结(5分钟)本节课我们既讨论了各种算术运算符的意义,还结合各种编程任务的实践,巩固了上一次课所学的顺序结构程序的编程技巧。教学反思