枚举算法教学设计
一、教学目标
1、知识与技能目标:
熟悉用枚举算法设计程序的基本思路;学会使用枚举算法解决现实生活、学习中所遇到的问题;了解枚举算法的局限性。
2、过程与方法:
围绕获取谜语的线索这条主线,熟悉用枚举算法求解问题的基本过程,并把它运用到实际生活中去解决问题。
学会选择适当的枚举方法多角度分析问题,解决问题。
3、情感态度与价值观:
激发学生的学习热情,增强学生合作意识和创新意识。
引导学生关注枚举算法在社会生活中的应用,并以此培养学生将算法思想运用到解决实际问题中去的能力。
二、学情分析
本节内容的教学对象是高一上学期《信息技术基础》的学生,他们在前面基本上了解和学会了VB的简单编程,掌握了程序的基本控制结构以及基本语句的应用。
对枚举算法的概念有了一点的基础了解。
三、教材分析
1、本节主要内容介绍
枚举算法是程序设计中使用最为普遍、学生必须熟练掌握和正确运用的一种算法。
它利用计算机运算速度快、精确度高的特点,对要解决问题的所有可能情况,一个不漏地进行检查,从中找出符合要求的答案。
用枚举算法解决问题,通常可以从确定范围、验证条件这两个方面进行分析,把这两个方面分析好了,问题自然会迎刃而解。
2、重点难点分析
教学重点:
(1)、掌握枚举算法的基本思想。
(2)、根据题目确定枚举范围以及验证条件。
(3)、枚举算法的程序实现。
教学难点:
(1)、算法的程序实现。
四、教学设计理念
采用了以学生的学习和发展为中心,基于建构主义理论的任务驱动、情境教学、游戏教学等教学方法,突出自主、合作、探究等学习方法;强调信息技术与生活实际的联系,培养学生的逻辑思维能力、解决问题的能力以及创新意识等;设置多元化的评价方式,让学生掌握学习内容的同时,形成交流与评价的能力。
主要教学方法:讲授法、演示法、任务驱动、游戏教学、情境教学等
主要学习方法:小组协作学习、自主学习等
五、教学策略
以帮助老师找回QQ密码为主线,在教学过程中,围绕“情境导入→回顾算法思想→任务引领→合作探究→交流评价→总结拓展”的教学流程来展开教学活动。
六、教学环境
多媒体网络教室、多媒体教学软件、VB6.0中文版、iis + access配置等。
教学过程
一、情境导入(3分钟)
从教室询问学生喜不喜欢玩游戏,喜欢玩什么样的游戏开始
师:今天我们来玩一个游戏,到底是玩什么样的游戏呢,大家请看“猜谜语”程序文件。
文件中给大家提供了一句简短的游戏介绍,大家能猜出是什么样的游戏?
生:学生猜想
师:是不是才不吃出来呢,没关系,老师给了几个关键线索,想要知道什么线索,你得帮老师解决问题才知道。
我们先看第一个问题。
二、教学过程
(一)教师呈现问题1,请同学站起来回答(解决线索一 10分钟)
问题1:计算1-100内能被8整除的数,分别有哪些,总共几个这样的数。
生:学生回答问题1
学生一一列举出问题的答案
教师通过学生的回答引出枚举算法的概念和注意事项
枚举算法:按问题本身的性质,一一列举所有可能的解,并在逐一列举的过程中,检验每个可能解是否问题的真正解,若是就采纳这个解,否者就抛弃它
注意事项:
Next 循环变量
Do while条件表达式
语句块
loop
2、条件验证(选择语句)
if 条件表达式 then 语句
教师通过问题分析后,学生将线索一通过VB操作完成Private Sub Command1_Click()
Dim sum As Integer, i As Integer
List1.Clear
sum = 0
For i = _____________
If _______________ Then
sum = sum +_____
List1.AddItem Str(i)
End If
Next i
Text1.Text = Str(sum)
End Sub
教师请学生上机演示
教师小结得出线索一,还是猜不出谜语,继续完成线索二(二)教师呈现问题二(解决线索二 10分钟)
师:一张涂抹数据,其中十位数和百位数被涂抹了,已知十位数和百位数是相邻
的数,求这种数据有几种可能?
学生思考
教师请学生分析并回答问题,即枚举范围和验证条件
教师通过分析问题后呈现流程图的表达形式,让学生完成程序语言的操作。
Private Sub Command1_Click()
Dim s As Integer, i As Integer, j As Integer, n As Integer List1.Clear '列表清空
n = 0 '计数器清零
For i =_________________ '百位数范围(填空)
For j = _______________ '个位数范围(填空)
s = _______________ 's赋值(填空)
If _____________ Then '检验条件(填空)
List1.AddItem Str(s) '满足条件的数字添加到列表框中
_________________ '计数器累加(填空)
End If
Next j
Next i
Text1.Text = Str(n) '文本框输出总数
End Sub
教师小结得出线索二,还是猜不出谜语,继续完成线索三
(二)教师呈现问题三:百钱买百鸡(解决线索三 13分钟)
学生思考探究
教师请学生分析并回答问题,即枚举范围和验证条件
教师通过分析问题后让学生完成程序语言的操作并加以优化。
问题分析如下:
1、公鸡的只数a=1 to 100,母鸡的只数b=1 to 100,小鸡的只数c=100-a-b。
2、必须满足的条件是:
a+b+c=100且5a+3b+c/3=100。
3、用穷举法,当满足鸡数、钱数条件时,输出结果,再循环列举,直至输出所有的组合结果;程序中用For—Next语句
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
For a = 0 To 100
For b = 0 To 100
c = 100 - a - b
If (a + b + c = 100) And (a * 5 + b * 3 + c /3 = 100) Then List1.AddItem Str(a) & Str(b) & Str(c)
End If
Next b
Next a
End Sub
请学生填空并优化上述程序
学生讲解优化过程和原因
教师小结得出总的答案
学生小组简单游戏得出获胜方
三、教师总结3分钟
四、学生评价1分钟。