摘要:
《VB程序设计》是全国计算机等级考试和江苏省计算机等级考试必考的科目之一。源于其易学易用,易编写,易维护,数据链接方便,可视化,结构化等特点;深受各大中专院校学生喜爱,等考参加人数逐年增加,但与此同时,计算机等考给学生提出了更高的要求,笔者认为计算机等考不仅要求学生“知其然”更要“知其所以然”,要求学生爱上这门课,要求学生掌握这门语言的精髓。本文从教学方法以及具体的教学内容入手,深刻探究《VB程序设计》的课堂教学新思维。
关键词:语言、语法、新思维、实践
Summary: 《VB Program Designing》 is one test of the NCRE and Jiangsu Province Computer Rank Examination, originated from easy to learn and use, easy to design, easy to link data, visible, structured etc. Deeply loved by the majority of College Students, the number of participants has increased year by year, but meanwhile, Computer test put forward higher requirements to students. The author thinks students should be not only “knowing its however” but also “knowing why”, must fall in love with it, master essence of the language. This article proceeds with the teaching methods as well as specific teaching contents, deeply probes into the “VB programming” new teaching thinking.
Keywords: Language、Grammar、New Thought、Practice
笔者教授《VB程序设计》这门课程已十载有余,教材几经更调,然自感“万变不离其宗”,知其终归“语言”也!既然本缘“语言”,故必得其之精髓。
一、 本是同根生——“英语”
严格的讲,也与全人类使用最多的语言“汉语”师出同门,但计算机及计算机语言始创于“英氏”,故我们可以将VB语言和“英语”语言作个简单的比较:学习英语必须首先要学好语法,语法相当于“通信规程”,使用正确的语法才能很好的被别人理解,这是人与人直接的沟通。但是人和计算机的沟通需要的是编译器,编译器是人和机器的桥梁。编译器的主要工作流程是:源代码(Source Code)→预处理器 (Preprocessor)→编译器(Compiler)→汇编程序(Assembler)→目标代码(Object Code)→链接器 (Linker)→可执行程序(Executables)。编译器首先要做的一项工作就是:根据固有语法要求对代码进行语法分析,所以针对VB语言来说,要求学生掌握基本语法是必须达到的基本素质。VB基本语法特点包括:字符集,数据类型,常量,变量,函数,运算符,顺序结构,选择结构,循环结构,还有数组。
二、 美丽的外表——“控件”
控件是VB通过控件工具箱提供的与用户交互的可视化部件,在窗体中使用控件可以方便地获取用户的输入及显示程序的输出,必须熟练掌握控件的使用,才能游刃有余地开发应用程序。VB的控件分为内部控件、ActiveX控件和可插入对象三类。
三、 优雅的内涵——“结构化”
1966年,Bohra和Jacopini提出来三种基本结构,认为算法和程序都可以由这三种基本结构组成。这三种基本结构是:顺序结构,选择结构和循环结构。无论多么复杂的程序,都可以使用这些基本结构按一定的顺序组合起来。这些基本结构的共同特点是:一个入口,一个出口,每一部分都有机会被执行到,不存在无休止的循环。
四、 飞翔的翅膀——“过程”
VB应用程序由三种模块组成,即窗体模块(Form,文件扩展名是.frm)、标准模块(Module,文件扩展名是.bas)和类模块(Class,文件扩展名是.cls)。窗体模块中可以包含事件过程,Function过程,Sub过程;标准模块中可以包含Sub Main过程,Function过程,Sub过程;类模块中可以包含Property过程,Function过程,Sub过程。
“过程”在VB中的应用,其优点主要有:程序结构更加清楚,减少代码编写的重复性,便于多次调用,提高程序运行效率,同时也便于排错纠错。过程通过“参数传递”的方式实现主调程序和被调程序之间的数据通信。尤以“参数传递”谨慎至要。笔者举一小例。源代码如下,求其输出结果:
Dim x%,y%,z%
Private Sub Form_Click()
Dim x%,y%,z%
x=1:y=2:z=3
Call Sub1(x,x,z)
Call Sub1(x,y,y)
End Sub
Private Sub Sub1(x%,y%,z%)
x=3 * z
y=2 * z
z=x + y
Print x;y;z
End Sub
经分析:左半部分为主调程序,右半部分为被调程序。开头第一行定义的模块级变量x、y、z,尽管和主调程序Form_Click中的变量名称一样,但是其作用范围是右半部分的Sub1被调程序。所以笔者建议的解题过程是:
1、修改变量名称(将Sub1中所有的x,y,z改为x’,y’,z’,如下所示),便于区分。
Private Sub Sub1(x’%,y’%, z’%)
x’=3 * z’:y’=2 * z’:z’=x’ + y’:Print x’; y’; z’
End Sub
2、第一次调用Sub1(x, x, z),将实参和形参结合,画出内存存储单元格状态示意图:
| x | x’ | y’ | 1 | → | 9 | → | 6 |
(经观察x,x’和y’共用一内存单元格,初始值为1)
| z | z’ | 3 | → | 12 |
(经观察z和z’共用一内存单元格,初始值为3)
3、执行Sub1中的四行代码:
①x’=3*3=9(立刻修改上图x’所在内存单元格的值,将1改为9,如上图所示)
②y’=2*3=6(立刻修改上图y’所在内存单元格的值,将9改为6,如上图所示)
③z’=6+6=12(立刻修改上图z’所在内存单元格的值,将3改为12,如上图所示)
④按紧凑格式输出x’,y’,z’的值6;6;12
4、第二次调用Sub1(x, y, y),将实参和形参结合,画出内存存储单元格状态示意图:
| x | x’ | 6 | → | 6 |
(经观察x和x’共用一内存单元格,初始值为6)
| y | y’ | z’ | 2 | → | 4 | → | 10 |
(经观察y,y’和z’共用一内存单元格,初始值为2)
5、执行Sub1中的四行代码:
①x’=3*2=6(立刻修改上图x’所在内存单元格的值,将6改为6,如上图所示)
②y’=2*2=4(立刻修改上图y’所在内存单元格的值,将2改为4,如上图所示)
③z’=6+4=10(立刻修改上图z’所在内存单元格的值,将4改为10,如上图所示)
④按紧凑格式输出x’,y’,z’的值6;10;10
6、至此,解题完毕,输出两行结果分别是:6;6;12和6;10;10
五、 个人提高“等考通过率”的举措
1、 课堂45分钟最关键
课堂45分钟是教师综合利用自身素质和能力对教材内容和精髓的集中迸发和体现,是学生又好又快掌握课本知识的最佳途径,所以应该力求课堂教学的实际效果。在教材讲解的中后期,利用每堂课的最后30分钟布置1个思考题(与本节内容相关),鼓励学生现场思考,找出适合的算法并用代码实现:如:①在讲到例题“判断某个正整数是否是素数时”,可以布置思考题“求出100以内的所有素数”;②在讲到例题语句“Redim Preserve时”,可以布置思考题“使用一维动态数组将100的所有因子(不包含1和100)存储在内存中”。
2、 课堂测验不可缺
每两至三周进行一次“课堂小测验”,主要目的是摸清同学们最近课堂知识的学习情况:“课堂小测验”题目可以采取PPT展示的方式,如:在讲到数组时,可以准备以下几个测验题——①布尔型数组的默认初始值是?②用来获取数组某个维的下界值和上界值的函数是?③如何计算数组元素的个数?④Redim语句中的Preserve关键字的作用是?⑤Erase语句在删除静态和动态数组时有何区别?
3、 上机辅导任务重
上机辅导是教师观察学生VB学习潜能,发现上机问题的最好途径。这就要求教师“眼疾手快”——能及时、有效发现学生的上机错误并能迅速调试解决。另外,笔者采取“包干到户”的方法,挑选几名VB潜能不错的同学作为教师上机辅导的“补充和后备力量”,效果明显。
4、 考前辅导益处多
集中考前2周的晚自习时间进行针对性的“考前辅导”:个人认为,教师应集中精力给同学们讲解“历年真题”和具体题目、题型的解题方法,做到有的放矢。
5、 适当练习不能忘
做些适当的课后习题有助于巩固课堂教学内容,有助于熟练运用课堂上的VB所学。为了学生,教师可以慎重挑选优秀的、适宜的“VB习题集”推荐给同学们。同时每学期至少安排4课时进行“VB习题集”的精细讲解。
六、 参考文献
1、邱李华 曹青 郭志强,《Visual Basic程序设计教程》第2版,机械工业出版社,2007;
2、龚沛曾 陆慰民 杨志强,《Visual Basic程序设计教程》第6版,高等教育出版社,2000;
3、牛又奇 孙建国,《Visual Basic程序设计教程》,苏州大学出版社,2007;
4、江苏省高等学校计算机等级考试中心,《二级考试试卷汇编VB语言分册》,苏州大学出版社,2010;
5、教育部考试中心,《全国计算机等级考试二级教程——公共基础知识》,高等教育出版社,2010;
6、全国计算机等级考试命题研究组,《全国计算机等级考试历年试卷汇编及详解——Visual Basic》,化学工业出版社,2010;
7、教育部高等学校计算机科学与技术教学指导委员会,《关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求》,高等教育出版社,2006。