视频标签:算法与程序,抽奖,程序设计
所属栏目:信息技术优质课视频
视频课题:高中信息技术教科版选修1算法与程序设计《“抽奖”程序设计》 
教学设计、课堂实录及教案:高中信息技术教科版选修1算法与程序设计《“抽奖”程序设计》
“抽奖”程序设计
教学主题:《“抽奖”程序设计》 一、教学目标
知识目标:
1、 会使用RND函数生成某个区间的随机数。 2、 掌握do While„„Loop循环结构的应用。 3、 熟练运用Excel的VB编辑器使用。 能力目标:
1、通过学习随机函数,可以设计出很多和随机有关的程序案例。例如,点名程序、验证码程序,等等。 2、通过编写代码,提高学生对循环结构的理解和应用能力 3、通过自主探究、完成任务培养学生的自主学习能力。 情感态度及价值观 :
1、 充分认识到程序设计语言可以应用到其他软件中,例如Excel,激发学生学习编程的热情。 理解算法是程序的灵魂,语言是实现算法的工具,培养学生良好的编程素养,做到知识的举一反三。
二、教学重点、难点
重点:RND函数和do while„„Loop循环结构 难点:DoEvents函数 三、教学资源 使用技术:
Excel办公软件、Moodle平台、学案、半成品程序、CamStudio制作微课。 设置环节:
在“讲授环节任务、探究环节任务、拓展环节任务、练习”中应用上述技术。
讲授 黑板板书
一、程序设计思路
思路:“开始”循环随机显示人名 “暂停”结束循环 “开始”按钮分析如下: 1、显示人名
[分析]VB提供Cells( i , j )函数可以提取Excel文件sheet1表中第i行,第j列单元格的值。 例如:标签=Sheet1.Cells(i, j)
[讨论回答]程序如何随机显示Excel文件第一列单元格的值? 2、随机
[分析]i就是要产生的表示行号随机数,i有范围。人名存在第2行至第53行, i要产生[2,53]之间的随机整数。
[讨论回答]如何用Rnd和Int函数产生[2,53]之间的随机整数?
如何产生[a,b]之间的随机整数? 3、do while„„Loop循环
[分析]程序重复随机显示人名所以要用未知循环次数的循环结构表示。
Do While 条件 „„ Loop
当“条件”成立执行循环,当“条件”不成立结束循环。
学生跟随老师黑板上的板书分析该程序的设计思路,需要讨论问题并回答问题。 请两位学生回答:
标签=Sheet1.Cells(i, 1) i就是要产生的表示行号的随机数。
i=Int(Rnd*52+2) 标签=Sheet1.Cells(i, 1) [a,b]的随机整数通式: Int(Rnd*(b-a+1)+a)
熟练掌握原理才能在算法中更灵活运用
讲解 黑板板书
[讨论]程序的循环条件是什么? 观察程序界面
[分析]当点击暂停后,暂停按钮不可用,当点击开始按钮后,暂停按钮恢复可用。在暂停按钮Click事件里设置暂停按钮Enabled属性=false,表示点击了暂停按钮。点击开始按钮后,暂停Enabled=true,所以循环条件为:暂停按钮Enabled属性值,代码如下: Do while 暂停按钮Enabled i= Int(Rnd*52+2) 标签=Sheet1.Cells(i, 1) Loop
“暂停”按钮分析如下: 暂停Enabled=false
学生观察程序界面思考如何表示点击“开始”或“暂停”按钮
结合属性值能让学生在设计程序时灵活的表达自己的想法。
二、算法描述 1、“开始”click事件 “暂停”按钮Enabled =True Do while “暂停”按钮Enabled i= Int(Rnd*52+2)
标签=sheet1.Cells(i,1) Loop
2、“暂停”click事件 “暂停”按钮Enabled=false
需要学生用伪代码来表示算法过程。
训练学生把算法描述转变成代码的习惯,培养学生动手实践能力。
实践 微视频、学案、半成品
三、编写程序 名单存储在Excel文件里,可以在Excel的VB编辑器里编写程序。
在充分理解知识点的基础上完成“抽奖”半成品。 体验Excel编程乐趣,更好的
1、 在Excel里运
用VB编程可以激发学生
1、界面设计
2、编写代码
“开始”Click事件:
“暂停”Click事件:
运用随机函数和循环结构
编程兴趣 2、 体验程序设
计不仅仅局限在一个软件里,可以拓展学生编程视野。
四、调试运行
[问题]出现电脑卡住现象,暂停按钮没有响应,必须需启动任务管理器来终止。
[原因]VB是单线程的,当循环条件为True时,CPU一直在执行do while循环。虽然按下暂停按钮会使循环条件为假,但由于是单线程,程序会一直执行应当前的do while,不会响应其他按事件的代码,所以点击“暂停”按钮不起作用。 [解决]do while 循环里加入doEvents函数 doEvents函数的功能是程序在执行循环的同时,还会查看有否有其他事情要做。
学生调试的时候会遇到问题 分析问题出现的原因,根据老师的讲解来解决问题。
Do While „„ „„ „„ DoEvents Loop
拓展学生的编程技能,激发编程兴趣。
完善 参考学案提示
五、程序完善 [完善1] 添加“中奖次数”,显示在第2列。
[完善2] 抽奖名单分布在多行多列,如何随机找到?
学生需要对程序进行2个完善。
训练学生思维发散,体检信息化解决问题的优势。
拓展 学案
六、延伸拓展
[问题]类似的程序还有很多,例如点名器、随机验证码,都可以运用这种随机+循环算法来解决实际问题,请同学们感兴趣课后实践。
鼓励有兴趣的学生课余自主学习进行更深入的探索。
学会分析,能够针对不同的案例灵活选用语言结构进行编程。
总结
练习
七、总结
1、根据具体情况灵活运用随机函数 2、正确运用循环语句解决问题
3、利用Moodle平台,提供相关知识练习
自我总结,课下完成评测练习 体会算法是程序
的灵魂,语言是工具,只有好的算法才能高效的解决问题。
视频来源:优质课网 www.youzhik.com