大范文网 - 每天发现一点点
每天学习一点点!
  • 工作计划格式
  • 工作计划开头
  • 工作计划结尾
  • 工作计划怎么写
  • 总结与计划
  • 工作计划模板
  • 工作计划范文
  • 个人工作计划
  • 周工作计划
  • 年度工作计划
  • 年终工作计划
  • 半年工作计划
  • 季度工作计划
  • 月度工作计划
  • 试用期工作计划
  • 实习工作计划
  • 转正工作计划
  • 护理工作计划
  • 党建工作计划
  • 党支部
  • 团支部
  • 党风廉政建设
  • 年度工作计划
  • 业务员
  • 班主任
  • 学生会
  • 幼儿园
  • 教师工作计划
  • 医院工作计划
  • 健康教育
  • 销售工作计划
  • 会计工作计划
  • 当前位置:大范文网 > 工作计划 > 健康教育 >

    浅谈VB,6.0中变量、过程的定义、调用及作用域_static 变量

    分类:健康教育 时间:2020-03-31 本文已影响

    相关热词搜索:浅谈 变量 调用 定义 作用

    (呼伦贝尔学院信息科学分院,内蒙古 海拉尔 021008)
    摘 要:在VB6.0这种面向对象的可视化程序设计中,深刻的理解和掌握变量的声明及作用域和过程的定义、调用及作用域极为重要,本文结合实例分别来介绍。
    关键词:VB 6.0;
    变量;
    过程;
    作用域;
    调用
    中图分类号:TP312  文献标识码:A  文章编号:1007—6921(2007)07—0088—02
    1 变量的声明及作用域
    1.1 变量的声明
          变量是程序执行过程中,其值可以改变的量用来存放程序中所需的数据。它的命名规则是以字母或汉字开头,后可跟汉字、字母、数字或下划线组成,长度小于等于255个字符;
    不能用VB中的关键字;
    不区分大小写。变量的声明分为显式声明和隐式声明(变量声明也称变量定义)。
          显式声明格式:Public|Private|Dim|Static 变量名 [AS 类型]或 Public|Private|Dim|Static变量名 类型符。
          注:由关键字Static声明的变量为静态变量,其他方式声明的为动态变量。静态变量的值在整个程序的运行中可以一直保留,而动态变量每次调用过程时都会重新初始化。
          隐式声明变量:未进行上述的声明而直接使用,其类型为 Variant 类型,赋值后由值的类型决定变量的类型。建议不使用。
          注意:由于VB允许隐式变量的使用,如果同一变量拼写出错,在隐式声明中无法查出,初学者可以在通用声明处加Option Explic语句可强制显式声明变量,要求所有变量必须先声明后使用。
    1.2 变量的作用域
          变量的作用域是指变量的有效作用范围,即变量可以被访问的范围。
          VB中变量的作用域分为:
          局部变量:在过程内用声明的变量,只能在本过程中使用。
          窗体/模块级变量:在“通用声明”段中用Dim语句或用Private语句声明的变量,可被本窗体/模块的任何过程访问。


          全局变量:在“通用声明”段中用Public语句声明的变量,可被本应用程序的任何过程或函数访问。
    变量作用域对照表如表1。
    2 过程的定义、调用和作用域
          VB应用程序是由过程组成的,除了系统中提供的内部函数过程和事件过程外,在应用程序的编写中,有时问题比较复杂,按照结构化程序设计的原则,可以把问题逐步细化,分成若干个功能模块,通过VB提供的自定义过程将功能模块定义成一个个过程,供事件过程多次调用。使用过程的好处是程序简练、便于调试和维护。在VB6.0中,自定义过程可分为以下几种:以Function保留字开始的为函数过程;
    以Sub保留字开始的为子过程;
    以Property保留字开始的为属性过程;
    以Event保留字开始的为事件过程。
           下面主要介绍函数过程和子过程的定义、调用及作用域。


    2.1 过程的定义
    2.1.1 函数过程的定义
          ①利用“工具”菜单下的“添加过程”命令——选择函数,定义生成一个函数过程的框架。②利用代码窗口直接定义,一般格式:
          Function 函数过程名([参数列表]) [As 类型]
          局部变量或常数定义
          函数过程名 = 返回值           
          Exit Function]
          语句块
          End Function
          函数过程名:命名规则同变量名;
    参数列表形式:[ByVal]变量名[()][As 类型]称为形参,仅表示参数的个数、类型,无值;
    函数名 = 返回值 在函数体内至少对函数名赋值一次;
    [Exit Function]:表示退出函数过程。
    2.1.2 子过程的定义
          ①利用“工具”菜单下的“添加过程”命 令——选择子程序,定义生成一个子过程的框架。②利用代码窗口直接定义,一般格式:
          Sub 子过程名[(参数列表)]
          局部变量或常数定义
         [Exit Sub]
          语句
          End Sub
    2.1.3 举例:进制转换,把二至十六任意进制的字符串转换成十进制整数
          ①用函数过程定义。
          Private Function convert(ByVal s As String, ByVal r As Integer)As Long "s 表示任意进制的字符串,r表示进制
          Dim n%,i%,c As String * 1,p&
          n = Len(s): p = 0
          For i = 1 To n
          c = UCase(Mid(s, i, 1))
          Select Case c
          Case “0” To “9”
          p = p * r + Val(c)
          Case “A” To “Z”
          p = p * r + Asc(c) - 55
          End Select
          Next i
          convert = p"函数过程名中存放转换后的十进制整数
    End Function
          ②用子过程定义。
          Private Sub convert(ByVal s As String, ByVal r As Integer,D as Long) 
          Dim n%,i%,c As String * 1,p&
          n = Len(s): p = 0
          For i = 1 To n
          c = UCase(Mid(s, i, 1))
          Select Case c
          Case “0” To “9”
          p = p * r + Val(c)
          Case “A” To “Z”
          p = p * r + Asc(c) - 55
          End Select
          Next i
          D = p  "变量D中存放转换后的十进制整数
    End Sub
    2.2 过程的调用
    2.2.1 函数过程的调用
          格式:变量名=函数过程名([参数列表]) 
    2.2.2 子过程的调用
          ①用Call语句调用子过程,格式:Call子过程名 [参数列表]
          ②把过程名作为一个语句来使用,格式:子过程名[参数列表]
          参数列表:称为实参,形参个数相同,位置与类型一一对应可以是同类型的常量、变量、表达式。
    2.2.3 举例:在窗体模块中编写命令按钮单击事件过程来分别调用进制转换的函数过程和子过程
          Private Sub Command1-Click()
          Dim s1 As String, r1 As Integer, d1 As Long
          s1 = Text1.Text :r1 = Val(Text2)
          d1 = convert(s1, r1)′函数过程的调用
          Call convert(s1, r1, d1)′子过程的调用
          convert s1, r1, d1′子过程的调用
          Text3.Text = d1
    End Sub
    2.3 过程的作用域
          过程随所处的位置不同,可被访问的范围,称为过程的作用域。
          VB中过程的作用域分为:
          窗体/模块级:加Private关键字的过程,只能被定义的窗体或模块中的过程调用。
          全局级:加Public关键字(缺省)的过程,可供该应用程序的所有窗体和标准模块中的过程调用。
          过程作用域对照表如下:


    2.4 确定使用时应定义函数过程或子过程的一点建议
          由我们上面过程的定义和调用可知,子过程和函数过程的区别是前者子过程名无值;
    后者函数过程名有值。若过程有一个返回值,则习惯使用函数过程;
    若过程无返回值或返回多个值,一般使用子过程,通过实参与形参的结合带回结果。
          一般来说,一个函数过程可以被一个子过程代替,代替时只要改变函数过程定义的形式,并在子过程的形参中增加一个地址传递的形参来传递结果。但反过来。有一个函数过程去代替一个子过程,有时是不容易实现的。
    [参考文献]
    [1] 曾强冲,杨莉等.Visual Basic6.0 程序设计教程[M]. 北京:中国水利水电出版社,2001.
    [2] 刘炳文.Visual Basic 程序设计教程[M].北京:清华大学出版社,2003.
    [3] 刘瑞新,崔淼.Visual Basic程序设计教程[M].北京:机械工业出版社,2003.