欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 科技论文 > 计算机论文

程序设计中过程调用浅析

时间:2011-04-23  作者:秩名

论文导读:VB程序设计是采用面向对象的可视化操作界面,功能强大,应用广泛,而相对于其他面向对象的编程语言,如VC,Delphi等容易学习掌握。在程序设计中,为了缩短程序运行的时间,也为了方便、简化程序设计,就需要建立相应的过程,建立过程的目的之一就是减少重复代码,将公共代码放入过程中,并由其他事件过程调用它,调用过程有诸多技巧,经常根据程序编写的需要,按功能将程序分解成若干个相对独立的部分,然后对每个部分进行程序编写测试,这样就把每一个部分称之为过程。在过程调用中,Sub过程与Function过程相似,它们都是用来完成特定功能的独立程序代码,它们由一组符合VB语法的语句组成,但它们不同的是,Function过程可以返回一个值给调用程序。在过程的调用中,由于二者参数传递的机制相同,为便于描述,本文就以Sub过程(即子过程)为例,对过程的定义、调用及参数传递进行分析和说明。
关键词:VB,程序设计,过程调用,参数传递
 

1 前言

VB程序设计是采用面向对象的可视化操作界面,功能强大,应用广泛,而相对于其他面向对象的编程语言,如VC,Delphi等容易学习掌握。在程序设计中,为了缩短程序运行的时间,也为了方便、简化程序设计,就需要建立相应的过程,建立过程的目的之一就是减少重复代码,将公共代码放入过程中,并由其他事件过程调用它,调用过程有诸多技巧,经常根据程序编写的需要,按功能将程序分解成若干个相对独立的部分,然后对每个部分进行程序编写测试,这样就把每一个部分称之为过程。免费论文

在全国VB等级考试中,要求学生掌握的过程主要有事件过程,Sub过程和Function过程。在过程调用中,Sub过程与Function过程相似,它们都是用来完成特定功能的独立程序代码,它们由一组符合VB语法的语句组成,但它们不同的是,Function过程可以返回一个值给调用程序。但有一点需要特别注意,那就是Sub过程与Function过程必须在事件过程或其他过程中有调用它们,否则过程代码将永远不会被执行。在过程的调用中,由于二者参数传递的机制相同,为便于描述,本文就以Sub过程(即子过程)为例,对过程的定义、调用及参数传递进行分析和说明。

2 VB过程的调用与分析

在调用过程时,主调过程的实参以一定的形式传递给被调过程的形参,完成实参与形参的配对结合,然后执行被调用的过程体即语句块。经被调过程处理后,并可得到处理的结果,但如果被调过程为Function过程时,可将所得结果返回给主调过程。VB中,参数的传递有传值和传址(引用)两种形式。免费论文。

2.1子过程的定义与调用

自定义子过程的格式:

[Public | Private] [ Static]Sub子过程名([形参表列] )

局部变量和常量定义

<语句块>

[Exit Sub]

[语句块]

End Sub

其中形参表列的每个参数的形式:[ByVal](变量名[()] [As类型,]……)

形参表列中的参数称为形参或哑元,只能是变量或数组名,不能是常量、函数、表达式等。在过程定义时,参数有传值和传址两种定义形式,带ByVal定义的参数为值传递,用于接收过程调用时实参传递过来的值,否则为地址(引用)传递,用于接收过程调用时实参传递过来的地址。

子过程的调用格式:

(1) Call过程名( [实参表列] )

(2) 过程名[实参表列]

子过程的调用是一条独立的调用语句,有上述(1)、(2)两种调用格式。其中:“实参表列”中的参数称为实参,实参的个数、数据类型都要与被调用过程的形参一一对应,实参可以是同类型的常量、变量、数组、表达式等。

2.2传值方式(ByVal)

VB中的传值方式,实参与形参在内存中占用不同的内存单元,当调用一个过程时,系统把实参的值复制给形参,当执行被调用的过程时,实参与形参并断开联系,过程的调用也将结束,形参的任何操作和变化都不会影响到实参。传值方式是“单向”的,形参的值不能返回给实参。在教学中,通过总结给出了如下按传值方式(ByVal)对过程调用的分析方法。

