6.7 常用算法 1. 求最大值和最小值 【例】找10个数中的最大值与最小值。 For i = 1 To 10 Next i 6.7.2 排序 升序:从小到大 降序:从大到小 1.比较交换法 For i = 1 To n - 1 Next i 2.选择法排序 For i = 1 To n - 1 Next i 3.冒泡法排序 特点:相邻的两个元素进行比较 For i = 1 To n - 1 For j = 1 To n - i If a(j) > a(j + 1) Then t = a(j) a(j) = a(j + 1) a(j + 1) = t End If Next j Next i 过 函数过程的定义 Function函数过程名(形参表) [As 类型] …… 函数过程名=表达式 …… End Function 说明: 函数过程名有值,有类型,在过程体必须被赋值 调用形式: 函数过程名(实参表) 子程序过程定义 Sub 子程序过程名(形参表) …… End Sub 说明:子程序过程名无值,无类型 调用形式: Call 子程序过程名(实参表) 【例】函数过程使用 编写函数过程计算n! Private Sub Command1_Click() n = Val(Text1.Text) Text2.Text =fact(n) End Sub Function fact(n) f = 1 For i = 1 To n f = f * i Next i fact = f End Function 【例】子程序过程计算n! Private Sub Command1_Click() n = Val(Text1.Text) Call fact(n, f) Text2.Text = f End Sub Private Sub fact(n, f) f = 1 For i = 2 To n f = f * i Next i End Sub 说明: 由若干变元计算一个值用Function过程 计算若干值,只能用Sub过程。 7.3 参数传送 1传值方式 将实参的值传给形参,数据传送方向为单向,形参的改变 对实参无影响。 实参:常量、(变量)、或表达式 形参:变量 或 形参前加关键字ByVal 例:Sub fact(ByVal n) 2传址方式 将实参的地址传给形参,使实参和形参共用同一存储单元。 数据传送方向为双向,形参的改变对实参有影响。 实参:变量、数组名() 形参:变量、数组名() 或 例:Sub fact(ByRef n) VB默认方式为传址方式 说明: 从过程中,返回计算结果,必须采用传址方式。 Private Sub Form_Click() End Sub Public Sub abc(ByVal x, y) End Sub 变量的作用域 作用域指变量能被某一过程识别的范围。 1.全局变量 在标准模块的通用段用Public声明变量 可在工程的所有模块、所有过程中使用 作用范围为整个应用程序。 例如: Public x As Integer,y As Single 2.模块级变量 在窗体或标准模块的通用段 用Private或Dim声明变量 作用域:在声明它的整个模块的所有过程有效。 例如: Private x As Integer,y As Single 或 Dim x As Integer,y As Single 3.局部变量 在过程中定义的变量 作用域:为其所在的过程。 随过程的调用而分配存储单元,过程执行结束,所占用的存储 单元被释放。 静态变量: 用Static声明的局部变量,在过程调用结束后保留值。 【例】动态变量、静态变量和模块级变量的作用域。 Dim c As Integer Private Sub Form_Click() Print " a", " b", " c" For i = 1 To 3 Next i Print " A", " B", " C" Print a, b, c End Sub Sub test() a = a + 1 b = b + 1 c = c + 1 Print a, b, c End Sub 数据文件 1.顺序文件的打开 格式:Open “文件名” For <方式> As [#]<文件号> 格式:Write#文件号,输出项表 【例】建立一个学生成绩文件P Private Sub Form_Click() Dim no As Long, nam As String Dim score As Single Open "d:\chengji1.dat" For Output As #2 End Sub 读顺序文件语句 (1) 【例】将学生成绩文件“chengji1.dat”读入内存,在窗体上显示出来。P Dim score As Single While Not Eof(2) Line Input#语句 常用控件 窗体 设计称窗体,运行后称窗口 Print方法:在窗体输出数据 Show方法:显示窗体。 Click事件:鼠标单击窗体,调用窗体事件过程Form_Click() Load事件:执行程序时自动触发 Unload事件:关闭窗体时执行 文本框: Text属性——文本框中显示的内容,默认值为Text1、……等。 Text1.Text = 字符串 或 Change事件:改变Text属性时触发 GotFocus事件:获得焦点时触发 SetFocus方法:设置焦点,将光标移到文本框 标签控件: 命令按钮: Caption属性——命令按钮显示的字符 Enabled属性——设置命令按钮是否为活动状态(True) Click事件:鼠标单击事件,调用命令按钮事件过程Command1_Click() 计时器控件: Interval属性——设置计时器事件之间的时间间隔 Timer事件:当达到Interval属性规定的时间间隔时触发该事件。 单选按钮: Caption属性——标题,默认值为Option1、……等。 Value属性——是否为选中, 选中(True) 复选框: Caption属性——标题,默认值为Check1、……等。 Value属性——设置是否为选中,1(选中) 列表框: List属性——用于列出列表框中的所有项目,是一个 字符数组,,下标从0开始。 ListCount属性——返回在列表框中列表项数 (序号从0开始,最后一项为ListCount-1)。 ListIndex属性——当前选中的列表项的索引,第一项为0 Text属性——得到当前列表项的内容 控件数组 由一组类型相同的控件组成 Index属性——控件数组的下标。 Private Sub Command1_Click(Index As Integer) … End Sub 菜单编辑器 主要属性: Caption、Name、Index 、Shortcut、 Checked、Enabled、Visible |
|