- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
“VB程序设计”课程教学中的变量类型使用问题研究
文章编号:1672-5913(2008)20-0138-02
摘 要:变量的使用是VB程序设计中必不可少的重要环节,而在教学中变量的使用技巧没有得到足够的重视,学生的掌握程度不佳。本文着重探讨了变量错用导致的“溢出”问题和变体型变量的使用问题。
关键词:VB程序设计;变量类型;溢出;变体型
中图分类号:G642 文献标识码:B
1 引言
Visual Basic(以下简称VB)是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。它简单易学、效率高、功能又强,所以目前很多院校将它作为非计算机专业软件技术基础课程讲授的编程语言之一(使用VB6.0版本)。
笔者在讲授这门课程的过程中发现,变量的使用是任何一种程序设计语言中都必不可少的环节,变量用来存放程序运行时使用到的数据和程序运行产生的中间结果,正确的使用变量可以使程序清晰明了,减少程序运行时占用的内存,提高运行效率。然而由于VB常作为非计算机专业的第一门程序设计课程,加之课时有限,所以无论在教材中,还是在课堂讲授中,对变量的讲解都比较浅显,不能满足学生实际应用的需要。笔者特将两个和变量相关的问题提出来,与讲授这门课程的教师们共同探讨。
2 变量类型使用错误导致的溢出问题
大多数VB程序设计教程都很少提及赋值和计算中的“溢出”问题。然而在学生的编程中,“溢出”却是不可回避的一个问题。不正确的变量类型使用可能导致“溢出”。例如在龚沛曾等主编的教材《Visual Basic 程序设计教程》(第3版)的实验篇中有这样一道题目[1]。
[例1]计算π的近似值,π的计算公式为:
注意:
① 分别显示当n=10、100、1000时的结果,由此可见,此公式收敛程度如何?
② 同时为防止大相乘是结果溢出的问题,将变量类型改为长整型或实数类型。
大部分学生会写出这样的程序段:
Private Sub Form_Click()
Dim pi As Single, n As Integer, t As Single
pi = 2
For n = 1 To 10
t = (2 * n) ^ 2 / ((2 * n - 1) * (2 * n + 1))
pi = pi * t
Next n
Print n=10时,π=; pi
pi = 2
For n = 1 To 100
t = (2 * n) ^ 2 / ((2 * n - 1) * (2 * n + 1)) ‘此句发生溢出
pi = pi * t
Next n
Print n=100时, =; pi
……
End Sub
当程序运行到程序中加注释的语句时会产生运行期错误“实时错误6:溢出”。(见图1)学生们都注意到变量t用来保存公式的通项,应该使用精度比较高的实型数据,而认为n变量的取值分别是1~10、1~100、1~1000,当然使用整型(integer)就可以了。其实,错误就出在这里。为了解释这个问题,我们举一个简单的例子,如下程序段:
[例2] Private Sub Command1_Click()
Dim c As Long
c = 3 2* 1024
End Sub
图1
程序运行时会发生溢出错误。大部分学生会认为,变量c已经是长整型了,足以放的下32×1024的积,怎么还会溢出呢?其实,VB在做数值运算时,会先开辟一个内存地址来存放计算结果,然后再传送到指定的变量中。如上面的程序,变量c虽然是长整型,其可存放数值的范围是(-2147483648,+2147483647),但VB做计算时,将32判断为整数,1024也判断为整数,就任意在内存的某个位置开辟2Byte大小的空间来存放32×1024的值,然后再回存至变量c。但32×1024(即32768)已超过任意在内存的某个地址开辟的2Byte的大小,故溢出。
怎样解决溢出问题呢?答案就是转变数据的类型。将例2的程序段改为:
Private Sub Command1_Click()
Dim c As Long
c = CLng(3 2)*CLng( 1024)
End Sub
就可以正常计算了。理解了VB做数值运算的内部机理,我们就可以重新审视例1。当程序发生溢出错误时,我们点击“调试”,出错的语句会高亮度显示,我们把光标放在n变量上,可以发现溢出时n的值为91,n=91时,表达式(2
您可能关注的文档
- Java课程教学的探析.doc
- .NET框架下基于AJAX的Web数据分页研究.doc
- .NET平台下移动Agent系统开发技术研究.doc
- .NET平台下MVC设计模式的实现策略.doc
- .NET验证机制在Web表单验证中的应用研究.doc
- (0,mf-m+1)图的正交(0,f)因子分解.doc
- “120”智能指挥调度算法设计与实践.doc
- “2010年英特尔多核大学计划高级师资研修班”侧记.doc
- “2+0.5+0.5”人才培养模式下综合实训的设计.doc
- “3S” 技术在实现道路交通智能管理中的集成应用.doc
- 2025年广东省梅州市五华县水寨中学高三4月综合测试生物试题理试题含解析.doc
- 2025届江苏省南京、淮安市高三模拟卷(一)生物试题试卷含解析.doc
- 湖北师范大学文理学院《和声基础(一)》2022-2023学年第一学期期末试卷.doc
- 三峡大学科技学院《office软件》2023-2024学年第一学期期末试卷.doc
- 甘肃中医药大学《血液流变学与人体健康》2023-2024学年第一学期期末试卷.doc
- 嘉荫县2025年数学四下期末考试模拟试题含解析.doc
- 汕尾市陆河县2025届数学四年级第二学期期末调研模拟试题含解析.doc
- 克孜勒苏职业技术学院《珠宝企业终端运营管理》2023-2024学年第二学期期末试卷.doc
- 民办安徽旅游职业学院《海洋文化与城市美学》2023-2024学年第一学期期末试卷.doc
- 山东轻工职业学院《高等生物化学》2023-2024学年第一学期期末试卷.doc
文档评论(0)