《一级数组的定义与使用》教学设计deflate.doc

上传人:pu****.1 文档编号:549423707 上传时间:2023-05-03 格式:DOC 页数:10 大小:100KB
返回 下载 相关 举报
《一级数组的定义与使用》教学设计deflate.doc_第1页
第1页 / 共10页
《一级数组的定义与使用》教学设计deflate.doc_第2页
第2页 / 共10页
《一级数组的定义与使用》教学设计deflate.doc_第3页
第3页 / 共10页
《一级数组的定义与使用》教学设计deflate.doc_第4页
第4页 / 共10页
《一级数组的定义与使用》教学设计deflate.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《《一级数组的定义与使用》教学设计deflate.doc》由会员分享,可在线阅读,更多相关《《一级数组的定义与使用》教学设计deflate.doc(10页珍藏版)》请在金锄头文库上搜索。

1、国家级教学设计 教 学 设 计一维数组的定义与使用 哈尔滨市第二职业中学 马冬艳课 题:案例4.1:单科学生成绩管理教者、 设计者:哈二职 马冬艳教 材 选 自:技能型紧缺人才系列教材游金水主编C语言程序设计第4章数组第一节内容计 划 学 时:1学时课 型:新授课授 课 班 级:三年六班授 课 时 间:2011年3月20日知识目标:(1)一维数组的定义及其输入和输出方法。(2)冒泡排序法的应用能力目标:(1)熟练运用一维数组实现学生单科成绩的输入、存储和输出。(2)掌握应用一维数组实现学生单科成绩的统计。(3)掌握应用一维数组实现学生单科成绩的排序。情感态度目标:(1)培养自主学习、探索新知识

2、的能力。(2)培养举一反三、分析问题和解决问题的能力。(3)培养学生认真思考、积极参与、提高学习兴趣、增强自信心、协同合作的能力。教学重点:(1)一维数组的应用(2)引导学生按照“干什么怎么干为什么干”的程序进行操作,学会自主探究式的学习方法。(3)建立正确的编程思想。教学难点:(1)排序算法的实现过程。(2)编程思想的建立。(3)如何将信息技术真正运用到日常生活工作中。教 法:启发式、任务驱动法、提问法教 具:多媒体课件教学过程:一、组织教学:(计划时间:1分钟)二、设置问题情境,导入新课: (计划时间:1分钟)演示课件:小狗cc一脸愁容:“期中考试结束了,老师让我把C语言这科的成绩排一下榜

3、,还要计算出及格和不及格的人数,可是我们班有60多位同学呢,这么多同学我可怎么能算得过来呀?”同学们,你能帮助它吗?展示课题:案例4.1:单科学生成绩管理【设计目的:通过设置问题情境,激发学生学习兴趣,明确学习任务,在任务驱动下,使学生尽快进入状态,并能积极思维,进而引入到本节课题。】三、讲授新课:(计划时间:29分钟)1、案例分析:(干什么-怎么干-为什么干)(计划时间:4分钟)(1) 干什么:教师设问,学生讨论-要想实现对学生单科成绩的管理,程序中需要具备哪些功能模块?我们应先解决什么问题?设计目的:通过分析题目,确定功能模块,和解题步骤,从而培养学生逻辑思维和模块化的程序设计思想。单科成

4、绩管理系统统成绩的输入成绩排序统计成绩及格情况的输入成绩的输出(2)怎么干:通过上一章模块化程序设计的学习,我们不仿把每一个功能模化作为一个函数来编写,即input(),output(),count(),sort()函数。(巩固旧知识) 学生直接操作课件,完成案例的实现:将5个模块设计成氢汽球形状,开始时汽球都是扁的,需要完成每个模块里相应的程序填空,一个汽球便充满,才能进入下一个模块的学习,只有所有的模块都编写完成,所有汽球充满气,则问题得到解决。学生需动脑筋,如果遇到困难时可点击智囊包,这里有解决相应问题的知识点,从而获得知识上的帮助。(3)为什么干:在整个案例实践的过程中,也是学生学习新

5、知识的过程,教师通过适时引导学生进行模块的逐一编写使学生建立编程思路(如只有完成数据的输入才可进行数据操作最后输出),同时只有一个模块编写成功才能进入下模块的编写,以激发学生学习的热情。在每一个模块编写后,教师及时引导学生总结该模块的实现所需的知识点,并通过小练习强化掌握知识点。并作竞赛成绩记录,以随时调动学生学习热情。通过设置智囊包,培养学生自主学习,探究式学习的习惯与能力,同时将学生2人一组,目的在于为学生创设学习的过程中相互交流的学习氛围,同时培养学生与人协作的能力。其中重点引导学生进行输入和排序模块的编写,输出模块是在完成输入模块的基础上,学生直接填写完成,培养学生触类旁通的编程思维。

6、统计模块因其完全是运用旧知识,故和输出模块一样采用小组竞赛形式进行编写,从而再一次激发学生学习兴趣和运用旧知识解决新问题的能力。2、具体讲解如下:师:在这些模块设计中大家是否发现我们都需要对一组数据进行操作,我们以前要处理的数据很少,2个,3个,最多不超过4个,而现在我们要处理的是60多个,甚至更多,我们还能一个一个的输入、输出、一个一个的进行比较吗?显然不行,这就用到了我们今天要学习的知识:数组,那么到底什么是数组,我们应该怎么运用数来解决我们的问题呢,就请同学们带着这些问题进入到电子课堂里用你们的智慧帮助小狗cc吧!要想完成左面的填空,你需要知识下面的知识:1 什么是数组?2 数组的维数?

