二级VB上机重难点题型归纳 一、二维数组(矩阵)操作 1、求矩阵元素的最大值 Dim a(5, 5) As Integer '省略给数组a赋值代码 '求数组a的最大值 Max = a(1, 1) '假设第一个数为最大值初值 For i = 1 To 5 For j = 1 To 5 If a(i, j) > Max Then Max = a(i, j) End If Next j Next i '循环结束后,max获得最大值 '注意for i循环必须从1开始,不能从2开始 '若for i循环从2开始,那a(1,2),a(1,3),a(1,4),a(1,5)都无法参加比较
2、求方阵对角线元素之和、两个对角线元素之和 假定有如下定义: Const N% = 6 Dim a(1 to N,1 to N) as Integer 则a数组的主、副对角线元素分别为: 1(主对角线元素:a(1,1)、a(2,2)、…a(i,i)…a(N,N),“左上-右下”元素,即元素行、列下标相同; 2(副对角线元素:a(1,N)、a(2,N - 1)、…a(i,N – i + 1)…a(N,1),“右上-左下”元素,即第1行最后一个、第2行倒数第2个……第i行倒数第i个元素。
黑色线条表示的是主对角线,红色线条表示的副对角线 Sum1 = 0 '获得主对角线之和 Sum2 = 0 '获得副对角线之和 For i = 1 To N For j = 1 To N 1/9页 If i = j Then '求主对角线元素之和 Sum1 = Sum1 + a(i, j) End If If i + j = N + 1 Then '求副对角线元素之和 Sum2 = Sum2 + a(i, j) End If Next j Next i
3、列与列互换,如第2列和第4列互换 For i = 1 To N t = a(i, 2) a(i, 2) = a(i, 4) a(i, 2) = t Next i 注意:a(i, 2)表示第2列的数组元素,a(i,4)表示第4列的数组元素,如果是第2行与第 4行互换,则可用a(2, i)表示第2行的数组元素,a(4,i)表示第4行的数组元素。
4、二维数组每行最大值及其在该行中的位置 Dim a(20, 5) As Integer '定义20行5列的矩阵 For i = 1 To 20 Max = a(i, 1) '假设该行第一个数是最大值初值 maxi = 1 '获得假设初值的列下标 For j = 1 To 5 If a(i, j) > Max Then Max = a(i, j): maxi = j Next j Print '第'; i; '行最大值'; Max, '在该行的'; maxi; '位置' Next i 注意:该题还可以扩展为求所有行最大值平均值、各行平均数的最大值、各行最小数的 平均值;每行在某个范围内(如小于100)元素值之和、平均值;每行的偶数最大值、奇数 最小值等。
5、矩阵四周围元素之和,能被某数整除的个数 Dim a(7, 7) As Integer 如上声明的数组a,对数组a而言其四周围的元素即为第一行、第七行、第一列和第七 列的数组元素。 第一行数组元素满足a(1,j),j从1到7 第七行数组元素满足a(7,j),j从1到7 第一列数组元素满足a(i,1),i从1到7 第七列数组元素满足a(i,7),i从1到7 Sum=0 For i = 1 To 7 For j = 1 To 7 If i = 1 Or i = 7 Or j = 1 Or j = 7 Then Sum = Sum + a(i, j) 2/9页 End If Next j Next i
二、字符(单词)操作 1、统计文本框中数字、大写字母、小写字母个数 每次取出一个字符,利用ASCII码值进行判断, 数值0,9的ASCII值范围是:48,57 或 Asc('0')~Asc('9') 大写字母A,Z的ASCII值范围是:65,90 或 Asc('A')~Asc('Z') 小写字母a,z的ASCII值范围是:97,122 或 Asc('a')~Asc('z') For i = 1 To Len(Text1) s = Mid(Text1, i, 1) If Asc(s) >= 48 And Asc(s) <= 57="">=> '是数值 ElseIf Asc(s) >= 65 And Asc(s) <= 90="">=> '是大写字母 ElseIf Asc(s) >= 97 And Asc(s) <= 122="">=> '是小写字母 End If Next i 注意:与该题类似的还有,统计给定字母的出现次数,此时循环中的if判断条件改成s与该字母的比较即可;判断文本框中输入的是数字信息还是非数字信息等。
2、统计文本中某单词出现的次数、平均长度、最长单词 见上机教程第十三讲考点2单词操作 '统计文本s中单词this出现的次数 For i = 1 To Len(s) '对字符串内所有字符处理 c = Mid(s, i, 1) '取字符 If c <> ' ' Then '不为空格字符 word = word + c '将该字符连接在单词中 Else '若为空格字符 If word= 'this' then '如果是this单词,对该单词个数计数 n = n + 1 '单词个数计数 End if word = '' '存下一个单词前,将变量word清空 End If Next i '循环退出后,还有最后出现一个单词未处理 If word= 'this' then '如果是this单词,对该单词个数计数 n = n + 1 '单词个数计数 End if 3/9页
3、统计文本中同时含有某几个字母的单词个数(instr函数) 要求统计包含了字母“m”,“n”和“p”的单词个数 For i = 1 To Len(s) '对字符串内所有字符处理 c = Mid(s, i, 1) '取字符 If c <> ' ' Then '不为空格字符 word = word + c '将该字符连接在单词中 Else '若为空格字符 '利用instr函数判断单词word中有没有包含m、n和p字母
If instr(word, 'm')>0 and instr(word, 'n')>0 and instr(word, 'p')>0 then
n = n + 1 '单词个数计数 End if word = '' '存下一个单词前,将变量word清空 End If Next i '循环退出后,还有最后出现一个单词未处理 If instr(word, 'm')>0 and instr(word, 'n')>0 and instr(word, 'p')>0 then
n = n + 1 '单词个数计数 End if
4、编写函数判断回文 思路:将第一个字符和最后一个字符进行比较,如果相同,继续判断第二个字符和倒数 第二个字符是否相同,若不相同比较结束,该字符串不满足回文。 Function foundhuiwen(p As String) '判断p是否满足回文条件 foundhuiwen = True For i = 1 To Len(p) / 2 If Mid(p, i, 1) <> Mid(p, Len(p) - i + 1, 1) Then foundhuiwen = False Exit For End If Next i End Function
三、算法 1、排序算法 (1)对读入的数据进行从小到大排序 Dim a(10) As Integer Private Sub Command1_Click() Open App.Path & '\Data5.txt' For Input As #1 Do While Not LOF(1) For i = 1 To 10 Input #1, a(i) 4/9页 Next i Loop Close #1 End Sub Private Sub Command2_Click() '============以下考生编写程序开始=================
'============考生编写程序结束===================== End Sub
(2)将奇偶数分开,将奇数移动到前面,偶数移动到后面。(文本框为控件数组,名称 属性分别为Text1(0)~Text1(9))
单击“重排数据”按钮,执行如下代码 '================================================ '算法: '1)令i指向第1个数,j指向最后1个数,并先暂存最后一个数; '2)检查第i个数是否为偶数,若不是,再检查下一个,直到第i个是
' 偶数,则把此偶数放到第j个位置,j向前移1个位置; '3)检查第j个数是否为奇数,若不是,再检查前一个,直到第j个是
' 奇数,则把此奇数放到第i个位置,i向后移1个位置; '4)重复2)、3),直到i=j '5)把开始暂存的数放到i的位置 '================================================= Dim i%, j%, temp%, flag As Boolean i = 0 ' j = ?1 ' ?2 = Text1(j) flag = True ' While (i <>?3) If flag Then If Text1(i) Mod 2 = 0 Then Text1(j) = Text1(i) j = j - 1 flag = Not flag Else i = i + 1 5/9页 |
|
来自: 鱼摆摆xp07xp0j > 《VB》