VB基本算法
- 格式:ppt
- 大小:268.00 KB
- 文档页数:32


VB 基础语法
VB的基本语法
一.变量的定义:
变量定义的方法: Dim语句,Global语句,ReDim语句,Public语句,Private语句,Protect语句
VB中缺省数据类型的判断方法,该过程中最大的使用长度.---不安全,推荐定义变量时使用强制变量定义方法,同时在不同层次的局部变量的定义时加上相应的前缀例如整个应用层次的变量我们用Glob_开头,Form级变量我们用Inst_开头.在开发一个复杂的应用程序,当使用的变量高达1000以上时这些要求就显得特别重要了,因此大家应该养成这种习惯.VB中如果有Option Explicit则所有变量都必须声明.
二.变量的赋值:
变量名称=表达式,变量名称,函数
三.数组的使用:
1.在一般的函数或过程中使用ReDim语句,在Form级中使用Dim语句,在全局模块中使用Global语句.格式为Redim K(1 to 100,1 to 10) as 变量类型.
四.判断结构
If … Then … If … Then
Else
End if
If … Then
Elseif … Then
Elseif … Then
Else
End if
If … Then
Else if … Then
end if
End if
select case …
case …
case else …
end select
五.循环结构:
For … Step …
Next
For each …
Next
Do
loop while(Until) …
Do while(Until) …
loop
while …
wend
六.嵌套语句的使用:
退出相应的嵌套语句Exit (For,Do,Sub…)
VB常用算法介绍
在VB程序开发中,常常需要使用各种算法来处理数据和解决问题。下面将介绍几种常用的VB算法,包括排序算法、算法和图算法等。
1.排序算法
排序算法用来将一组数据按照一定的规则进行排列。常见的排序算法包括冒泡排序、选择排序、插入排序、归并排序和快速排序等。
冒泡排序(Bubble Sort)是一种交换排序算法,通过不断地相邻元素比较和交换,将较大的元素逐渐交换到末尾,从而实现排序。冒泡排序的时间复杂度为O(n^2)。
选择排序(Selection Sort)是一种排序算法,每次从待排序的数据元素中选择最小(或最大)的一个元素,放到已排序的序列的末尾。选择排序的时间复杂度为O(n^2)。
插入排序(Insertion Sort)是一种排序算法,将数组元素分为已排序和未排序两部分,每次从未排序的部分中取出一个元素,插入到已排序的部分的适当位置。插入排序的时间复杂度为O(n^2)。
归并排序(Merge Sort)是一种分治排序算法,将待排序的数据分为两个子序列,然后递归地对子序列进行排序,并将两个已排序的子序列合并成一个有序序列。归并排序的时间复杂度为O(nlogn)。
快速排序(Quick Sort)是一种分治排序算法,通过一次划分将待排数据分成左右两个子序列,然后递归地对子序列进行排序。快速排序的时间复杂度为O(nlogn)。
2.算法 算法用来在一个数据集合中查找一些元素或满足特定条件的元素。常见的算法包括线性、二分和深度优先。
线性(Linear Search)是一种简单的算法,从数据集合的第一个元素开始逐个比较,直到找到目标元素或遍历完整个集合。线性的时间复杂度为O(n)。
二分(Binary Search)是一种在有序数据集合中查找目标元素的算法,通过每次将范围缩小一半来快速定位目标元素。二分的时间复杂度为O(logn)。
深度优先(Depth-First Search,DFS)是一种用来在图或树结构中遍历所有节点的算法,从一个起始节点开始,先遍历一个邻接节点,然后再递归地遍历该邻接节点的邻接节点。深度优先的时间复杂度为O(V+E),其中V是顶点数,E是边数。
第 1 页 VB常用算法---累加和连乘
一、算法说明
累加形式:V=V+e
连乘形式:V=V*e
其中:V是变量,e是递增表达式。累加和连乘一般通过循环结构来实现。
注意:需在执行循环体前对变量V赋初值。一般的,累加时置初值0;连乘时置初值为1。
举例说明:求N! 的结果。
Private Sub Command1_Click()
Dim n%, i%, s&
n = Val(InputBox("输入n"))
s = 1
For i = 1 To n
s = s * i
Next i
Print s
End Sub
错误的写法:
Private Sub Command1_Click()
Dim n%, i%, s&
n = Val(InputBox("输入n"))
For i = 1 To n
s = 1 ‘赋初值语句位置不对!
s = s * i 第 2 页 Next i
Print s ‘输出s的值为n,而不是n!
End Sub
二、应用举例
例1. 根据下列公式,求自然对数e的的近似值。
要求:误差小于0.00001
Private Sub Command1_Click()
Dim i%, n&, t!, e!
e = 2
i = 1
t = 1
Do While t > 0.00001
i = i + 1
t = t / i
e = e + t
Loop
Print "计算"; i+1; "项后,自然对数e值为:"; e
Print Exp(1) ‘与上句输出值进行对比以证明算法的正确性
八转十
Private Sub Command1_Click()
Dim i As Long, m As String
m = Val(Text1.Text)
For i = 1 To Len(m)
n = n * 8 + Val((Mid(m, i, 1)))
Next i
Text2 = n
End Sub
动态数组 杨辉三角形
Private Sub Command1_Click()
Dim a() As Integer
Dim i As Integer, j As Integer, n As Integer
Do
n = Val(InputBox("请输入行数(1-15):"))
Loop Until n >= 1 And n <= 15
ReDim a(n, n)
For i = 1 To n
For j = 1 To i
If j = 1 Or j = i Then
a(i, j) = 1
Else
a(i, j) = a(i - 1, j - 1) + a(i - 1, j)
End If
Print a(i, j);
Next j
Next i
End Sub
二维数组行列交换
Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim a(3, 3) As Integer, b(3, 3) As Integer
Dim i As Integer, j As Integer
For i = 1 To 3
For j = 1 To 3
a(i, j) = (i - 1) * 3 + j
Picture1.Print a(i, j);