绿色圃中小学教育网

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 6872|回复: 2
打印 上一主题 下一主题

信息教学中一道课本习题的几种算法

[复制链接]
跳转到指定楼层
楼主
发表于 2014-2-26 22:26:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
信息教学中一道课本习题的几种算法
渭源一中   冯天行
高中信息技术课程以义务教育阶段课程为基础,以进一步提高学生的信息素养为宗旨,强调通过合作解决实际问题。高中信息技术课程强调结合高中学生的生活和学习实际设计问题,让学生在活动过程中掌握应用信息技术解决问题的思想和方法;鼓励学生将所学的信息技术积极地应用到生产、生活乃至信息技术革新等各项实践活动中去。高中新课标教材《算法与程序设计•选修1》以问题解决和程序设计为主线,通过精彩的程序片段引导学生分析问题、确定算法、编写程序、调试程序等使学生逐渐学会使用计算机程序解决问题的方法。结合自主学习、合作讨论、探究学习、实践操作、学习评价、拓展学习等学习过程,充分调动了学生的学习积极性,同时学生的学习潜能也得到发挥。下面就第二章第三节《程序的选择结构》课后练习(p49)第2题对于同学们不同算法的实现作一比较和说明。
题目:编写一个程序,输入三个数,输出其中的最大数。
在上一节课学生学习了选择结构。选择结构的特点是它根据给定的条件判断在两条或者多条可能的路径中选择一条,各条路径分别做不同的处理,无论条件是否成立,不同的处理结束以后都执行其后续语句。条件语句的格式:

If 条件 Then 语句组 1  Else  语句组 2
或者               If 条件  Then
                      语句组1
Else
语句组2
End If

与顺序结构相比,选择结构就是程序的执行不再完全按照语句的顺序执行,而是根据某种条件是否成立来决定程序的走向。学生已经学习了程序的选择结构,给学生布置这道题,然后分组讨论,形成算法,到计算机上调试。从完成的VB程序中我们发现了常见的4种算法,下面对于这几种算法进行描述和对比。

1 使用IF嵌套法
Dim a,b,c as integer
a = val(inputbox("请输入a"))
b = val(inputbox("请输入b"))
c = val(inputbox("请输入c"))
If  a>b then
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩
回复

使用道具 举报

沙发
 楼主| 发表于 2014-2-26 22:26:11 | 只看该作者

   If a>c then
      Print a
   Else
      Print c
   End If

Else
     If  b>c  then
         Print b
     Else
         Print c
     End If

End If


2        使用赋值法
Dim a,b,c,max as integer
a = val(inputbox("请输入a"))
b = val(inputbox("请输入b"))
c = val(inputbox("请输入c"))
If a>b then
max = a
Else
max = b
End If
If  max>c  then
Print max
Else
Print c
End If


3        使用逻辑表达式法

Dim a, b, c As Integer
a  =  val(InputBox("请输入a"))
b = val(InputBox("请输入b"))
c = val(InputBox("请输入c"))
If a > b And a > c Then
Print a
Else
If b > c Then
Print b
Else
Print c
End If
End If
回复

使用道具 举报

板凳
 楼主| 发表于 2014-2-26 22:26:15 | 只看该作者




4        使用函数调用法
Public Function max(a1 As Integer, b1 As Integer) As Integer
If a1 > b1 Then
max = a1
Else
max = b1
End If

End Function

Private Sub Command1_Click()
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim m As Integer

a = val(InputBox("请输入a"))
b = val((InputBox("请输入b"))
c = val((InputBox("请输入c"))
m = max(a, b)
Print max(m, c)
End Sub


四种算法相同的部分有变量定义,inputbox函数输入3个数,最后输出最大数。第一种算法是常见的IF嵌套的方法,用了3个IF语句很容易理解,但是代码较多;第二种算法用赋值语句把较大的数放到变量MAX中,用了2个IF语句,没有嵌套很简洁;第三种算法使用了逻辑表达式和IF嵌套,用了2个IF语句;第四个算法调用自定义函数实现;虽然四种方法都实现了三个数求其中最大值的任务,但是学生最易接受的是第二种赋值算法。通过对不同算法进行对比使学生知道同一个问题的算法实现并不是单一的,可以设计出多种算法,通过汇总和对比不同的算法既可以激发学生的学习兴趣,还可启发学生多角度的思考问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

绿色圃中小学教育网 最新主题

GMT+8, 2025-1-4 02:29

绿色免费PPT课件试卷教案作文资源 中小学教育网 X3.2

© 2013-2016 小学语文数学教学网

快速回复 返回顶部 返回列表