欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > PPT文档下载
    分享到微信 分享到微博 分享到QQ空间

    第5章过程.ppt

    • 资源ID:614231       资源大小:262.50KB        全文页数:52页
    • 资源格式: PPT        下载积分:9金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第5章过程.ppt

    第5章 过程第5章 过程5.1 Sub过程5.2 函数过程5.3 参数传递5.4 变量的作用范围引入新课n我们在前面学习过:n可以通过循环结构来反复执行某种操作。n循环结构只能在程序中的某个位置反复进行特定的操作,若该操作需要在程序中的多个位置出现,那么,在需要进行这种操作的地方都需要一个循环结构的出现,这样使得程序的复杂程度增加。n解决上述问题的方法是使用子程序(过程)。nVB提供的系统函数即是函数过程的实例。引入新课nVisual Basic中的自定义过程分为:n以Sub保留字开始的Sub过程。这种过程不直接返回值,但是可以通过参数或模块级变量、全局变量来返回多个值。n以Function保留字开始的函数过程,过程通过函数名可直接返回一个值。5.1 Sub过程n在程序多个位置多次重复出现的操作:n不是计算得到某个结果,而是要完成特定的操作n或需要返回多个结果n则可将这些操作定义为Sub过程(子过程),在程序中需要这些操作的地方,通过调用该Sub过程即可。5.1 Sub过程n建立Sub过程的方法:n利用“工具”菜单下的“添加过程”命令,生成一个Sub过程框架,然后再输入相应的代码。n在代码窗口中直接定义。即:在窗体、模块等的代码窗口,在所有过程之外直接输入Sub过程。5.1 Sub过程n自定义Sub过程的形式如下:Private|Public Sub 过程名(形参列表)局部变量或常量声明 语句块 Exit Sub 语句块End Sub5.1 Sub过程n说明:nPrivate定义过程为局部过程,即该过程只能被过程所在模块的其它过程调用。Public定义过程为全局过程,即该过程可被所有模块中的过程调用。默认为Public。n过程名为过程的标识,其命名规则与变量的命名规则相同。n形参列表:n形式为:形参1 As 类型,形参2 As 类型,n形参只能是变量名或数组名,仅表示参数的个数、类型n形参两边的括号不能省略nExit Sub:表示退出Sub过程5.1 Sub过程n调用Sub过程:nCall 子过程名(实参列表)n子过程名实参列表n说明:n用Call关键字来调用Sub过程时,若有实参,则实参需要用括号括起来;用过程名方式调用子过程,则实参两边的括号可以省略n若要通过实参返回结果,那么,实参只能是与形参同类型的简单变量、数组名、结构类型,而不能是常量、表达式或控件名。5.1 Sub过程n【例5-2】编写一过程实现两个数的交换Sub Swap(x As Integer,y As Integer)Dim t As Integer t=x:x=y:y=tEnd SubPrivate Sub Form_Click()Dim a As Integer,b As Integer a=3:b=4 Print 调用前:a=&a&,b=&b Call Swap(a,b)Print 调用后:a=&a&,b=&bEnd Sub5.1 Sub过程n运行结果5.1 Sub过程n通用过程和事件过程n通用过程n由用户自定义,可放在窗体模块中,也可放在标准模块中n由用户在过程或函数中自行调用n分为Sub过程和函数过程两大类n事件过程n对事件的响应代码,只可以放在窗体模块中n在发生特定事件时由Visual Basic自动调用,也可以被同一模块中的其它过程调用n事件过程框架由系统指定5.1 Sub过程n事件过程的框架:Private|Public Sub 对象名_事件名(参数列表)语句块End Sub5.1 Sub过程n关于过程的调用n通用过程之间、事件过程之间、通用过程与事件过程之间,都可以互相调用。nPublic过程可以被其它模块中的过程调用。若过程名在所有模块范围内唯一时,可以直接使用过程名调用,否则调用过程时,需要在过程名前加上模块名:模块名.过程名(实参列表)5.1 Sub过程5.2 函数过程n函数的定义:Public|Private Function 函数名(形参列表)As 类型 局部变量或常量的声明 语句块 函数名=返回值 Exit Function 语句块 函数名=返回值End Function5.2 函数过程n说明:n函数名命名规则、形参列表形式同Sub过程中相应项的规定nAs 类型:函数返回值的类型n函数名=返回值:在函数中至少要对函数名赋值一次,该值即是函数的运算结果5.2 函数过程n函数的调用:n自定义函数的调用与内部函数的调用相同,格式如下:函数名(实参列表)n函数的返回值将参与表达式的计算5.2 函数过程【例5-3】编写一个求最大公约数的函数过程。Function gcd(m As Integer,n As Integer)As Integer Dim r As Integer,t As Integer If m n Then t=m:m=n:n=t r=m mod n Do While r0 m=n:n=r:r=m mod n Loop gcd=nEnd Function5.2 函数过程n调用求最大公约数函数过程的示例:Private Sub Form_Click()Dim x As Integer,y As Integer,z As Integer x=36:y=54 Print x&和&y&的最大公约数是:;z=gcd(x,y)Print zEnd Sub5.2 函数过程【例5-4】编写一个HuiWen函数,用于判断一个字符串是否是“回文”。Function HuiWen(str1 As String)As String Dim L As Integer,k As Integer Dim Ls As String,Rs As String L=Len(str1):k=1 Do Ls=Mid(str1,k,1)Rs=Mid(str1,L-k+1,1)If Ls Rs Then Exit Do k=k+1 Loop While k L/2,是回文,不是回文)End Function5.2 函数过程Private Sub Form_Click()Dim s As String s=InputBox(请输入任意字符串)Print s;HuiWen(s)End Sub5.2 函数过程n函数过程与Sub过程的区别n函数过程必须有返回值,函数名有类型(即是返回值的类型),必须在函数体中对函数名赋值来作为返回值nSub过程可以没有返回值,过程名没有类型,不能在Sub过程中对过程名赋值n一般来说,若程序有一个返回值时,使用函数过程来设计较为直观;若没有返回值,或有多个返回值时,习惯使用Sub过程。5.2 函数过程n参数问题n形参是过程与主调程序交互的接口,通过形参从主调程序中获得传递过来的初值,通过形参也能把计算结果返回给主调程序n形参没有具体的值,只代表参数的个数、位置、类型;只能是简单变量、数组名,不能是常量、数组元素、表达式。5.2 函数过程5.3 参数传递n形参是指在定义Sub或函数过程时,在过程名后的圆括弧中出现的变量名、数组名列表。用于引用主调程序中传递过来的数据。n实参是指主调程序在调用过程时,在过程名后给出的常量、变量、表达式或数组。用于把数据传递给被调用的过程。n被形参引用的实参,其排列次序与形参的排列次序一致,与参数的名字没有关系。5.3 参数传递n参数的传递有两种方式:nByRefn传地址方式,也叫引用。默认的参数传递方式。n形参与实参共用相同的存储单元,因而,在被调函数中修改了形参的值,那么,主调函数对应的实参的值也同样发生了变化。即:可以通过参数向主调程序返回多个结果。nByValn传值方式。n实参和形参对应于不同的存储单元,因而,传值方式只能把值从实参传递给形参,而不能通过形参返回结果。n如果实参是常量或表达式,则默认采用传值方式。5.3 参数传递【例5-5】分别用传值和引用方式编写变量交换过程。Sub Swap1(ByVal x As Integer,ByVal y As Integer)Dim t As Integer t=x:x=y:y=tEnd SubSub Swap2(ByRef x As Integer,ByRef y As Integer)Dim t As Integer t=x:x=y:y=tEnd Sub5.3 参数传递Private Sub Form_Click()Dim a As Integer,b As Integer a=1:b=2 Swap1 a,b Print a=&a&,b=&b a=1:b=2 Swap2 a,b Print a=&a&,b=&bEnd Sub5.3 参数传递n参数传递方式使用传值还是引用?n若被调用过程需要通过形参把结果返回给主调程序,那么,参数传递方式需要使用引用方式。这时,实参必须是与形参同类的变量名(简单变量、数组、结构),而不能是常量或表达式。n若不希望被调过程修改实参的值,则参数传递方式应采用传值方式。5.3 参数传递n数组参数的传递:n数组作为参数传递时,总是采用引用方式传递。n在形参列表中的数组只需要给出数组名,并在数组名后加上一对空的圆括号,而不需要指出数组的上、下界。n在调用过程时,实参中的数组只需要给出数组名,即可传递整个数组给被调过程。n数组中的一个元素可以当作是简单变量来作为实参传递给形参。n通过LBound和UBound函数可以确定实参的下、上界。5.3 参数传递【例】编写一个过程Sort,使用选择排序算法对数组中的元素按升序排列。Option Base 1Sub Sort(x()As Integer)Dim i As Integer,j As Integer Dim k As Integer,t As Integer For i=LBound(x)To UBound(x)-1 k=i For j=i+1 To UBound(x)If x(k)x(j)Then k=j Next t=x(i):x(i)=x(k):x(k)=t NextEnd Sub5.3 参数传递Private Sub Form_Click()Dim a(50)As Integer,b(20)As Integer Dim i As Integer Cls Randomize For i=1 To 50 a(i)=Int(Rnd*100)Print a(i);If i Mod 10=0 Then Print Next Print Sort a For i=1 To 50 Print a(i);If i Mod 10=0 Then Print Next Print Randomize For i=1 To 20 b(i)=Int(Rnd*100)Print b(i);If i Mod 10=0 Then Print Next Print Sort b For i=1 To 20 Print b(i);If i Mod 10=0 Then Print NextEnd Sub5.3 参数传递n对上述排序程序进行修改,使得:n通过第2个参数来指定要排序的元素的个数n通过第3个参数来指定按升序还是降序排序n取值为True:按升序排列n取值为False:按降序排列5.3 参数传递Option Base 1Sub Sort(x()As Integer,n As Integer,d As Boolean)Dim i As Integer,j As Integer Dim k As Integer,t As Integer For i=LBound(x)To n-1 k=i For j=i+1 To n If d And x(k)x(j)Or Not d And x(k)x(j)Then k=j Next t=x(i):x(i)=x(k):x(k)=t NextEnd Sub5.3 参数传递Private Sub Form_Click()Dim a(20)As Integer,i As Integer Cls Randomize For i=1 To 20 a(i)=Int(Rnd

    注意事项

    本文(第5章过程.ppt)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开