【VB开源代码栏目提醒】:网学会员在VB开源代码频道为大家收集整理了“-VB中过程之间数据传递的研究 - 技术总结“提供大家参考,希望对大家有所帮助!
58中国产业IndustryofChinaVB中过程之间数据传递的研究赵艳明无锡广播电视大学江苏无锡214011摘要通过VisualBasic中过程之间数据传递是VisualBasic中的重要知识点是学生不易理解的一个环节。
本文结合实例提出对过程之间的调用时数据传递的正确有效分析的方法并就数据传递中容易混淆的问题进行了分析。
关键词
VB过程调用参数传递中图分类号G712文献标识码A引言VisualBasic简称
VB以面向对象的可视化设计平台、结构化的程序设计语言、事件驱动编程机制、开放的数据库功能与网络支持等特点以及简单易学等优势赢得了众多编程者的青睐。
VB过程中变量及参数的传递得到了广泛的运用。
但对于这部分内容的掌握也是教学中的一个难点。
因此帮助学生理解分析
VB中过程之间的通信方式是教学中的重点和难点。
2
VB的过程在
VB中使用“过程”是实现结构化程序设计思想的重要方法
VB中过程之间的调用是实现数据传递的重要方式。
VB调用过程的目的就是在完成某一操作或计算某一函数值。
外界需要把条件告诉过程反过来过程也需要把结果反馈给外界这就是过程与外界的数据传递即参数传递。
参数传递是数据通信的重要手段之一。
那么参数是怎样传递的呢
VB提供了两种方式一是通过非局部变量二是通过参数。
在过程体中使用非局部变量如全局变量就是直接处理外界的量这种量在过程内、外部都能用因此很容易传递数据。
由于是暴露在外面的任何过程都可以使用和修改这对数据的安全不利建议尽量不用或少用。
实际上大部分的数据都是通过过程调用中形式参数与实际参数之间的传递来完成数据传递的在程序中虽然调用的形式不尽相同但多是形式参数是在sub或Function中的定义中出现的变量名。
实际参数则是在调用sub或Function时传递给sub或Function的常数、变量、表达式或数组。
形式参数和实际参数在
VB中通常把形式参数叫做“形参”在被调用的子过程和函数的标识符后面多以形参表的形式出现。
实际参数又称“实参”在调用过程和函数的调用语句中出现。
实参与形参的传递机制41按值传递即单向传递调用过程的实参用常量、变量值或表达式值被调过程的形参用变量或者在形参前面标识ByVal。
这种传递的实质是将实参拷贝一个副本给形参。
也就是说一次性传递后在被调过程中形参可以改变。
主要特点是传递后形参值的改变不影响实参。
相互之间的关系再无瓜葛即副作用。
42按地址传递默认即双向传递这种传递亦称引用参数传递是用过程用变量的内存地址去访问实际变量的内容形参和实参对应的事同一个地址空间。
调用过程的实参用变量传递给被调用过程的形参用变量或ByRef标识的变量或者是控件。
其主要特点是传递后形参值的改变影响实参相互之间仍有关系。
需要注意的是visualBasic中缺省的是按地址传递参数所以缺省情况下过程调用之后参数的内容可能已经改变。
对于没有返回值的子过程可以把返回结果保存在传递的参数中。
当实参与形参均为自定义数据类型即纪录类型时当实参与形参均为对象参数如窗体、控件等参数传递后可以将记录类型数据和对象参数的属性值进行修改这两种传递也只能是传址方式。
43传递数组。
用数组作为参数可以把整个数组作为参数传递给过程。
有两种情况第一种情况数组是数组元素作为实参这种方式为值得传递本文已作过讨论第二种情况是数组名作为参数传递的是数组的首地址即按址传递其主要特点是实参和形参共同占用一段内存单元因此若修改形参就等价于修改实参。
实例分析实例1PrivateSubtestByValiAsIntegerjAsIntegerii2jji2EndSubPrivateSubCommand1ClickDimxAsIntegeryAsIntegerx6y3Print调用前xxyyCalltestxyPrint调用后xxyyEndSub执行程序该
代码的运行结果调用前x6y3调用后x6y26实例1的
代码中test为被调用过程括号内i、j为形参过程command1Click中的Calltestx、y为调用语句该语句括号内的x和y为实参。
代码的执行过程是Command1Click的事件过程中定义了两个变量x和y分别赋值为6和3并输出调用过程test时依次传递给形参i和j程序执行test过程时i被修改成8j被修改为26。
调用结束后程序返回到调用处后再依次输出x和y。
观察输出结果可以看到调用后x仍为6y则更改为26。
这段
代码说明了实参和形参的两种不同的传递机制。
程序调用时将x传递给过程test的形参i其实质是将实参x拷贝一个副本给形参itest过程中形参i被修改调用结束后对x没有影响所以x的值仍为6而y就不同了在调用时是将y的地址传递给过程test的形参jj实际上y别名对应的是同一个地址空间test过程中对形参j的修改其实就是对y的修改所以test过程执行后y是26j也是26。
实例2编写一个过程把一个数组中的数从大到小排列PrivateSubCommand1ClickDimiAsIntegerDima1To10AsIntegerPrint排序前数组元素的值Fori1To10aiiPrintaiNextiPrintsortaPrint排序后数组元素的值Fori1To10PrintaiNextiEndSubSubsortaDimiAsIntegerjAsIntegertAsIntegerFori1To9Forji1To10IfaiajThentaiaiajajtEndIfNextjNextiEndSub运行程序该
代码的结果是排序前数组元素的值12345678910排序后数组元素的值10987654321实例2的
代码中过程sorta的形参a是一个数组名其将接收的一个数组a从大到小排序后返回调用处。
过程Command1Click定义了一个数组a通过一个循环得到了数组a中10个元素的值分别为1到10并在窗体上输出然后调用过程sort信息产业58中国产业IndustryofChinaVB中过程之间数据传递的研究赵艳明无锡广播电视大学江苏无锡214011摘要通过VisualBasic中过程之间数据传递是VisualBasic中的重要知识点是学生不易理解的一个环节。
本文结合实例提出对过程之间的调用时数据传递的正确有效分析的方法并就数据传递中容易混淆的问题进行了分析。
关键词
VB过程调用参数传递中图分类号G712文献标识码A引言VisualBasic简称
VB以面向对象的可视化设计平台、结构化的程序设计语言、事件驱动编程机制、开放的数据库功能与网络支持等特点以及简单易学等优势赢得了众多编程者的青睐。
VB过程中变量及参数的传递得到了广泛的运用。
但对于这部分内容的掌握也是教学中的一个难点。
因此帮助学生理解分析
VB中过程之间的通信方式是教学中的重点和难点。
2
VB的过程在
VB中使用“过程”是实现结构化程序设计思想的重要方法
VB中过程之间的调用是实现数据传递的重要方式。
VB调用过程的目的就是在完成某一操作或计算某一函数值。
外界需要把条件告诉过程反过来过程也需要把结果反馈给外界这就是过程与外界的数据传递即参数传递。
参数传递是数据通信的重要手段之一。
那么参数是怎样传递的呢
VB提供了两种方式一是通过非局部变量二是通过参数。
在过程体中使用非局部变量如全局变量就是直接处理外界的量这种量在过程内、外部都能用因此很容易传递数据。
由于是暴露在外面的任何过程都可以使用和修改这对数据的安全不利建议尽量不用或少用。
实际上大部分的数据都是通过过程调用中形式参数与实际参数之间的传递来完成数据传递的在程序中虽然调用的形式不尽相同但多是形式参数是在sub或Function中的定义中出现的变量名。
实际参数则是在调用sub或Function时传递给sub或Function的常数、变量、表达式或数组。
形式参数和实际参数在
VB中通常把形式参数叫做“形参”在被调用的子过程和函数的标识符后面多以形参表的形式出现。
实际参数又称“实参”在调用过程和函数的调用语句中出现。
实参与形参的传递机制41按值传递即单向传递调用过程的实参用常量、变量值或表达式值被调过程的形参用变量或者在形参前面标识ByVal。
这种传递的实质是将实参拷贝一个副本给形参。
也就是说一次性传递后在被调过程中形参可以改变。
主要特点是传递后形参值的改变不影响实参。
相互之间的关系再无瓜葛即副作用。
42按地址传递默认即双向传递这种传递亦称引用参数传递是用过程用变量的内存地址去访问实际变量的内容形参和实参对应的事同一个地址空间。
调用过程的实参用变量传递给被调用过程的形参用变量或ByRef标识的变量或者是控件。
其主要特点是传递后形参值的改变影响实参相互之间仍有关系。
需要注意的是visualBasic中缺省的是按地址传递参数所以缺省情况下过程调用之后参数的内容可能已经改变。
对于没有返回值的子过程可以把返回结果保存在传递的参数中。
当实参与形参均为自定义数据类型即纪录类型时当实参与形参均为对象参数如窗体、控件等参数传递后可以将记录类型数据和对象参数的属性值进行修改这两种传递也只能是传址方式。
43传递数组。
用数组作为参数可以把整个数组作为参数传递给过程。
有两种情况第一种情况数组是数组元素作为实参这种方式为值得传递本文已作过讨论第二种情况是数组名作为参数传递的是数组的首地址即按址传递其主要特点是实参和形参共同占用一段内存单元因此若修改形参就等价于修改实参。
实例分析实例1PrivateSubtestByValiAsIntegerjAsIntegerii2jji2EndSubPrivateSubCommand1ClickDimxAsIntegeryAsIntegerx6y3Print调用前xxyyCalltestxyPrint调用后xxyyEndSub执行程序该
代码的运行结果调用前x6y3调用后x6y26实例1的
代码中test为被调用过程括号内i、j为形参过程command1Click中的Calltestx、y为调用语句该语句括号内的x和y为实参。
代码的执行过程是Command1Click的事件过程中定义了两个变量x和y分别赋值为6和3并输出调用过程test时依次传递给形参i和j程序执行test过程时i被修改成8j被修改为26。
调用结束后程序返回到调用处后再依次输出x和y。
观察输出结果可以看到调用后x仍为6y则更改为26。
这段
代码说明了实参和形参的两种不同的传递机制。
程序调用时将x传递给过程test的形参i其实质是将实参x拷贝一个副本给形参itest过程中形参i被修改调用结束后对x没有影响所以x的值仍为6而y就不同了在调用时是将y的地址传递给过程test的形参jj实际上y别名对应的是同一个地址空间test过程中对形参j的修改其实就是对y的修改所以test过程执行后y是26j也是26。
实例2编写一个过程把一个数组中的数从大到小排列PrivateSubCommand1ClickDimiAsIntegerDima1To10AsIntegerPrint排序前数组元素的值Fori1To10aiiPrintaiNextiPrintsortaPrint排序后数组元素的值Fori1To10PrintaiNextiEndSubSubsortaDimiAsIntegerjAsIntegertAsIntegerFori1To9Forji1To10IfaiajThentaiaiajajtEndIfNextjNextiEndSub运行程序该
代码的结果是排序前数组元素的值12345678910排序后数组元素的值10987654321实例2的
代码中过程sorta的形参a是一个数组名其将接收的一个数组a从大到小排序后返回调用处。
过程Command1Click定义了一个数组a通过一个循环得到了数组a中10个元素的值分别为1到10并在窗体上输出然后调用过程sort信息产业中国产业IndustryofChina59a程序返回后第二次输出数组a的10个元素。
这时数组被排序。
这个实例中Command1Click的调用语句为sorta实参和形参是同名传递均为数组这种传递只能是地址传递因此是双向的。
6参数传递时注意事项61若参数按值传递则实参数据类型可不要求与形参完全一致但必须有
VB能够默认转化若参数按地址传递则
VB要求实参的数据类型必须与形参的数据类型完全一致。
62一般说来过程中的参数个数与过程说明中的个数应该一致但
VB也允许在参数表中出现可选参数可用optional标识如果定义了可选参数则参数表中该参数后面的所有参数也必须是可选的且每个参数都要用optional标识过程调用时如果未提供某个可选参数时实际上将该参数作为具有empty值的变量来赋值。
7结束语
VB中参数传递是比较难于理解和掌握的知识点。
掌握了参数传递要点就能正确地分析程序并得到正确的结果为学生进一步深入学习
VB打下了基础。
参考文献1刘炳文杨明福陈定中全国计算机等级考试二级教程VisualBasic语言程序设计M高等教育出版社2肖捷祝庚肖正新
VB过程调用中参数传递的深入分析J计算机与现代化2007年第1091933程学云徐慧对
VB过程调用的分析与探讨J软件设计开发20083【来稿时间】20100809绪论中国网络游戏产业风雨兼程走过了十年。
十年的发展远远不能实现网络游戏产业的成熟我国游戏的开发者、经营者和消费者也一直在探索适合中国市场和社会需求的发展道路。
2009年中国网络游戏市场实际销售收入达到2562亿元预计网络游戏实际销售收入到2014年将达到508亿元2009年到2014年的年复合增长率为147。
分析中国网络游戏产业的现状和存在的问题寻求解决问题的对策对于促进我国网络游戏产业的健康发展具有鲜明的理论价值和重要的现实意义。
中国网络游戏产业发展的优势21市场优势。
根据调研数据显示网游用户集中在10至29岁之间预计中国网游市场的最终活跃用户约在2亿左右。
统计报告显示截至2009年我国已达到6931万人离其上限还有很大的上升空间市场潜力巨大。
随着网络游戏产业的快速发展网络游戏用户中付费用户的比例和数量增长速度还将不断提高。
2002年国内收费网络游戏用户数为350万到了2009年收费用户数增长了十多倍达到3715万占网络游戏用户的563。
庞大的网民基数以及巨大的增长潜力成为中国网络游戏市场规模不断增长的根本基础和市场动力。
22文化优势。
透过品种众多、纷繁复杂的网络游戏产品本身不难发现是其背后不同文化得到了认可。
网络游戏产业归根结底是一种文化产业体现着文化特性。
在目前中国市场的游戏产品每款成功游戏的背后都蕴涵着源于其本土化精神的力量而一个国家的“文化元素”是其出品游戏的基因起着决定作用。
网络游戏利用并把握了现代人的性格以及生活特性从而拥有很强的聚众性能而其聚众性归根到底则需要用户对其文化背景的认同和接受。
在网络游戏产品走向国际的过程中本国文化的积淀尤为重要中国是一个具有悠久历史文化的大国五千年的文化底蕴为我们提供了丰富的想象空间。
23产业优势。
电信运营商是对网络游戏产业影响最大的外围行业。
网络游戏运营商租用服务器等向电信运营商支付费用和游戏用户进行网络游戏为电信的数据通信业务收入作出贡献。
电信运营商也因其垄断性运营资源及雄厚的资金资源成为游戏运营商最为重要的产业外合作伙伴促进网络游戏产业的健康发展形成良性循环。
网络游戏产业有着互动数字内容产业和休闲产业的特征是一个横跨互联网、计算机、软件、消费电子等诸多领域的综合体产业渗透力巨大对相关产业有很大的拉动作用。
随着网络游戏市场在中国的不断发展网络游戏厂商正在抓紧将产品线向相关周边产品延伸。
各种跨平台、跨行业合作方式的出现必将催生出更多更新的商业模式和行业发展机遇。
特别是高质量、高市场号召力的国产原创游戏的出现中国网络游戏产业还会产生更大的拉动效应。
中国网络游戏产业发展的困境31专业研发人才资源匮乏。
在目前全球游戏通用软件平台发展尚不成熟的情况下网络游戏开发仍属于艺术创意与应用软件开发并重的知识密集型行业。
符合行业发展需求的各类人才是其最关键的生产要素。
在网络游戏开发行业中精通相关专业技能还需要具备一定的管理协调能力是国内项目组织结构中最为稀缺的核心成员。
游戏产品实现从构想到最终的“物质化”所需要的设计、开发人才也需要长时间的系统培训和实战磨练才能胜任其工作岗位对于发展历程较短的中国网络游戏开发行业来说需求缺口仍然十分巨大。
32政府职能部门重复监管。
各部委机关根据对《中共中央国务院关于进一步加强和改进未成年人思想道德建设的若干意见》的解读针对各自管辖领域出台了相关的政策中国网络游戏产业进入多部委管理时代。
网络游戏的产业属性仍未被中央政府明确是造成目前多头管理局面的主要原因。
多头管理不仅容易出现责任真空引发相关问题。
特别是前面三家管理部门各自没有隶属关系行政权力上相互独立管理职责交叉又都希望通过其专门领域的管辖权获得主导网络游戏这个朝阳产业的话语权。
这样难于形成统一有效的管理口径严重影响行业效率有时甚至因为管理层的权力博弈造成国内整个网络游戏产业外部环境的动荡让网络游戏厂商不时处于进退维谷的两难境地。
33政策法规不完善。
针对网络游戏的法律法规如虚拟物品的产权属性、游戏分级制度等仍然处在中国法律的盲区知识产权的保护体系也依然有待完善。
特别是象对“私服”、“外挂”这类在国外已经有明确立法定义的违法行为在中国仍然十分普遍。
由于法律上的空白中国对“私服”、“外挂”的打击还仅停留在援引《著作权法》等相关条文对其进行专项治理的阶段。
而由于没有明确的司法界定造成公安机关等执法部门取证困难严重削弱了专项治理行动打击的震慑作用。
中国网络游戏产业的发展对策41完善人才培养体系增强自主研发能力。
我国国内游戏自主研发力量薄弱表现在缺乏游戏产品策划、开发等方面的高端人才。
由于网络游戏是一项社会系统工程对于高素质的网络游戏工程师的培养是一个长期的过程因此除了建立专业性的职业学院以外通过高校的专业设置调整培养训练有素的游戏工程师是很有必要的。
42设立专门的政府职能部门避免重复监管。
长期以来职责不清、多头管理是中国部分政府部门的显著特点。
政府应明确网络游戏行业的主管部门从而建立起科学的行业监管体系统筹行业发展。
各相关部门积极的推进部门职责的“划入”和“划出”避免多中国网络游戏产业初探周琳梅西南财经大学四川成都611130摘要网络游戏产业是一个依托现代信息技术特别是电子技术、计算机硬、软件技术和网络通信技术的新兴文化产业。
随着互联网的发展和社会生产效率的提高网络游戏产业在经济和文化生活中扮演着愈来愈重要的角色。
本文首先对中国网络游戏产业发展的优势和困境进行分析根据产业的优劣势总结出中国网络游戏产业有序发展的几点发展对策。
关键词网络游戏产业优势产业困境发展策略信息产业
上一篇:
在VB应用程序中使用INI文件的一点体会
下一篇:
关于大学英语教学