下面是小编为大家整理的最后一张纸-VB部分(大荆中学)公开课,供大家参考。
信息技术考前知识要点梳理 —B VB 部分
一、选考卷中 B VB 题对应考点分析
第 第 7 7 题:B VB 运算符及函数运算
注意运算符运算顺序,函数功能 第 第 8 8 题:
流程图计算
注意标注步骤①②③④···· 第 第 9 9 题:
字符串处理
1、掌握字符函数 “Len”和 “Mid”的使用方法 2、掌握字符函数 “Asc”和 “Chr”的应用 3、掌握数字类型转换“Val”和 “Str”的作用 字符串专题处理基本步骤:1、字符拆分 mid
2、字符处理
3、重组输出:(顺序 s=s+i ,倒序 s=i+s)
第 第 0 10 题:
数组推算
代入计算,参照流程图步骤。
第 第 1 11 题:排序算法及变式(判:判断是冒泡排序还是选择排序
( 冒泡排序:相邻比较
j 和 j-1,j 和 j+1`;选择排序:找最值下标位置)
)
冒泡排序变式解题步骤三部曲 1、看外循环:确定排序趟数 x 2、看内循环:①判断从前往后排序(可得出 x 个最值在数组后面
),从后往前排序(可得出 x 个最值在数组前面);
②观察内循环下标范围判断是否所有数组均参与排序(注意是否有未参与排序的数组元素)
3、看 if 语句:通过比较判断数组升序/降序(选择排序判断找最大/小值,确定升序/降序)
通过以上 3 步,得出 x 个最大/小值在前面/后面位置,再判断各个选项,找出正确选项。
【注意】若出现 a(j)>a(j-2),则为奇偶位分别降序,若出现 k *a(j)>k*a(j-2):k=-k,则为奇升偶降/奇降偶升 第 第 2 12 题:
对分查找及变式
对分查找变式解题步骤四部曲 1、将数组元素标号(注意数组下标是否有从 0 开始,若无数组元素,也可自行标号)
2、看中间值 m 是否变化 常规中间值:m=(i+j)\2 或 m=Int((i+j)/2) 或 m=Fix((i+j)/2)
偶数个往右偏:中间值 m=(i+j+1)\2 或 m=Int((i+j)/2+0.5) 或 m=Fix((i+j)/2+0.5)
3、画二叉树观察数组元素查找方向(根据题目要求,所选项与数组元素有关,则用数组元素画二叉树;若选项与中间值下标有关,则用下标值画二叉树)
4、若找到 key 值不退出,则在 else 语句旁标注 key 值与 a(m)的关系,如 key>=a(m) ◆若中途找到 key 值不对退出,则必 j i>j 且 i=j+1,最少查找次数 Int ( log 2 2 n n )
,最多查找次数 Int ( log 2 2 n n )
+1
◆若选项为 i,j,m 的值,则根据二叉树快速锁定最后一次查找位置,此时 i=j=m,判断 key 与 a(m)关系,得出 i 与 j 的变化
第 第 5 15 题:
15 题各小题一般情况如下所列,由于改错题一般都在第(3)小题,一定要注意 不要错位答题。
15.(1)是对象、属性、方法、事件处理过程等基本概念,这 1 分必做必拿分! 15.(2)2~3 个填空,分值 4 分 15.(3)改错题,一般 2 分,相对反而简单点,争取拿分 第 第 6 16 题:
16 题各小题一般情况如下所列:
16.(1)一般是根据题目描述,推导出答案,这题难度不大,这 1 分争取拿到!
16.(2)一般 3 个填空,共 6 分。如果难度太大,或是时间不够,可以适当放弃,但不要空着,哪怕猜也要猜一下填上。
第 第 5 15 题和 6 16 题 答案注意点 :
1、赋值号左侧不能是表达式,要保持两侧的数据类型一致,根据需要在右侧使用 Str 或 Val 函数 2、看结构是否完整:“If -- End If ”“For -- Next ”“Do While --
Loop ” 3、数组边界有关的答案可利用题目中的示例数据代入进行验证
第 第 5 15 题和 6 16 题可能涉及到的算法或知识点可能有:
①一般第 16 题都会有一个自定义函数的调用,应掌握自定义函数的调用方法及如何将自定义函数的值返回。
②插入排序:掌握数据的前移和后移
前移:
a(j)=a(j+1)或 a(j-1)=a(j)
后移:a(j+1)=a(j)或 a(j)=a(j-1) ③桶排序,桶的计数:a(b(i))=a(b(i))+1 ④索引排序,掌握如何改变索引数据,如何输出有序数据。若 b(i)为索引数组,一般输出 a(b(i))。
⑤约瑟夫环 1--在[0,n-1]区域内的循环移动:下 k 个:(p +k)mod n
上 k 个:(p–k+n)mod n
约瑟夫环 2--在[1,n]区域内的循环移动:
下 k 个:(p +k-1)mod n +1
上 k 个:(p–k+n-1)mod n +1
⑥矩阵:a(i)所在行号:x = (i-1)\n + 1
a(i)所在列号:y = (i-1)Mod n + 1
i 行 j 列元素对应下标:(i-1)*n +j ⑦冒泡排序、选择排序及变形,对分查找
二、VB 基础知识 1、标准函数 类别 函数名 函数的功能 示例 数学
函数
Abs(x) 求 x 的绝对值 Abs(-6.5)=
6.5
Int(x) 求不大于 x 的最大整数 Int(6.8)=
6
Int(-6.8)=
-7
Int(6)=
6
Sqr(x) 求 x 的算数平方根 Sqr(25)=
5
Rnd( ) 产生 1 个随机数,随机数的范围 0≤Rnd<1 Int(Rnd*10)的范围
[0,9]
字符串函数
Len(x) 计算字符串 x 的长度 Len(“abcd”)=
4
Mid(x,n,k) 从字符串 x 中第 n 个字符开始截取长度为 k 的字串 Mid(“abcd”,2,2)=“bc” 转换
函数
Val(x) 将数字字符串 x 转换为数值 Val(“12.3”)=
12.3
Str(x) 将数值 x 转换为字符串 Str(12.3)=
“12.3”
Asc(x) 将字符 x 转换为 ASCII 码值 Asc(“B”)=
66
Chr(x) 将 ASCII 码值 x 转换为对应的字符 Chr(97)=
“a”
小技巧:生成闭区间[a ,b]之间(a<b)的随机整数表达式:Int(Rnd*( b -a+1)+a ) 2.优先级:①算术运算优先级:乘、除 > 整除 > 求余,即 */
\
Mod
②逻辑运算优先级:Not And Or
3.字符大小比较 ,实际上是比较字符内码。常见三类字符的大小关系:小写字母 > 大写字母 > 数字 4、字符串连接,将当前字符串 s 连上字符串 ch,重新赋值给 s。连接的语句如下:字符串顺连:s = s+ch
字符串逆连: s =ch+s 5、变量 a 与变量 b 数据交换的方法:
①用中间变量 t 的写法:
t=a:a=b:b=t
②不用中间变量 t 的写法:
a=a+b:b=a-b:a=a-b 6、判断数 a 是否能被数 b 整除的表达式:
a mod b = 0
或
a\b =a/b
或
Int(a/b) =a/b 7、获得十进制数 n(例,n 为 3 位数)中各个位的值:
个位:n Mod 10
十位:n\10 Mod 10 或 (n mod 100)\10
百位:n\ 100 8、VB 文件类型(扩展名):
9、对象、属性、方法、事件和事件处理的概念 ①属性:常见含 Caption 属性的类有窗体 Form、标签 Label、按钮 CommandButton
常见含 Text 属性的类有文本框 TextBox
常见赋值语句如:Label1.caption=“十进制数字”、Text1. Text=“123”。
②方法:如语句 List1.AddItem
a(i)、List1.Clear 中,AddItem 和 Clear 属于列表框的两个方法名 ③事件:常见的事件名有 Load
click
Dblclick change
Time ④事件处理过程名:Cmd1_Click( ),其中 Cmd1 是对象名,Click 是事件名 ⑤按钮名称查看:
例如代码 private sub cmd1_click() ,那么此处按钮对象名为 cmd1,一定不要写 Command1 (一般情况下答案都不是这个)
10、整数型 Integer 的范围:-32768 ~ 32767
三、vb 常见核心代码 Vb 模块---冒泡排序 基本思想(以升序例):通过相邻元素的比较,将较小的数向上推移的排序技术。
n 个数需要通过 n-1 轮冒泡。总的比较次数为 n*(n-1)/2,交换次数小于等于比较次数。
1. 从后往前,小数往前冒
For
i = 1 To n - 1
For j =
n To i + 1 Step - - 1
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 2. 从前往后,大数向后沉
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 3. 范围优化
i=1 Do While i < 10 k = i : i = 10 For j = 10 To k + 1 Step -1 If a(j) < a(j - 1) Then t = a(j) : a(j) = a(j - 1) : a(j - 1) = t
i=j End If Next j Loop
4 4. . 遍数 优化 (当某一轮冒泡排序没有任何数据交换,则说明数组已然有序,后面的轮次可以省略)
For i = 1 To n - 1
Flag=True
For j = n To i + 1 Step -1
If a(j) < a(j - 1) Then
t = a(j): a(j) = a(j - 1): a(j - 1) = t
flag=False
End If
Next j
if
flag=True
then exit for
Next i Vb 模块---选择排序 是在所有的数据中找出最小(或最大)的数据,使它与第一个数据相互交换位置,然后再在剩下的数据中找出最小(或最大)的数据,与第二个数据相互交换位置,以此类推,直到所有元素成为一个有序序列。
n 个数需要通过 n-1 轮加工。总的比较次数为 n*(n-1)/2,最多交换次数是 n-1 次。
1. 基本程序升序(找小的从前往后放)
For i=1 To n-1
k=i
For j=i+1 to n
If a(j)<a(k) Then k=j
Next j
If i<>k Then
t=a(i):a(i)=a(k):a(k)=t
End If Next
i 2 2. . 选择排序升序: : (找大的从后往前放)
For i = n To 2 Step -1
k = i
For j = 1 To i - 1
If a(j) > a(k) Then k = j
Next j
If i<>k Then
t=a(i):a(i)=a(k):a(k)=t
End If Next
i 3.
变式( ( 升序,未经优化的选择排序 )
For i = 1 To n -1
For
j = i+1 To n
If a(j)< a(i)Then
t= a(j): a(j)= a(i): a(i)= t
End If
Next j Next i 4. 双向选择排序
p = 1: q = n Do While p < q
iMin = p: iMax = p
For i = p + 1 To q
If a(i) < a(iMin) Then iMin = i
If a (i) > a(iMax) Then iMax = i
Next i
t = a(iMin): a(iMin) = a(p): a(p) = t If
iMax = p Then
iMax = iMin
t = a(iMax): a(iMax) = a(q): a(q) = t
p = p + 1
q = q - 1 Loop
插入排序
每次待排序的数据,插入到前面已经排好数据中,使其数据依然有序 For i = 2 To n
t = a(i) : j = i - 1
Do While a(j) > t
a(j + 1) = a(j)
j = j - 1
If j = 0 Then Exit Do
Loop
a(j + 1) = t
Next i 有序数组中插入新数据
例每个数组元素已经赋值如下,在该数组中插入新数据x (比如 x= 10)后,数组依然有序 :
算法思想 :a(7)、a(6)、a(5)元素值依次后移,腾出a(5)。当n =7时,代码如下:
方法一:
i = 1 Do While x > a(i) And i<=n i = i +1 Loop " 循环结束时.变量 i 代表新数据要插入的位置 For j = n To i Step - 1 a(j + 1 1 ) = a(j) " 元素依次后移 Next j a(i) = x x
n = n+1 方法二:
i= n Do While
a(i)> x
a(i+ 1 1 ) = a(i)
i = i - l If i=0 Then Exit Do " 退出循环 Loop a(i+1 1) )= =
x x
n = n+1 V Vb b 模块 --- 对分查找
对分查找前提是数据有序,对 n 个数据查找, 最多查找次数为 Log 2n +l (向下取整)。
1. 对分查找算法 i =1: j = n: s = 0
Do While i <=j
m = (i + j) \ 2
If a (m) = key Then
s=m: Exit Do
Elseif key< a(m) Then
j=m-1
Else
i=m+1
End If loop 2. 对分查找变式(无 无 exit
do )
L = 1 : R = n
Do While L <=R
m = (L + R) \ 2
If key> d (m) Then L = m + 1 Else R = m-1 Loop
推荐访问:最后一张纸-VB部分(大荆中学)公开课 一张纸 公开课 VB