第1章 基础知识

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

● 9.2
变量的作用域
● 9.2.1 变量作用域
● 9.2.2 变量的生存期 1. 局部变量
例如:
Dim a As Single Static x As String
【例9-1】局部变量示例。根据窗体的事件代码和通用过程,分析输出结 果。 窗体Form的Activate(控件激活)事件代码为: Private Sub Form_Activate() Dim a As Integer, b As Integer, c As Integer ' 定义局部变量 a = 4: b = 7 Print Print Tab(31); "a"; Tab(41); "b"; Tab(51); "c=a+b“ Print Print Tab(5); " 调用子过程 test 前的变量值 "; Tab(30); a; Tab(40); b; Tab(50); c Call test Print Tab(5); " 调用子过程 test 后的变量值 "; Tab(30); a; Tab(40); b; Tab(50); c End Sub
通用过程prod: Sub prod()
c=a+b
Print Tab(5); "子程序test中的变量值"; Tab(30); a; Tab(40); b; Tab(50); c End Sub
3. 全局变量
【例 9-3】变量使用方法示例。在一个标准模块文件中进行不同级的变量 声明。 Public a As Integer Private b As String*10 Sub test1() Dim x As Integer ' 局部变量 ' 全局变量 ' 模块级变量
Private Sub Form_Activate()
a = 4: b = 7 Print Print Tab(31); "a"; Tab(41); "b"; Tab(51); "c=a+b" Print Print Tab(5); " 调用子过程 test 前的变量值 "; Tab(30); a; Tab(40); b; Tab(50); c Call test Print Tab(5); " 调用子过程 test 后的变量值 "; Tab(30); a; Tab(40); b; Tab(50); c End Sub
【例9-6】编写程序,要求利用文本框检查用户口令,使用静态变量来限制输 入口令的次数。 编写文本框的事件代码: Private Sub Text1_KeyPress(KeyAscii As Integer) Static n As Integer ' 设置静态变量 If KeyAscii = 13 Then ' Enter键 If LCase(Text1.Text) = "dingaiping" Then MsgBox "欢迎使用本系统", 0, "请多提宝贵意见" Else n=n+1 If n = 3 Then MsgBox "对不起,您无权使用本系统。", 0, "密码错误!" Text1.Enabled = False Else MsgBox "您还有" & Str(3 – n) & "次机会。", 0, "对不起,口令错!" Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text)
' 产生随机数
' 产生随机数 ' 累计生成随机数的次数
' 如果有一个数字是7,则响铃
If (Label1.Caption = 7) Or (Label2.Caption = 7) Or (Label3.Caption = 7) Then Beep wins = wins + 1 ' 使用全局变量,累计获胜次数 Label4.Caption = "共产生了" & Str(n) & "次随机数,您赢了 " & Str(wins) & "次。" End If End Sub 编写“结束”命令按钮Command2 的Click(单击)事件代码: Private Sub Command2_Click() Unload Me End Sub
● 9.2 变量的作用域
● 9.2.1 变量作用域
● 9.2.2 变量的生存期
● 9.5.2 命令按钮的事件
● 9.3 过程的作用
● 习题 9
● 9.1 代码模块的概念
● 9.1.1 窗体模块 添加新窗体的步骤为: 1) 选择“工程”菜单中的“添加窗 体”命令,打开“添加窗体”对话 框,如图9-3所示。
第9章 变量与过程的作用域
● 9.1 代码模块的概念
● 9.1.1 窗体模块 ● 9.1.2 标准模块
● 9.3.1模块级过程和全局级过程 ● 9.3.2 调用其他模块中的过程 ● 9.3.3 过程的作用域及调用规则
● 9.1.3 类模块
● 9.4 变量与过程作用域示例
● 9.5 按钮控件
● 9.5.1 命令按钮的属性
在Module1标准模块中声明下面的函数过程: FunctioFra Baidu bibliotek rate(hits, att) Percent = hits / att rate = Format(Percent, "0.0%") End Function 编写“生成”命令按钮Command1的Click事件代码: Private Sub Command1_Click() Label1.Caption = Int(Rnd * 10) Label2.Caption = Int(Rnd * 10) Label3.Caption = Int(Rnd * 10) n=n+1
y = y & "*"
' y为静态变量
Print
Print Tab(5); "a="; a, " b="; b, "x="; x, "y="; y End Sub
● 9.3 过程的作用域
● 9.3.1模块级过程和全局级过程 1. 模块级过程 2. 全局级过程
● 9.3.2 调用其他模块中的过程
● 9.3.3 过程的作用域及调用规则
通用过程代码:
Sub test()
Dim a As Integer, b As Integer, c As Integer c=a+b ' 定义局部变量
Print Tab(5); "子程序test中的变量值"; Tab(30); a; Tab(40); b; Tab(50); c
End Sub 2. 窗体/模块级变量
编写“生成”命令按钮Command1的Click(单击)事件代码:
Private Sub Command1_Click() Label1.Caption = Int(Rnd * 10) ' 产生随机数
Label2.Caption = Int(Rnd * 10)
Label3.Caption = Int(Rnd * 10) n=n+1
例如:
Private x As String Dim y As Integer
【例9-2】窗体/模块级变量示例。根据窗体的事件代码和通用过程,分析 输出结果。
在通用段中声明: Private a As Integer, b As Integer, c As Integer ' 在通用段中定义变量
窗体Form的Activate(控件激活)事件代码:
● 9.1.2 标准模块
在工程中添加标准模块的步骤为: 1) 选择“工程”菜单中的“添加模 块”命令,打开“添加模块”对话 框,选择“新建”选项卡,如图94左所示。 2) 双击“模块”图标,打开新建标 准模块窗口,如图9-4右所示。
3) 在属性窗口修改该模块的“名称”属性(只有“(名称)”属性),给模 块命名。然后就可在标准模块的代码窗口中,向模块中添加过程。 ● 9.1.3 类模块
' 如果有一个数字是7,则响铃 If (Label1.Caption = 7) Or (Label2.Caption = 7) Or (Label3.Caption = 7) Then Beep wins = wins + 1 Label4.Caption = "共产生了" & Str(n) & "次随机数,您赢了" & Str(wins) & "次。" Label5.Caption = "获胜率为:" & rate(wins, n) End If
● 9.4 变量与过程作用域示例
【例 9-5】设计一个模拟幸运数字机游戏。设幸运数字为 7 ,每次由计算 机随机产生3个0~10之间的随机数,当这3个随机数中有一个数字为7 时,就算您赢了一次。要求利用全局变量来累计获胜次数。
设计步骤如下:
1) 建立用户界面及设置对象属性。
2) 编写事件代码。 Public n, wins