7、3 怎样定义数组?4 怎样给数组赋值?5 如何引用数组元素?请填空:input() int score60;/*一维数组的定义*/int i;printf(请输入%d个学生的成绩:n,60); for(i=0;iMAX;i+) scanf(%d,&scorei);/*采用单循环为数组元素赋值*/点击input()模块:学生自主学,教师及时点拨与总结(计划时间:5分钟)智囊包:1、一维数组的定义。数组同变量一样,也必须先定义、后使用。只有一个下标的数组称为一维数组。一维数组的定义格式为:类型说明符数组名常量表达式;(1)“数据类型”是指数组元素的数据类型。(2)数组名,与变量名一样,必须遵循标识

8、符命名规则。(3)“常量表达式”必须用方括号括起来,指的是数组的元素个数(又称数组长度),它是一个整型值,其中可以包含常数和符号常量,但不能包含变量。注意:C语言中不允许动态定义数组。(4)数组元素的下标,是元素相对于数组起始地址的偏移量,所以从0开始顺序编号。(5)数组名中存放的是一个地址常量,它代表整个数组的首地址。同一数组中的所有元素,按其下标的顺序占用一段连续的存储单元。2、一维数组元素的引用。数组必须先定义后使用。C语言规定只能逐个引用数组元素而不能引用整个数组。数组元素的引用格式为:数组名下标。(1)“下标表达式”可以是任何非负整型数据,取值范围是0(元素个数-1)。特别强调:在运

9、行C语言程序过程中,系统并不自动检验数组元素的下标是否越界。因此在编写程序时,保证数组下标不越界是十分重要的。(2)一个数组元素,实质上就是一个变量,它具有和相同类型单个变量一样的属性,可以对它进行赋值和参与各种运算。(3)在C语言中,数组作为一个整体,不能参加数据运算,只能对单个的元素进行处理。3、对一维数组的操作因能逐个引用数组元素,故可采用单循环对数组元素的赋值与输出等操作。互动操练:(计划时间:1分钟)单选题:1.以下一维数组a正确的定义是( )A int a(5) B int n=5,an C int aSZ 其中SZ为符号常量2引用数组元素时,其下标的数据类型允许是( )A int

10、 Bfloat Cdouble Dchar3.在定义int a5以后,对a的引用正确的是( )Aa0 Ba1 Ca3 Da5设计目的:及时进行教学反馈,为后序教学的顺利进行做好铺垫。记录小组竞赛成绩。点击output()模块:学生自主学习(计划时间:2分钟)请填空:void output()/*一维数组的输出*/ int score60; int i;for(i=0;iMAX;i+) printf(%dt,scorei);printf(n);/*换行*/设计目的:在讲解成绩输入模块的编程基础上,让学生自行编写成绩输出模块的编写,并采用小组竞赛方式激励学生学习热情,建立自信心。怎样按成绩进行排序

11、呢?引出冒泡法排序点击sort()模块:教师引导学习(计划时间:5分钟)要想完成左面的填空,你需要知识下面的知识:1、 什么是冒泡法?2、 如何表示数组中的相邻元素?3、 你还有其它方法实现排序吗? 排序源程序:void sort(int score)/*用冒泡法对成绩进行降序排序*/ int i,j,flag,temp; for(i=0;iMAX-1;i+) flag=0;for(j=0;jMAX-1-i;j+) if(scorejscorej+1) temp=scorej;scorej=scorej+1;scorej+1=temp; flag=1;/*一趟排序中有出现数据交换*/ if(f

12、lag=0) break;/*一趟排序中没出现数据交换,数据已经有序*/ 智囊包:冒泡法排序的思路:比较两个相邻的数,将大的数往后调,一趟排序后最大的数沉到最后。本例要求是降序排列,因此将小的数往后调。排序过程演示:flash动画 选择法排序思路: 排序过程演示:flash动画学生观看动画自行总结排序思路与要点。对总结归纳好的组加分。设计目的:动画演示,直观形象,使难点降低,帮助学生理解排序的过程和方法。学生自行总结要点,培养学生观察能力,分析能力、总结规纳能力和语言表达能力。选择法排序,作为延伸内容,学生观看演示后总结规律,课后思考怎样实现,引导学生学会自主学习,主动学习的习惯,扩展学生思维

13、,一题多解,提高编程能力。点击count()模块:学生自主学习(计划时间:3分钟)void count()/*统计及格人数和不及格人数*/ int score60; int i,num=0; for(i=0;i=60)num+;printf(及格人数为:%d;不及格人数为:%d。n,num,60-num);设计目的:学生自行完成及格与不及格模块的编写,巩固选择结构知识。记录竞赛成绩。恭喜你,现在4个汽球均已充满了气,但还飞不起来,因为主模块还没有编写好:点击main()模块:整合功能模块,完成整个程序的编写。(计划时间:4分钟)要完成左面的程序填空,需弄清如下问题:1、 怎样将以上各自独立的模块整合成一个主模块?即如何调用各模块?2、 数组怎样作为参数进行传递?3、 如果100个数或更多的数怎样快捷的修改程序,实现操作?# include # define MAX 60main ( )/*声明各函数类型*/void input (int score);void output(int score);void count(int score);void sort(int score);int scoreMAX;/*定义数组*/input(score);/调有数组*/printf(n您刚才输入的是:n);outp

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 小学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号