分享

VB基础纲要

 你喜欢那个 2012-04-25

VB基础纲要

(2011-06-23 20:48:04)
标签:

杂谈

分类: 程序心得

6.7 常用算法

1. 求最大值和最小值

【例】找10个数中的最大值与最小值。

For i = 1 To 10

  If a(i) > Max Then Max = a(i)

  If a(i) < Min Then Min = a(i)

Next i

 

6.7.2 排序

升序:从小到大

降序:从大到小

 

1.比较交换法

For i = 1 To n - 1

  For j = i + 1 To n

  If a(i) > a(j) Then  

     t = a(i)

     a(i) = a(j)

     a(j) = t

   End If

 Next j

Next i

 

2.选择法排序

For i = 1 To n - 1

  p = i

  For j = i + 1 To n

    If a(p) > a(j) Then p = j  

  Next j

  t = a(i)

  a(i) = a(p)

  a(p) = t

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传址方式

将实参的地址传给形参,使实参和形参共用同一存储单元。

数据传送方向为双向,形参的改变对实参有影响。

实参:变量、数组名()

形参:变量、数组名()

  形参前加ByRef

例:Sub fact(ByRef n)

VB默认方式为传址方式

 

说明:

从过程中,返回计算结果,必须采用传址方式。

Private Sub Form_Click()

  n = 100

  m = 200

  Call abc(n, m)

  Print n, m

End Sub

Public Sub abc(ByVal x, y)

  t = x

  x = y

  y = t

  Print x, y

End Sub

   输出:200    100

         100    100

 

变量的作用域

作用域指变量能被某一过程识别的范围。

1.全局变量

在标准模块的通用段用Public声明变量

可在工程的所有模块、所有过程中使用

作用范围为整个应用程序。

例如:

Public x As Integer,y As Single

 

2.模块级变量

在窗体或标准模块的通用段

PrivateDim声明变量

作用域:在声明它的整个模块的所有过程有效。

例如:

Private x As Integer,y As Single

Dim x As Integer,y As Single

 

3.局部变量

过程中定义的变量

作用域:为其所在的过程

随过程的调用而分配存储单元,过程执行结束,所占用的存储

单元被释放。

 

静态变量:

Static声明的局部变量,在过程调用结束后保留值

 

【例】动态变量、静态变量和模块级变量的作用域。

Dim c As Integer

Private Sub Form_Click()

  a = 1: b = 2: c = 3

Print " a", " b", " c"

For i = 1 To 3

  Call test

Next i

Print " A", " B", " C"

Print a, b, c 

End Sub

 

Sub test()

  Static a

a = a + 1

b = b + 1

c = c + 1

Print a, b, c                              

End Sub     

 

数据文件

1.顺序文件的打开

 

格式Open “文件名” For <方式> As [#]<文件号>

  方式

  Output顺序写入方式

  Input顺序读出方式,指定的文件必须存在

  Append顺序添加方式

 

  写顺序文件语句(建立文件)

 

格式: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

    no = InputBox("输入学号:")

    While no <> 99999

      nam = InputBox$("输入学生姓名:")

      score = InputBox("输入学生成绩:")

      Write #2, no, nam, score

      no = InputBox("输入学号:")

    Wend 

    Close #2

End Sub

 

读顺序文件语句

 

(1)                              Input#语句

  格式:Input#文件号,变量表

  功能从顺序文件中读数据,赋给变量表中的变量。

  说明

  变量表中的变量类型必须与文件中数据项的类型一致

【例】将学生成绩文件“chengji1.dat”读入内存,在窗体上显示出来。P

 Private Sub Form_Click()

   Dim no As Long, nam As String

Dim score As Single

   Open "d:\chengji1.dat" For Input As #2

   Print " 学号", "姓名", "成绩"

While Not Eof(2)

      Input #2, no, nam, score

      Print no, nam, score

   Wend

    Close #2

 End Sub

 

 

Line Input#语句

 

  格式:Line Input#,字符串变量

  功能:从顺序文件中读取一整行赋给一个字符串变量。

  说明:

  将以回车符为结束标志的整行当作一个字符串赋给一个字符串变量。

 

常用控件

窗体

设计称窗体,运行后称窗口 

Print方法:在窗体输出数据

Show方法:显示窗体。

Click事件:鼠标单击窗体,调用窗体事件过程Form_Click()

Load事件:执行程序时自动触发

Unload事件:关闭窗体时执行

 

文本框:

Text属性——文本框中显示的内容,默认值为Text1、……等。

Text1.Text = 字符串

  Text1 = 字符串

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)

     

    If  Index = 3  then

      ‘处理第四个命令按钮的操作

    End If

     

End Sub

 

菜单编辑器

主要属性:

Caption、NameIndexShortcut

Checked、EnabledVisible

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多