没有合适的资源?快使用搜索试试~ 我知道了~
信息技术支持下的算法案例及反思.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 8 浏览量
2023-09-22
13:27:19
上传
评论
收藏 104KB DOCX 举报
温馨提示
试读
13页
信息技术支持下的算法案例及反思.docx
资源推荐
资源详情
资源评论
信息技术支持下的算法案例及反思
【摘 要】 算法思维具有机械操作的特点,算法学习是一种数学活动,因此算法教学要重视信息技术支
持下的算法实现。本文以 Excel 为技术平台,认识到算法实现有利于学生认识、理解算法,有利于辨析、
建构算法,有利于优化、创新算法。在教学实践的基础上,认识到:理论教学与实践操作要作适当的动
态平衡;算法教学要加强学科知识内部和学科间的整合;算法教学要讲算法、重算理,进行算法化教学。
【关键词】 Excel 算法 算理 整合
作为一种为解决给定问题而需执行者去一步一步实施有穷操作过程的描述,算法是求解一个问题
所需步骤的提纲,是对解题过程的抽象和精确描述,“算法思想已经成为现代人应具备的一种数学素
养”,在新课程改革中算法正作为数学的重要组成部分而逐步“深入人心”。笔者以为算法教学一方面
要让学生体会算法中的算理,因为算理是算法的灵魂,同时也要让学生学会算法的适度形式化,学会算
法的实现。
一方面算法思维与通常的数学思维有迥然不同的特点,通过计算机的算法实现有利于学生认识和
接受算法思维,体会到算法的力量和操作机械的特点。另一方面,算法学习是一种数学活动,“实践操
作应成为学生学习的重要环节”,就像游泳本身也有理论,但更重要的是他必须下水去练习,老是站在
陆地上是永远也学不会游泳的,因此,“有条件的学校,应鼓励学生尽可能上机尝试各种算法.”事实
上,算法设计的优劣需要上机检验,算法设计的改进需要调试修正,更重要的是要培养学生利用数学理
论在计算机上实现问题解决的能力。本文将以 Excel 为平台谈谈如何在信息技术支持下进行算法教学。
一、Excel 环境介绍
Excel 作为一种普及性的软件,内置有丰富的函数,长于数据分析,并嵌有功能强大的宏语言作为
后台支撑,从而成为连接算法和计算机技术的一个理想平台。Excel 工作表有 “趋势填充”和“相对引
用”功能,通过双击或拖动即可产生结构相同的公式或大量的数据,能有效减少重复性劳动;与此同时,
VBA(Visual Basic for Application)是 Excel 自带的一种程序设计语言,它具有一般程序设计所具有的功能,
具有语法简单、通用性强的特点;两者均可以十分方便地实现算法。
值得指出的是,VBA 程序语言的实现在 Excel 中是以宏的形式出现的,其调用执行步骤为:在 Excel
工作表中,选择“工具/宏/Visual Basic 编辑器”,进入 VB 编辑器窗口;在 VB 编辑器窗口中选择“工具
/宏”,在弹出的对话框中,在“宏名称”栏内输入宏的名称,点击“创建”,出现宏主体语句 Sub 和 End
Sub,输入相应 Excel VBA 代码;选择“运行/运行宏”或按 F5 运行程序实现算法。
作为一种特定的程序语言,Excel VBA 有其自身特定的语法规则,与伪代码有一些差异,下表即为
两者间的重要不同:
分类
伪代码
VBA 程序语句
含义
赋值语句
m←20
m=20
将 20 赋给变量 m
Read a
a=InputBox( )
输入 a 的值
输入输出语
句
Print a
MsgBox( a )
输出 a 的值
For i From 1 To 100
…
End For
For i=1 To 100
…
Next i
For 循环语句
循环语句
While x≤10000
…
End While
While x<=10000
…
WEnd
While 循环语句
Excel VBA 中算法的输入输出可借助对话框函数 InputBox、MsgBox 来完成,也可借助于单元格属
性 cells(row,column)来完成,其中 row 为单元格的行号、column 为单元格的列号,例如语句 cells(1,2)=0
即表示将 B1 单元格赋值为 0,后者可以非常方便地将后台程序运行的结果显示在前台工作表中。
二、基于 Excel 的算法实现教学案例
2.1、认识、理解算法
如前所述,算法思维的机械性特点往往有“不可接受性”,借助信息技术实现算法可以让学生体
验编程过程,创立程序运行的“情境”,真实接触到计算机的“思维”过程。
案例 1、已知
2, 5a b= =
,试设计一个程序交换
,a b
的值。
初学算法语句,学生受数学中变量的影响,往往对算法变量的理解有一定的不可接受性,从而会
得到右图所示的伪代码 1-1,
将其转换成 VBA 语言运行
后会发现
,a b
变量值均为 5,
并没有得到我们想象的结果;
通过对变量值进行“追踪”可
以发现,原来在语句 30 中变
量
b
的值赋给
a
后
a
的值
便更新为 5 了,通过计算机
实现创设的情境对学生的震憾力是可想而知的,学生在真实的程序运行的“情境”认识到变量可以看作一
个存放数据的盒子,而且是最多只能存放一个数据的盒子,当一个新数据放
进去时,原来的数就被“挤”了出来。进一步的探究中,学生会认识到,交换
两个变量正确的做法是设置一中间变量
t
,用来暂时储存原先变量
a
的值,修
改后的伪代码为 1-2。
案例 2、根据图 2-1 的框图,列式写出最后 C 的值。
本题的变量较多,计算量也较大,学生往往很难“想象”结果,借助
于 Excel 工作表强大的数据统计功能,很容易就能实现算法,从而帮助学生
理解其中的算理。具体设置如下:将单元格 A 列、B 列、C 列、D 列分别作为
变量
n
、
A
、
B
、
C
,在第二列相应单元格分别输入 0、1、1、0 作为相应
变量的初值,在单元格 A3、B3、C3、D3 中分别输入公式“=A2+1”、“=B2+2”、“=2*C2”、
“=D2+B3*C3”,选中单元格 A3、B3、C3、D3 按住鼠标左键并向下拖动填充柄,最终算法实现效果如
图 2-2。在信息技术支持下,可以非常方便地帮助学生分析算法、理解算理,并且通过快捷键“ctrl+~”可
以方便地实现数据与对应公式的切换,通过对相应公式(如图 2-3)的查看可以帮助学生进一步理解相应
的算法。
a=2:b=5
a=b
b=a
cells(1,1)=”a=” & a
cells(1,2)=”b=” & b
VBA 1-1
10 a←2
20 b←5
30 a←b
40 b←a
50 Print a,b
伪代码 1-1
10 a←2
20 b←5
25 t←a
30 a←b
40 b←t
50 Print a,b
伪代码 1-2
图 2-1
图 2-2
图 2-3
2.2、辨析、建构算法
算法教学应提倡算法化,鼓励学生由实例的考察主动地去总结出相应的算法,经历一个由不那么
精确、不那么完整到比较精确、比较完善的发展过程,使“算法”不仅仅是宣布某个结果,而且也是学
生主动建构的结果.
案例 3、设计求满足条件
2 2 2 2 5
1 2 3 10n+ + + ×××+ >
的最小正整数的算法。
本题由于
n
的值事先不知道,故可使用 While 循环来实现算法,循环中可设置累加变量
S
、计数变
量
n
(见伪代码 3-1)。我们知道,影响循环语句结果的三要素是初始值、循环条件和循环体。本题的循环
条件可设置为“
5
S 10£
”,但循环体中的语句可以设置为
2
n n+1 ,S S+n ¬ ¬
,也可设置为
2
S S+n ,n n+1 ¬ ¬
,循环体中语句的顺序不同即影响变量初值的赋予(前者为
0, 0n S¬ ¬
,
后者则是
1, 0n S¬ ¬
),也导致输出结果的不同(前者为
n
,后者则是
1n -
)。要想帮助学生透彻
理解程序,必须从“变量的变化”入手,分析清楚每次循环中变量值是如何变化的,借助于信息技术,
设置相应的 VBA 程序(前者见 VBA3-1,后者见 VBA3-2),并在循环体中增加变量的输出,借助于
cells(row,column)语句将变量结果输出到工作表中,从而便于查找出错环节并加以修正,在分析算法过
程中可起到事半功倍的效果。
事实上,数学中有很多相当精妙的算法公式,如
2
2 2 2
1 1 1
1 ...
6 2 3 n
p
= + + + +
等,这样的公式的
合理性显然已超出学生的“想象”,通过设置算法由计算机来“算”,一方面可以提高学生算法设计能
力,更能感受到算法的力量,这显然是“纸上谈兵”所难以企及的。
2.3、优化、创新算法
算法的形成和发展,需要进行不断地感知、观察、抽象、识别、归纳,经历发现算法、利用算法、
选择算法、推广算法等一系列思维过程,在“做“的过程中感受算法学习是一种充满探索、发现、创造
的活动。
案例 4、写出求
1 1 1 1 1 1 1
1
2 3 4 5 6 99 100
- + - + - + ×××+ -
的一个算法。
10 ①
20 While ②
30
40
50 End While
60 Print ④
伪代码 3-1
③
循环初值
循环条件
循环体
结果输出
n=0:S=0
While S<=10^5
n=n+1;S=S+n^2
cells(n,1)=n
cells(n,2)=S
Wend
VBA 3-1
n=1:S=0
While S<=10^5
S=S+n^2 ;n=n+1
cells(n,1)=S
cells(n,2)=n
Wend
VBA 3-2
剩余12页未读,继续阅读
资源评论
南抖北快东卫
- 粉丝: 73
- 资源: 5584
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功