欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    VB子过程子函数.ppt

    • 资源ID:6522642       资源大小:1.42MB        全文页数:65页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    VB子过程子函数.ppt

    项目四 过程编写,1,共 74 页,主要内容,求组合数函数过程的定义和调用,竞赛评分子过程的定义和调用参数传递可选参数变量的作用域函数过程和子过程的作用域,共 74 页,2,活动一 求组合数,活动说明某班有m名学生,要选派n名学生参加合唱队,计算有多少种选派方法。程序界面如图所示。,共 74 页,3,活动一 求组合数,活动分析 本例是一个计算组合数的例子,可以利用如下组合数公式进行计算:在组合公式中,三次用到了求阶乘,其算法相同。对于算法相同的程序段,可以独立编写成函数过程。在程序中用到这段程序时,只需调用这一函数过程。,共 74 页,4,函数过程的定义、调用-1,函数(Function)过程的定义、调用定义函数过程函数过程定义的格式:Private|Public Function()As=或Return Exit Function=或Return End Function,共 74 页,5,学习支持,函数过程返回值的数据类型,函数过程的定义、调用-2,函数过程由Function语句声明它的名称、参数以及构成其主体的代码Private|Public:用于指出函数过程被调用的范围。Public表示函数过程是公共(全局)过程,Public函数过程可在整个项目内被调用。Private函数过程是局部过程,只能被包含其声明的窗体或模块调用。省略时,系统默认为是“Private”。,共 74 页,6,学习支持,函数过程的定义、调用-3,参数列表:指明了参数类型和个数。每个参数的格式为:ByVal|ByRef()As 在定义函数过程时,“参数列表”中的参数为形式参数(Formal parameter。形参只能是变量名或数组名(数组名后加“()”),定义时没有值,参数名之间用逗号分隔。函数过程没有参数时,函数过程名后的括号不能省。当参数为类、数组、接口、字符串类型时,默认的参数传递方式是按地址传递。,共 74 页,7,学习支持,表示其后的参数是按值传递还是按地址传递,参数类型,函数过程的定义、调用-4,“As”:定义函数过程返回值的数据类型。如省略,则为Variant。函数过程直接返回一个值到调用处,因此在函数过程体中至少要对“函数过程名”赋一次值;或用Return(表达式)。“Exit Function”:退出函数过程。,共 74 页,8,学习支持,函数过程的定义、调用-5,定义函数过程的操作利用命令定义函数过程在代码窗口中,将光标置于所有过程之外,右击鼠标,在快捷菜单中单击“插入代码段”命令,在弹出的下拉列表中,双击“通用代码模式”选项。在弹出的列表中双击“属性和过程”命令。在弹出的第三级下拉列表中双击“定义函数”命令。由此建立了一个函数过程的模板,在其中输入函数过程代码。模板中的函数名可以更改。在代码窗口定义函数过程在代码窗口所有过程之外,直接输入定义函数过程的代码。,共 74 页,9,学习支持,函数过程的定义、调用-6,函数过程的调用函数过程的调用和标准函数相同,格式如下:函数过程名(参数列表)参数列表:列表中的参数称为实际参数(Actual parameter),简称实参。实参的个数、位置、类型与形参完全一致。实参可以是同类型的常量、变量和表达式。如果是数组,省略维数和括号。与标准函数一样,函数过程不能作为单独的语句使用,只能作为表达式或表达式中的一部分。,共 74 页,10,学习支持,函数过程的定义、调用-7,例4-1-1:编写计算n!的函数过程。n!=n(n-1)(n-2)21分析:编写计算n!的函数过程,n是一个自变量。因此在函数过程中,将n作为一个参数。,共 74 页,11,学习支持,函数过程的定义、调用-8,在代码窗口的窗体模块声明段中定义函数过程:,共 74 页,12,学习支持,Public Class Form1 Public Function factorial(Byval n As Integer)As Double Dim t as Double,i As Integer t=1 For i=1 To n t=t*i Next i Return t End FunctionEnd Class,函数过程的定义、调用-9,共 74 页,13,学习支持,单击“计算”按钮的事件过程:Private Sub Button1_Click(ByVal sender As Object,_ ByVal e As System.EventArgs)Handles Button1.Click Label3.Text=factorial(Val(TextBox1.Text)End Sub 单击“清除”按钮的事件过程:,Private Sub Button2_Click(ByVal sender As Object,_ ByVal e As System.EventArgs)Handles Button2.Click Textbox1.Text=Label3.Text=End Sub,函数过程的定义、调用-10,提示:Label3.Text=factorial(Val(TextBox1.Text)中的Val(TextBox1.Text)是实参。下面是形参与实参的关系Label3.Text=factorial(Val(TextBox1.Text)Public Function factorial(ByVal n As Integer)As Double,共 74 页,14,学习支持,函数过程的定义、调用-11,提示:调用函数过程的程序,称为主调程序或主程序。下图说明了在主程序中调用函数过程的运行情况 主程序 调用 调用点 执行函数过程 返回主程序,共 74 页,15,调用函数过程,学习支持,函数过程的定义、调用-12,共 74 页,16,例4-1-2:计算1n的和及平均数。要求:单击求和按钮,求1n的和,结果显示在标签框中;单击求均数按钮,求1n的平均数,结果显示在标签框中。界面设计如下图。,学习支持,函数过程的定义、调用-13,分析:无论是求和,还是求均数,都要计算出1n个数的和。将求和的程序作为一个函数过程定义。在求和或求均数时,调用这段程序。n 的值决定了计算的项数,是一个自变量。因此在函数过程中,将n作为一个参数。因为在同一个窗体的两个事件过程中调用求和程序,所以在代码窗口的窗体模块声明段中编写定义求和的函数过程,共 74 页,17,学习支持,函数过程的定义、调用-14,共 74 页,18,Public Class Form1 Private Function sum(ByVal n As Integer)As Long Dim t As Long,i As Integer t=0 For i=1 To n t=t+i Next i sum=t End FunctionEnd Class,学习支持,初始化变量,将结果赋给函数过程,函数过程的定义、调用-15,单击“求和”按钮的事件过程:单击“求均数”按钮的事件过程:,共 74 页,19,Private Sub Button1_Click(ByVal sender As Object,ByVal e As System.EventArgs)Handles Button1.Click Label2.Text=1&TextBox1.Text&的和 Label3.Text=sum(Val(TextBox1.Text)调用函数过程 End Sub,Private Sub Button2_Click(ByVal sender As Object,ByVal e As System.EventArgs)Handles Button2.Click Label2.Text=1&TextBox1.Text&的均数 Label3.Text=sum(Val(TextBox1.Text)/Val(TextBox1.Text)End Sub,编程实现-1,在例4-1-1中已定义了计算阶乘的函数过程factorial。在活动一的求组合数中,可以调用这一函数过程。在活动一的单击“计算”按钮的事件过程中,调用factorial函数过程,计算组合数,共 74 页,20,编程实践,编程实现-2,程序代码如下:,共 74 页,21,Private Sub Button1_Click(ByVal sender As Object,ByVal e As System.EventArgs)Handles Button1.Click Dim m As Integer,n As Integer,c As Double m=Val(TextBox1.Text)n=Val(TextBox2.Text)c=factorial(m)/(factorial(n)*factorial(m-n)Label3.Text=共有&c&种选派方法End Sub,调用factorial函数过程,编程实践,共 74 页,22,活动二 竟赛评分,活动说明在竞赛活动中,有十位评委为选手评分。在十位评委的评分中,去掉一个最高分和一个最低分,再计算出选手的平均分。,共 74 页,23,活动二 竞赛评分,活动分析在本活动中,十位评委给出分数后,要去掉最低分和最高分。简单的办法是:将十个分数排序,去掉排序后的第一个和最后一个分数。在评委给每位选手评分后,用排序程序将选手得分排序。对于多次使用的排序程序,编写一段通用程序,像函数过程一样,一次定义,多处使用。这个问题与函数过程有所不同,它最终不是得到一个值,而是完成一组数据排序的功能。,共 74 页,24,子过程的定义和调用-1,子过程函数过程调用的结果是得到一个函数值。在实际应用中,有时是要完成某一种功能,无须返回一个值。在VB.NET中也可以像函数过程一样,将程序中多次重复使用的程序代码抽出来,使之成为一段独立的程序并给它一个名字。需要使用这段程序时,只要用它的名字来调用即可,这段程序代码称为子过程。,共 74 页,25,学习支持,子过程的定义和调用-2,子过程是取了名字的一段程序代码,它通常完成一个独立的(子)功能。在主程序中通过子过程的名来使用(调用)子过程。子过程执行结束后,自动返回主程序的调用点,继续执行调用点后的程序代码。子过程与函数过程的性质基本相同,它们之间的区别是:子过程名不带值;而函数过程名带值。,共 74 页,26,学习支持,子过程的定义和调用-3,子过程的定义子过程定义语句的格式:Private|Public Sub()Exit Sub 子过程体 End Sub格式中的“子过程名”、“参数列表”、“Public”、“Private”、“Exit”的含义与函数过程中的相同,共 74 页,27,学习支持,子过程的定义和调用-4,建立子过程的操作与函数过程相同子过程的调用调用子过程的两种格式:Call 子过程名()子过程名()说明:调用子过程是一个独立的语句。若实参要获得子过程的返回值,则形参必须是“传址”方式(ByRef);实参只能是变量,不能是常量、表达式或控件名。,共 74 页,28,学习支持,子过程的定义和调用-5,将活动二中排序程序定义为一个子过程。将这段程序放在代码窗口的窗体模块声明段中定义,然后在其他的事件过程中调用。定义子过程sort:,共 74 页,29,学习支持,Public Sub sort(ByRef a()As Integer)Dim i As Integer,j As Integer,t As Integer For i=0 To UBound(a)-1 For j=i+1 To UBound(a)If a(i)a(j)Then t=a(i)a(i)=a(j)a(j)=t End If Next j Next i End Sub,参数传递-1,在调用函数过程和子过程时,在调用语句处由实参向形参传递数据后,执行函数过程和子过程程序。形参是在子过程或函数过程的定义中出现的变量名,实参则是在调用子过程或函数过程时传送给子过程或函数过程的常数、变量、表达式或数组。在VB.NET中,实参和形参的数据传递有两种方式:传址(ByRef)又称为引用和传值(ByVal)。区分两种参数传送方式的方法是在定义的形参前加“ByRef”或“ByVal”关键字。,共 74 页,30,学习支持,参数传递-2,传址方式传址是将实参的地址传递给形参,在调用语句处,将实参变量的内存地址传递给被调用过程的形参,形参用得到的地址(实参的地址)访问变量。因此,如果在过程体中改变形参的值,实际上被改变的是实参的值。传址方式是通过关键字ByRef来定义的。在定义函数过程或子过程时,如果形参前面有关键字ByRef,表示该参数用传地址的方式传送,共 74 页,31,学习支持,参数传递-3,例4-2-1:编写分别改变两个自变量的值,第一个变量为两个变量和,第二个变量为两个变量积,并打印两个变量的子过程。参数传送采用“传址”方式。在单击窗体事件过程中对两个变量(实参)赋值,并显示两个变量(实参)的值;调用子过程后,再显示两个变量(实参)的值;观察实参值的变化。,共 74 页,32,学习支持,参数传递-4,在代码窗口的窗体模块声明段中定义子过程Change:,共 74 页,33,Sub Change(ByRef x As Integer,ByRef y As Integer)x=x+y y=x*y End Sub Private Sub Form1_Click(ByVal sender As Object,ByVal e As System.EventArgs)Handles Me.Click Dim a As Integer,b As Integer a=10:b=20 Label1.Text=调用前:&a=&Str(a)&b=&Str(b)Change(a,b)Label2.Text=调用后:&a=&Str(a)&b=&Str(b)End Sub,学习支持,参数传递-5,提示:在子过程change中,参数x、y采用的是传址方式。在单击窗体事件过程中,调用子过程change(a、b),将实参a、b的地址传给形参x、y。在调用子过程时,用地址去访问,真正被访问的就是实参a、b。因此,在子过程体中形参x、y的值被改变,从而改变了实参a、b的值。从程序运行的结果可以看出,实参a、b的值被改变了。,共 74 页,34,学习支持,参数传递-6,传值方式 在调用带参数的函数过程或子过程时,将实参的值复制给函数过程(或子过程)的形参,称为值传递(传值)。实际上形参只是实参的一个副本,无论函数过程体中形参的值怎样变化,实参的值均不受影响。在Visual Basic.NET中,传值方式通过在形参前加关键字ByVal或省略来实现。,共 74 页,35,学习支持,参数传递-7,例4-2-2:将例4-2-1中参数传递改为传值方式。只要将子过程change中形参x、y前的ByRef换成ByVal。对事件过程Form_Click未作任何修改。由此可见,传值方式没有改变实参a和b的原有值。,共 74 页,36,Sub change(ByVal x As Integer,ByVal y As Integer)x=x+y y=x*yEnd Sub,学习支持,参数传递-8,注意:在传值方式中,形参和实参分别占有不同的内存单元,形参值的变化不会影响实参的值。在传址方式中,形参与实参占有相同的内存单元。因此,当形参的值发生变化时,实参的值也随之而变。数组作为过程的参数时,可以定义为传址或传值,但系统按传址方式处理。ByVal方式下,形参数组值改变影响实参数组,但若对形参数组使用了ReDim,则形参数组获得新的存储空间,不再影响实参数组;ByRef方式下,形参数组的所有改变均影响实参数组。,共 74 页,37,学习支持,可选参数-1,可选参数用关键字Optional指定可选参数一般情况下,函数过程和子过程中形参的个数是固定的,在调用时实参的个数也是固定的。但Visual Basic 2005中,定义函数过程和子过程时可以将一部分形参定义成可选参数;在调用时,可以给可选参数提供实参,也可以不提供实参;这样增加了过程调用的灵活性。,共 74 页,38,学习支持,可选参数-2,在定义函数过程和子过程中,要将参数定义为可选参数,在形参前加关键字Optional。可选参数在定义时,必须注意:一个形参定义为可选参数后,参数列表中其后定义的形参也必须是可选参数。因此,定义为可选参数的形参一般放在参数列表的后部。定义为可选参数的形参,必须指出其类型和默认值。在调用有可选参数的过程时,在可选参数处可以提供实参也可不提供实参。提供实参时,用实参的值;不提供实参时,用定义形参时的默认值。,共 74 页,39,学习支持,可选参数-3,例4-2-3:定义一个求三个数和的函数过程,将第三个参数定义为可选参数。界面设计如图4-2-4所示。,共 74 页,40,学习支持,可选参数-4,在代码窗口的窗体模块声明段中定义函数过程Tsum:,共 74 页,41,Private function Tsum(Byval a As Integer,ByVal b as Integer,Optional ByVal c as Integer=0)As Integer Tsum=a+b+c End Function,在函数过程Tsum定义时,将第三个参数c定义为可选参数。,学习支持,可选参数-5,单击“求两个数之和”按钮的事件过程:,共 74 页,42,Private Sub Button1_Click(ByVal sender As Object,ByVal e As System.EventArgs)Handles Button1.Click Dim x As Integer,y As Integer x=InputBox(输入第一个数)y=InputBox(输入第二个数)Label1.Text=Str(Tsum(x,y)End Sub,学习支持,可选参数-6,单击“求三个数之和”按钮的事件过程:,共 74 页,43,学习支持,Private Sub Button2_Click(ByVal sender As Object,ByVal e As System.EventArgs)Handles Button2.Click Dim x As Integer,y As Integer,z As Integer x=InputBox(输入第一个数)y=InputBox(输入第二个数)z=InputBox(输入第三个数)Label2.Text=Str(Tsum(x,y,z)End Sub,可选参数-7,用数组参数作为可变参数在VB.NET中,还可以将过程中的最后一个形参定义成能接受任意多个实参的形式,这个形参接受实参的个数是可变的。在定义过程时在形参前加关键字ParamArray。注意,关键字ParamArray只能用于参数列表中的最后一个形参前或只有一个参数的过程,且不能与关键字ByRef或Optional 同时使用。格式为:Function 函数过程名(ParamArray 数组名()As 数据类型)Sub 过程名(ParamArray 数组名()As 数据类型),共 74 页,44,学习支持,可选参数-8,例4-2-4:将例4-2-3 求三个数和的函数过程改成求任意个数和的函数过程,只要将函数过程Tsum中的形参修改为:无论有几个参数都可用Sum函数过程,VB.NET会自动创建一个过程内的数组,如本例中的数组a。其元素的个数自动与实参个数相同。注意:用实参来替换形参ParamArray 数组时,实参可以是一组数据,也可是数组。,共 74 页,45,Private function Sum(Byval ParamArray a()As Integer)As Integer Dim i As Integer For i=0 to UBound(a)Sum=Sum+a(i)Next iEnd Function,学习支持,变量的作用域-1,VB.NET中有三种类型模块:窗体、标准和类。VB.NET的应用程序由若干个窗体模块(Class Form)、若干个标准模块(Module)、若干个类模块(Class)组成。一个 VB.NET应用程序的组成如下图所示:,共 74 页,46,学习支持,变量的作用域-2,变量的作用域变量的有效使用范围称为变量的作用域。按变量作用域从小到大,变量可分为块级变量、过程级变量、模块级变量、全局变量。块级变量某一语句块中声明的变量,只能在该语句块中使用。例如,在分支语句或循环语句中用Dim声明的变量,只能在声明的分支语句或循环语句中使用。,共 74 页,47,学习支持,变量的作用域-3,过程级变量 在某一过程内用Dim或Static语句声明的变量为过程级变量,也称局部变量。其作用域仅在声明它的过程内。不能在过程中使用Public声明变量。例4-2-5:过程级变量(局部变量)。输入两个整数,用两个按钮的单击事件过程分别求两个整数的和及平均数。程序运行结果如图:,共 74 页,48,单击“求和”命令按钮后,单击“求均数”命令按钮后,学习支持,变量的作用域-4,“求和”按钮单击事件过程:,共 74 页,49,Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button1.Click Dim x As Integer,y As Integer,sum As Integer x=Val(InputBox(输入第一个数)y=Val(InputBox(输入第二个数)sum=x+y Label1.Text=sum End Sub,x、y为本过程声明变量,学习支持,变量的作用域-5,“求均数”按钮单击事件过程,共 74 页,50,Private Sub Button2_Click(ByVal sender As Object,ByVal e As System.EventArgs)Handles Button2.Click Dim ave As Single,x As Integer,y As Integer ave=(x+y)/2 Labell.Text=ave End Sub,x、y为本过程声明变量,学习支持,变量的作用域-6,Button1_Click事件过程中用Dim语句说明的变量x和y,是该事件过程中的局部变量。当执行该事件过程时,系统自动为x和y分配内存单元,并进行初始化(初始化的值为0)。用InputBox函数输入x、y的值后,x、y的值分别存放在系统分配的内存单元中。该事件过程执行结束后,系统立即释放x、y占用的内存单元,它们的值也不存在了。如果再次执行该事件过程时,系统又重新为变量分配内存单元和初始化变量。,共 74 页,51,学习支持,变量的作用域-7,Button2_Click事件过程中,也声明了变量x、y。注意:此处的x、y非Button1_Click事件过程中的x、y,而是 Button2_Click事件过程中的局部变量。在执行该过程时,显示的结果为0。因为Button2_Click的事件过程中出现的变量x、y,在Button2_Click的事件过程中没有赋值,x、y为0,所以它们的平均数也为0。在事件过程中声明的过程级变量,其作用域为本过程。在不同的事件过程中,可以用同名的过程级变量,因为它们只在自己的过程中起作用,不会影响其它过程。在程序设计中,只需在某个过程中使用的变量,最好声明为过程级变量(局部变量)。,共 74 页,52,学习支持,变量的作用域-8,静态变量用Static语句声明的变量为静态变量。静态变量在该事件过程执行结束后,不释放所占用的内存单元。在下一次执行该事件过程时,系统不对静态变量进行初始化,因此,静态变量保存了上一次执行事件过程后的结果。Static语句只能出现在事件过程、子过程和函数过程中。,共 74 页,53,学习支持,变量的作用域-9,例4-2-6:单击按钮,变量x的值加1。分别用Static语句和Dim语句声明变量x,观察结果例4-2-6程序1:x声明为静态变量(Static x as Integer)x声明为静态变量时,静态变量x的值在执行事件过程后被保存;再次单击按钮执行事件过程时,不对x初始化,用前一次执行事件过程后的x的值加1例4-2-6程序2:x为非静态变量(Dim x as Integer)x为非静态变量时,每次执行事件过程时非静态变量x都被初始化,前一次执行事件过程后x的值也不复存在。,共 74 页,54,变量的作用域-10,模块级变量在VB.NET中,有窗体模块、类模块和模块。在模块内所有过程外,用Dim语句或Private语句声明的变量,为模块级变量。这些变量可以在声明的模块中的任何过程中使用;而在其它模块中无效。只要将例4-2-5中变量x、y放在本窗体模块的代码声明段中用Private或Dim语句声明,即可达到题目要求。,共 74 页,55,学习支持,变量的作用域-11,全局变量在模块的所有过程外,用Public语句声明的变量,为全局(公共)变量。全局变量可以在应用程序的所有模块中使用,不会被初始化。只有应用程序结束时,全局变量才释放所占的内存单元。使用全局变量时应注意:在声明全局变量的模块以外的其它模块的过程中使用该全局变量,应在全局变量名前加声明该全局变量的窗体模块名或模块名。例如:在Form1中用关键字Public声明了变量qq,在其它模块中使用时,应写成:Form1.qq,而不能写成qq。,共 74 页,56,学习支持,函数过程和子过程的作用域,函数过程和子过程的作用域过程的作用域分为:模块级和全局级模块级过程在窗体或标准模块内定义函数过程或子过程时,在其声明语句(Sub语句或Function语句)前加上关键字 Private,则称过程为模块级过程。这些过程只能被本窗体(在本窗体内定义)或本标准模块(在本标准模块内定义)中的过程调用。全局级过程 在窗体或标准模块内定义函数过程或子过程时,在其声明语句(Sub语句或Function语句)前加上关键字 Public,则称过程为全局级(公用)过程。全局级过程可供该应用程序的所有窗体和所有标准模块中的过程调用。,共 74 页,57,学习支持,子过程与函数过程之间的区别-1,例4-2-7:分别用子过程和函数过程编写计算求前n项和的程序。公式如下:progression=当 0.00001时,结束计算。,共 74 页,58,编程实践,子过程与函数过程之间的区别-2,在代码窗口的窗体模块声明段中定义子过程:,共 74 页,59,Public Sub progression(ByRef sum#,ByVal x!,ByVal esp#)Dim n%,t#n=2:sum=1:t=1 Do While(Math.Abs(t)=esp)t=t*x2/(n-1)*n)sum=sum+t n=n+2 LoopEnd Sub,编程实践,子过程与函数过程之间的区别-3,定义为函数过程,共 74 页,60,Public Function progression2(ByVal x!,ByVal esp#)As Double Dim n%,s#,t#n=2:s=1:t=1 Do While(Math.Abs(t)=esp)t=t*x2/(n-1)*n)s=s+t n=n+2 Loop Progression2=s End Function,编程实践,子过程与函数过程之间的区别-4,注意:与子过程progresssion相比,函数过程少一个形参不是所有的子过程都可以用函数过程定义的,但所有的函数过程均可用子过程定义。,共 74 页,61,编程实践,子过程与函数过程之间的区别-5,提示:函数过程有返回值,因此函数过程要定义类型。另外,还必须在函数过程体中给函数过程名赋值因为子过程没有值,所以子过程名也就不需要定义类型,也不能在过程体中给子过程名赋值。调用函数过程有返回值,因此象内部函数一样只能出现在表达式或语句中,不能单独出现。子过程的调用相当于一个语句。,共 74 页,62,编程实践,编程实现-1,活动二在学习支持中已将活动二排序程序定义为一个子过程。在程序中评委亮分后,需要调用该子过程,以完成活动二的要求。在代码窗口的窗体模块声明段中声明存放分数的数组c。单击“评委亮分”按钮的事件过程:,共 74 页,63,Dim c(9)As Integer,Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button1.Click Dim i As Integer For i=0 To 9 c(i)=Int(Rnd()*100)随机产生10个分数 Next i Call sort(c)调用排序子过程 End Sub,编程实践,编程实现-2,单击“去掉最低分”按钮的事件过程:单击“去掉最高分”按钮的事件过程:,共 74 页,64,Private Sub Button2_Click(ByVal sender As Object,ByVal e As System.EventArgs)Handles Button2.Click Label3.Text=CStr(c(0)显示去掉的最低分End Sub,Private Sub Button3_Click(ByVal sender As Object,ByVal e As System.EventArgs)Handles Button3.Click Label4.Text=CStr(c(9)显示去掉的最高分 End Sub,编程实践,编程实现-3,单击“选手得分”按钮的事件过程:,共 74 页,65,Private Sub Button4_Click(ByVal sender As Object,ByVal e As System.EventArgs)Handles Button4.Click Dim i As Integer,s As Integer For i=1 To 8 去掉c数组中第一个和最后一个元素,即去掉的最低、最高分 s=s+c(i)Next i ave=s/8 Label6.Text=CStr(ave)显示平均分 End Sub,编程实践,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开