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属性——标签中显示文本,默认值为Label1、……。
命令按钮:
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
联系客服