End Sub
Sub test2() Dim y As String … End Sub ● 9.2.2 变量的生存期 1. 动态变量 2. 静态变量 3. 动态变量与静态变量使用示例 ' 局部变量
【例9-4】运行下面的程序代码,分析运行结果。
窗体Form的Activate(控件激活)事件代码:
Private Sub Form_Activate()
Dim i As Integer For i = 1 To 4 ' 循环4次
tests
Next i End Sub 通用过程tests: Sub tests()
' 调用通用过程tests
Dim a As Integer, x As String ' 定义动态变量a和x,每次调用重新初始化 Static b, y a=a+1 b=b+1 x = x & "*" ' 定义静态变量b和y,保留变量的值 ' a为动态变量 ' b为静态变量 ' x为动态变量
End If End If End If End Sub
● 9.5 按钮控件
● 9.5.1 命令按钮的属性 1. Cancel属性 2. Default属性
3. Value属性
例如,要在程序中调用执行 命令按钮 Command1的 Click 事件过程: Command1.Value = 1 或 Command1.Value = True
4. Style属性
5. Picture属性
6. DisabledPicture属性
● 9.5.2 命令按钮的事件
● 习题 9
9.1 编写程序,实现化简分数。要求:在标准模块中编写求最大公约数 的Function过程,然后在窗体模块中调用,来对分数进行化简。 9.2 下面程序是利用全局变量和函数,修改例9-5后的程序。其实现功 能是:设计模拟幸运数字机游戏。设幸运数字为7,每次由计算机随机产 生3个0~10之间的随机数,当这3个随机数中有一个数字为 7时,就算您 赢了一次。要求利用函数过程计算获胜率。 请按照下面的设计步骤进行程序设计,运行成功后,分析代码。 设计步骤如下: 1) 建立用户界面及设置对象属性,参见图9-14,在例9-5基础上,增加 标签Label5用来输出获胜率。 2) 编写事件代码。 在标准模块中输入下面的代码,声明全局变量。当程序运行时,程序 中的每一事件过程都能访问该变量。 Public n, wins
End Sub 编写“结束”命令按钮Command2的Click事件代码: Private Sub Command2_Click() Unload Me End Sub
相关文档
最新文档