例1:编写两个数相加的过程,执行程序并输出结果。

Option Explicit

Public Sub Add(ByValx As Integer, ByVal y As Integer)

x =x + y : Print “x=” ;x

End Sub

Private Sub Command1_Click()

Dim a AsInteger , b As Integer

a = 20: b = 15: Call Add(a, b): Print “a=”; a;“b=”;b

End Sub

程序运行后得到的结果为:x=35a=20 b=15,通过该方法能简洁明了地得到正确结果,x的值由两个数相加所得的结果,而a,b两个数的值没有变化,分析参数传递过程的情况如图1所示,由于采用传值方式,实参和形参在内存中占用不同的内存单元,当调用过程Add时,系统把实参a, b的值复制一份给形参x和y,便断开实参与形参的联系,执行Add过程中的语句块后,形参x的值进行了变化即为两个数的和,但它的变化并不影响实参a和b,当返回到主调过程时,形参所占的内存被释放。

2.3传址方式(ByRef)

传址方式也称引用方式,是VB默认的参数传递方式,当调用一个过程时,系统将实参的地址传递给形参,实参与形参在内存中占用相同的存储单元,即过程接受的是实参变量的地址。因此在被调过程中对形参的任何操作都变成了对相应实参的操作,实参的值会随着形参的变化而改变,这种传递是“双向”的。下面来分析一下传址方式(ByRef)的一般情况,即形参与实参均为简单类型的变量。免费论文。

当形参是传址方式的简单类型变量,实参是同类型的简单变量时,系统采用传址方式实现虚实结合。下面采用传址方式,改编例1的程序,分析能否改变a,b的值。Add子过程修改如下,其主调过程与传值方式的主调过程相同。

Public Sub Add(ByRefx As Integer, ByRef y As Integer)

x =x + y : Print “x=” ;x

End Sub

执行程序,运行结果为:x=35 a=35 b=15。分析参数传递过程如图2所示,由于采用传址方式,实参和形参在内存中占用同一存储单元,当调用过程Add时,系统把实参a, b的地址分别传递给形参x和y,使得x与a是同一存储单元,y与b也是同一存储单元,在这种情况下可以把x与a看成是同一个变量,y与b也可看成是同一个变量,执行Add过程中的语句块后,形参x的值进行了改变,等同于实参a的值也进行了变化,调用结束后,返回主调过程,这样也就改变了a的值,由于y的值没有变化,所以b的值也就没有改变。

 

 
 

 

3 结束语

本文介绍了过程调用分析的方法,针对过程调用中是按值传递,还是按址传递,进行了详细深入的分析,该方法能清楚地反映各变量的变化,并用验证方法得到了正确的结果。同时通过一个例题两种传递形式的分析较好的描述了过程调用的执行流程,根本上解答了学生较易混淆的问题。本文结合实例,采用图表方法,深入分析了VB过程中参数传递的两种方式。实践证明,图示法对学生理解和掌握过程调用中的参数传递能起到很好的效果。


参考文献:
[1]程学云.过程调用中变量分析方法探讨[J].福建电脑,2008,(2)
[2]牛又奇,孙建国.新编Visual Basic程序设计教程[M].苏州大学出版社,2008
[3]李淑华. VB程序设计及应用[M].高等教育出版社,2004
[4]赵金萍.“任务驱动式”的《C语言程序设计》教学[J].计算机时代,2007,(8)
[5]戴晓琴.VB中通用过程的使用[J].中山大学学报论丛,2005, 25(3)
 

 

查看相关论文专题
加入收藏  打印本文
上一篇论文:超大图片内存加载分析与方法(图文)
下一篇论文:传统动画中的泛贴图概念(图文)
科技论文分类
科技小论文 数学建模论文
数学论文 节能减排论文
数学小论文 低碳生活论文
物理论文 建筑工程论文
网站设计论文 农业论文
图书情报 环境保护论文
计算机论文 化学论文
机电一体化论文 生物论文
网络安全论文 机械论文
水利论文 地质论文
交通论文
相关计算机论文
最新计算机论文
读者推荐的计算机论文