VisualBasic 程序设计教程 教学课件 作者 刘莲英 第8章 过程.pptVIP

  • 10
  • 0
  • 约1.98万字
  • 约 109页
  • 2017-08-19 发布于广东
  • 举报

VisualBasic 程序设计教程 教学课件 作者 刘莲英 第8章 过程.ppt

第 8 章 过 程 哥德巴赫猜想(续) 操作步骤: (1)界面设计: 在窗体上添加控件(1个标签、1个命令按钮和2个文本框) 通过属性窗口设置窗体、标签和命令按钮的属性 (2)代码设计: 定义一个函数过程,实现判断素数的功能 If isPrime(K) Then Label1.Caption = 结果: N = I + K 符合! Exit Sub End If End If Next Label1.Caption = 结果: 不符合! Else Text1.Text = 请输入大于或等于6的偶数! End If Else Text1.Text = 请输入数字! End If End Sub 说 明 ⑤ 形式参数与实参数据类型一般要求相同。 当按地址传递时,形参与实参的数据类型必须相同,否则就会出错。 当按值传递时,实参如与形参数据类型不同,系统将实参的数据类型转换为形参的数据类型,如果不能转换为形参的数据类型,则会出错。 8.5.2 过程的递归调用 2、静态变量 在过程内使用Static声明的变量属于静态变量 系统给静态变量分配存储空间后,该变量始终占据存储空间,并在应用程序运行期间保留其值。即在每次调用该变量所在的过程时,该变量不会被重新初始化,而在退出变量所在的过程时,不释放该变量所占的存储空间,其值仍然保留。 ③ 添加一个标准模块,将“转换”函数过程代码写在标准模块中,代码如下:(自学) Public Function toDec (str$, r%) As Integer Dim tmp As String * 1, i As Integer Dim k As Integer, n As Integer, sum As Long n = Len (Trim(str)) sum = 0 For i = n To 1 Step -1 tmp = Mid (str, i, 1) 从右到左逐位取数码 Select Case tmp 确定逐位取出的数码值 Case A, a k = 10 Case B, b k = 11 Case C, c k = 12 Case D, d k = 13 Case E, e k = 14 Case F, f k = 15 Case Else k = Val(tmp) End Select sum = sum + k * r ^ (n - i) 按数码的权值进行累加 Next i toDec = sum End Function 说明: (1)全局变量的使用很方便,但是它在程序的有效运行期都占据内存,且不符合面向对象的原则(封装性不好)。 (2)在标准模块中声明的全局变量,在应用程序的任何一个过程中可直接引用它,而在某个窗体模块中声明的全局变量,当其他窗体模块引用它时,必须用定义它的窗体模块名作为前缀。 例如: Form1.max 全局变量(续) 在不同过程中定义同名的局部变量互不影响; 若在过程中定义了与全局变量同名的变量,则在过程内优先访问局部变量,若要访问全局变量,要在变量名前加模块名;如: 变量的作用域-同名变量 Public Temp As integer 全局变量 Sub Form_Load() Dim Temp As Integer 局部变量 Temp=10 访问局部变量 Form1.Temp=20 访问全局变量必须加窗体名 Print Form1.Temp, Temp End Sub 运行结果,显示 20 10 注意:若在过程中定义了与模块级变量(在通用部分用priv

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档