(1)从文本(字符串)的左边开始,取出一个字符;设逻辑量WT表示所取字符是否是单词内的字符,初值设为False
(2)若所取字符不是―空格‖,―逗号‖,―分号‖或―感叹号‖等单词的分隔符,再判断WT是否为True,若WT不为True则表是新单词的开始,让单词数Nw=Nw+1,让WT=True; (3)若所取字符是―空格‖,―逗号‖,―分号‖或―感叹号‖等单词的分隔符, 则表示字符不是单词内字符,让WT=False;
(4) 再依次取下一个字符,重得(2)(3)直到文本结束。 下面程序段是字符串strI中包含的单词数 Nw = 0: Wt = False nL = Len(RTrim(strI)) For i = 1 To nL
strT = Mid$(strI, i, 1) '取第i个字符 Select Case strT
Case \ Wt = False Case Else
If Not Wt Then Nw = Nw + 1 Wt = True End If End Select Next i
Print \单词数为:\
八、穷举法穷举法(又称―枚举法‖)的基本思想是:一一列举各种可能的情况,并
判断哪一种可能是符合要求的解,这是一种―在没有其它办法的情况的方法‖,是一种最―笨‖的方法,然而对一些无法用解析法求解的问题往往能奏效,通常采用循环来处理穷举问题。
例: 将一张面值为100元的人民币等值换成100张5元、1元和0.5元的零钞,要求每种零钞不少于1张,问有哪几种组合? Dim i%, j%, k%
Print \元 1元 0.5元\ For i = 1 To 20
For j = 1 To 100 - i k = 100 - i - j
If 5.0 * i + 1.0 * j + 0.5 * k = 100 Then Print i, j, k End If Next j Next i
九、递归算法
用自身的结构来描述自身,称递归
VB允许在一个Sub子过程和Function过程的定义内部调用自己,即递归Sub子过程和递归Function函数。递归处理一般用栈来实现,每调用一次自身,把当前参数压栈,直到递归结束条件;然后从栈中弹出当前参数,直到栈空。 递归条件:(1)递归结束条件及结束时的值;(2)能用递归形式表示,且递归向终止条件发展。
例:编fac(n)=n! 的递归函数
Function fac(n As Integer) As Integer If n = 1 Then fac = 1
Else
fac = n * fac(n - 1)
End If
End Function
第八讲 数组
-----静态数态
重点:
1、掌握数组的概念以及数组的定义和数组的结构 2、数组相关的函数和语句 3、数组元素的引用
4、数组元素的输入、输出和处理
8.1 数组的概念
数组:是同类变量的一个有序的集合。 例:有5个学生的数学成绩,
若编程时这样存放: s1=50 s2=90 s3=80 s4=60 则5个分数分别存放在s1 s2 s3 s4 s5 简单变量中
若编程时这样存放: s(1)=89 s(2)=67 s(3)=42 s(4)=68 s(5)=97 则5个分数分别存放在一个s 数组中。
一、数组命名、数组元素、数组的维数与数组的类型:
上例中: 数组名 s 命名规则同简单变量的命名规则。P45 数组元素:数组中的每个成员为一个元素。 如上例中s 数组中有5个元素,分别为: s(1) s(2) s(3) s(4) s(5) 数组元素又称为下标变量。
其中: 1,2,3,4,5称为下标。表示该元素在数组中排列的位置。 数组的维数:
一维数组:只有一个下标的数组称为一维数组。
二维数组:有两个下标的数组称为二维数组。 X(2,5)
N维数组:有N个下标的数组称为N维数组。 Score(1,3,5??) 数组的类型:
(1) 固定大小数组:P85
(2) 动态数组:
二、数组定义:程序中的数组必须先定义,后使用。
①数组说明语句一般格式:P85 Dim 数组名1([<维界定义>])[ As <数据类型> ][,数组名2(下标范围) As
s5=70
<数据类型>]…… 其中:维界定义的形式: [下界1 to] 上界1[,[下界2 to] 上界2]…… 例如:Dim a(1 to 5) As integer 本语句说明了一个 一维a 数组,有5个元素,分别为a(1),a(2),a(3),a(4),a(5)
又例如:Dim b(1 to 2,1 to 3) As Single,c(3) As Integer, d(3 to 5)
本语句说明了三个数组:
二维数组 b :有2行3列,6个元素分别为: b(1,1) b(1,2) b(1,3)
b(2,1) b(2,2) b(2,3)
一维数组 c :有4个元素:c(0) c(1) c(2) c(3) 一维数组 d :有3个元素:d(3) d(4) d(5)
使用说明:
? 下界缺省时,为 0。
? 若在窗体或标准模块的所有过程之前书写下列语句: Option Base 1
则下界缺省值为 1 。
? 下界1 或下界2只能是常量,不允许是变量或其它表达式。
8.2
7.2.1 数组元素的赋值 1.用赋值语句给数组元素赋值 例:P92
Dim Score(3) As Integer
Dim Two(1,1 to 2)As Integer Score(0)=80 Score(1)=75 Score(2)=91 Score(3)=68 Two(0,1)= Score(0) Print Two(0, 1)
数组的基本操作
2 通过循环逐一给数组元素赋值
例:
Private Sub Form_Click()
Dim A(6) As Integer, i As Integer
Dim B(1 To 2, 1 To 2) As Integer, j As Integer
For i = 0 To 6 '使用循环给一维数组赋值并输出 A(i) = Int(99 * Rnd) + 1 Print A(i) Next i
For i = 1 To 2 '利用二重循环给二维数组赋值并输出 For j = 1 To 2
B(i, j) = i * 10 + j Print B(i, j); Next j Print Next i End Sub