算法在“VB”环境下的教学演示

算法在“VB”环境下的教学演示
提要:本文是算法在“VB”环境下的教学演示。文章通过三个实例揭示了如何将算法原理和程 序框图转化为“VB”程序;如何借助“VB”程序上机实践来进一步理解算法的实质(如二分法求近 似根) ;以及如何借助“VB”的循环语句解决较复杂的算法案例。目的是通过“VB”程序对算法进 行正确性检验,激发学生对算法学习的兴趣,促使其对算法原理的深刻理解。 关键词:VB 算法 程序 教学 “现代信息技术的广泛应用正在对数学课程内容、 数学教学、 数学学习等方面产生深刻的影响。 高中数学课程应提倡实现信息技术与课程内容的有机整合 (如把算法融入到数学课程的各个相关部 分) ,整合的基本原则是有利于学生认识数学的本质。 ”数学新课程标准关于“信息技术”的教学建 议是:在教学中,应重视利用信息技术来呈现以往课堂教学中难以呈现的课程内容。同时,应尽可 能使用科学型计算器、计算机及软件、互联网,以及各种数学教育技术平台,加强数学教学与信息 技术的结合。数学新课程标准对算法内容的教学建议是:对算法内容,应着重强调使学生体会算法 思想、提高逻辑思维能力,不应将算法简单处理成程序语言的学习和程序设计,同时应通过具体实 例的上机实现(或编程)帮助学生理解算法思想及其作用。 新课程标准实验教科书《数学 3》 (必修,人教 A 版)对算法有如下描述: “现代意义上的‘算 法’ 通常指可以用计算机来解决的某一类问题的程序或步骤, 这些程序或步骤必须是明确和有效的, 而且能够在有限步之内完成” 。算法实际上就是解决问题的一种程序性方法,它通常指向某一个或 一类问题,而解决的过程是程序性和构造性的。用自然语言和程序框图来表示算法是可以的,但是 用程序语言来表示算法和进一步认识算法仍然是必要的: 一是为了解决某个具体问题, 我们设计的 算法包含大量烦琐的计算、 复杂的作图等操作, 这时计算机强大的数据处理功能可以帮我们轻松地 完成这些重复性的机械步骤;二是“计算机解决任何问题都要依赖算法” ,计算机解决问题的过程 就是对算法的执行过程,但这个算法必须是计算机能理解的语言描述,而我们采取“VB”这种程序 设计语言就是计算机可以理解的语言。 “VB”是可视化的、面向对象的、采用事件驱动方式的结构 化高级程序设计语言。我们可以轻松地画出用户界面,同时它的 BASIC 语言简单、易学,与教科书 使用的类似 BASIC 的语句形式和语法规则能很好的融合,通过“VB”程序设计语言就可轻松实现算 法演示,事实上办公软件 EXCEL 自带的 VBA 就是简单的“VB”程序设计语言。以下就从教科书的几 个实例探讨如何进行算法教学。

一、用循环结构计算数列的前 n 项和 设计一个求 12 ? 2 2 ? 32 ? ? ? 1002 的算法 分析: 用循环结构解决本题. 设累加变量为 s, 其初始值为 0; 计数变量为 i, 其值从 1 变到 100. 具 体算法用程序框图表示如下: 根据程序框图,我们直接用 WHILE ? WEND 语句在“VB”下演示,学生能清楚的看到结果,同时可 求任意项的和,体会算法的通用性。

Private Sub Command1_Click() Dim n As Long, s As Long n = InputBox("请输入 n:", "从 1 到 n 求平方和", 100) s = 0 i = 1 While i<=n s = s + i * i i = i + 1 Wend Print "1 到 "; n; " 的平方和是:"; s End Sub 注:其和可以用公式 n(n+1)(2n+1)/6 验证。

二、用区间二分法求方程的近似解 写出用区间二分法求方程 x 3 ? x ? 1 ? 0 在区间[1, 1.5]内的一个近似解(误差不超过 0.0001)的一 个算法。 分析:在“VB”环境下,只要画出界面,输入根据程序框图编写的程序代码,就能判断方程解的范 围,计算出方程的近似解,在计算机上操作可以反复进行,有利于理解二分法的含义。

Private Sub Command1_Click() a = Val(Text1.Text)

b = Val(Text2.Text) e = Val(Text3.Text) fa = (a * a - 1) * a - 1 fb = (b * b - 1) * b - 1 If fa * fb > 0 Then Text4.Text = "求解范围错!" Else Do x = (a + b) / 2 f = (x * x - 1) * x - 1 If f * fa > 0 Then a = x: fa = f Else b = x: fb = f End If Loop Until f = 0 Or Abs(b - a) < e Text4.Text = Int(x / e + 0.5) * e End If End Sub

三、用秦九韶算法求多项式的值 设计求多项式当 x=5 时的值的秦九韶算法。 分析: 秦九韶算法是求一元多项式的值的一种方法.我们把求 f(x)= an x n ? an?1 x n?1 ? ? ? a1 x ? a0 的 值转化为求递推公式中 vn 的值.通过这种转化,把运算的次数由至多
n( n ? 1) 次乘法运算和 n 次加 2

法运算,减少为至多 n 次乘法运算和 n 次加法运算,大大提高了运算效率.因此,秦九韶算法是一 个很好的算法,而这种用递推公式表示的步骤可以用循环结构来实现.对照教科书的程序框图,我 们用“VB”实现如下:

Private Sub Command1_Click() x = InputBox("请输入求值数 x 的值", "秦九韶算法演示", "") n = InputBox("请输入 n 的值", "秦九韶算法演示", "") a = InputBox("请输入 an 的值", "秦九韶算法演示", "") v = a i = n - 1 While i >= 0 Print "i="; i a = InputBox("请输入 ai 的值", "秦九韶算法演示", "") v = v * x + a i = i - 1 Wend Print v End Sub

注:本文所有程序在“VB”下测试通过! 参考文献: 1)孙家启 潘地林等 《Visual Basic 程序设计教程》 02 年 9 月第二版 2)教育部师范教育司组织编写 《现代教育技术》 98 年 11 月第一版


相关文档

算法初步在VB环境下的教学探索-2019年精选文档
“VB”环境下的算法教学探讨_数学论文
算法初步在VB环境下的教学探索-2019年教育文档
多媒体教学中模拟教具的开发应用——基于VB环境下数字电子技术演示程序设计
新形势下VB教学方法的探讨-2019年文档
信息技术环境下VB程序设计课程教学之我见
基于VB环境下的教学模型库的开发与研究
VB环境下不规则三角网的算法设计与实现
VB环境下计算机与全站仪的数据通讯方法
电脑版