选考总复习 信息技术 必修3 第一章 算法及VB语言Word下载.docx
- 文档编号:3542106
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:33
- 大小:114.23KB
选考总复习 信息技术 必修3 第一章 算法及VB语言Word下载.docx
《选考总复习 信息技术 必修3 第一章 算法及VB语言Word下载.docx》由会员分享,可在线阅读,更多相关《选考总复习 信息技术 必修3 第一章 算法及VB语言Word下载.docx(33页珍藏版)》请在冰点文库上搜索。
在其他过程或函数中,使用Call过程名语句调用该事件过程。
3.子过程中可以使用ExitSub语句中途跳出子过程。
(一)事件处理过程
1.事件处理过程名必须符合下面的规则:
对象名_事件的标准名。
VB的一些常用对象上的常见事件的标准名见下表:
对象
事件处理过程名
说明
文本框
Text
Text_Click
在文本框内单击鼠标
Text_DblClick
在文本框内双击鼠标
Text_KeyPress
文本框被激活后,用户在键盘上按下了某个键
命令按钮Command
Command_Click
在命令按钮上单击鼠标
标签Label
Label_Click
在标签上单击鼠标
窗体Form
Form_Load
窗体装载
2.Form_Load事件在程序运行时,系统自动运行。
3.其他控件事件处理过程,只有触发了该对象的相应事件,才执行子过程。
4.在子过程或函数中,也可以使用Call事件处理过程名来调用事件处理过程。
5.子过程调用自身,形成递归。
(二)通过过程
也称为自定义过程,是一个独立的程序段,不同的事件可能需要使用同一个程序段时,可以把这个程序段单独地建立成一个通用过程,供其他事件处理过程或其他通用过程调用。
四、函数
函数分为标准函数和自定义函数,如Abs、Mid等称为系统的标准函数。
自定义函数是类似于过程的另一种程序模块,不同之处是函数执行完成后,函数的计算结果被送到函数的调用点上,供程序的后继部分继续进行处理。
自定义函数格式:
Function函数名(参数表)As 类型名
EndFunction
函数名是为函数指定的名称,参数表是对一函数需要的原始数据类型一一地进行说明,As后的类型名,是说明函数的计算结果,即函数返回值的数据类型。
自定义函数的语句块中至少要有一个形如“函数名=表达式”的语句,这样,表达式的计算结果才能作为函数的返回值,被VB送到函数的调用点上。
函数就是根据一些已知条件(参数),实现一定功能,返回一个值(通过函数名)。
1.Function过程以Function语句开头,以EndFunction结束;
中间代码部分为函数体;
2.函数中途可以利用ExitFunction退出。
3.函数名有返回值,其值类型由As数据类型指定;
4.函数体内一般都会至少为函数名赋值一次;
如果不赋值,函数返回值默认为0或空。
【例1】 在VB中,某程序代码窗口如下图所示。
则下列说法正确的是( )
A.Form_Load事件是程序运行时,用户单击窗体执行的程序代码
B.程序运行时,单击Cmd1,不能调用Command2_Click事件
C.该程序代码窗口中,有3个事件处理过程和1个自定义函数
D.程序运行时,单击Cmd1,在文本框Text1中显示数组a中最大的50个数
解析 Form_Load事件是程序运行时,装载该窗体时执行代码。
在Cmd1_Click事件中,语句CallCommand2_Click调用该过程。
函数是实现大于x的数的个数。
答案 C
[变式1] 在VB中,有如下自定义函数
FunctionDmax(xAsInteger,yAsInteger)AsInteger
Ifx>yThenDmax=xElseDmax=y
求3个整数a,b,c的最大值,以下不能实现功能的表达式是( )
A.Dmax(a,Dmax(b,c))
B.Dmax(b,Dmax(a,c))
C.Dmax(a,b,c)
D.Dmax(Dmax(a,b),Dmax(a,c))
解析 该自定义函数的参数是两个,3个数的最大值是先找出2个数的最大值再与第3个数比较。
[变式2] 下面VB程序的功能为:
在文本框Text1和Text2中输入两个整数,单击按钮对象Command1,在标签对象Label1中显示这两个数差的绝对值。
Functionlsc(xAsInteger,yAsInteger)AsInteger
Ifx>yThen
lsc=x-y
Else
lsc=y-x
EndIf
PrivateSubCommand1_Click()
Dima1AsInteger,a2AsInteger
a1=Val(Text1.Text)
a2=Val(Text2.Text)
Label1.Caption=________
要实现上述功能,程序画线处应填入的语句为( )
A.lsc(x,y)
B.lsc(Text1.Text,Text2.Text)
C.lsc
D.lsc(a1,a2)
解析 自定义函数lsc用于求两个整数的差,由于输入的整数为a1、a2,因此画线处应填的语句为lsc(a1,a2),答案为D。
答案 D
[变式3] 某VB应用程序的两个事件过程如下:
PrivateFunctionout(xAsInteger,yAsInteger,zAsInteger)AsInteger
DimtempAsInteger
Ifx>yThentemp=yElsetemp=x
Iftemp>zThentemp=z
out=temp
DimaAsInteger,bAsInteger,cAsInteger
a=1
b=2
c=3
Text1.Text=out(a,b,c)
程序运行时,单击命令按钮command1后,在文本框Text1中显示的内容是( )
A.0B.1
C.2D.3
解析 自定义函数out的功能是求三个数中的最小数,1、2、3三个数中的最小数为1,因此答案为B。
答案 B
[变式4] 小明在VB中定义了以下函数,功能是求a和b的最大公约数。
Functiongcd(aAsInteger,bAsInteger)AsInteger
DoWhileb>0
c=aModb
a=b
b=c
Loop
调试中发现计算结果一直是0。
经过仔细观察与分析,发现错误的原因是( )
A.函数名有错
B.变量c没有定义
C.函数没有返回值
D.b>0应该改为b>=0
解析 A选项函数名的命名规则同变量名。
VB中可以省略一些变量的定义,未定义的变量即为通用类型,即根据赋值变化数据类型,所以B选项局部变量c未定义,不影响程序运行。
D选项把循环条件改成b>=0反而会使DoWhile……Loop循环进入死循环。
所以正确答案是C。
[变式5] 在VB中,设已定义函数过程f,
Functionf(xAsInteger,yAsInteger,zAsInteger)AsInteger
′代码略
若有a,b,c为整型变量,则下列能调用该函数的正确语句是( )
A.fB.f(a+b,b+c)
C.f(a+b,b+c,c+a)D.fa+b,b+c,c+a
解析 注意函数的格式。
【例2】 有VB程序,实现如下功能:
在文本框Text1中输入一个数字,单击“判断”按钮Command1,在文本框Text2中输出是否是回文数,回文数指正读反读都相同的数。
请在画线处填入适当的语句或表达式。
PrivateSubCommand1_Click()
DimsAsString,flagAsBoolean
s=Text1.Text
____①____
Ifflag=TrueThenText2.Text=s+“是回文数”ElseText2.Text=s+“不是回文数”
Functionhw(sAsString)AsBoolean
DimiAsInteger,nasInteger,s1asstring,s2asstring
hw=True:
n=Len(s)
Fori=1Ton\2
s1=Mid(s,i,1)
____②____
Ifs1<
>
s2Then
____③____
ExitFunction
EndIf
Nexti
解析 自定义函数的功能是:
根据参数s的值,如果s是回文数,则返回hw的值为True,否则返回False。
从主程序的输入和输出语句来看,变量s是文本框Text1中输入的值,根据条件flag=True来输出结论,因此flag调用该自定义函数,即判断是否为回文返回的值。
在自定义函数内部,循环变量i从1到n/2,每要首尾判断。
答案 ①flag=hw(s) ②s2=Mid(s,n+1-i,1) ③hw=False
【例3】 有VB程序,实现如下功能:
在文本框Text1中输入一个数字,单击“判断”按钮Command1,在文本框Text2中输出是否是回文素数,回文素数指既是回文数,又是素数。
DimsAsString,tAsLong,flagAsBoolean
s=Text1.Text
flag=False
Ifhw(s)Then
t=Val(s)
if____①____thenflag=True
Ifflag=TrueThenText2.Text=s+“是回文素数”ElseText2.Text=s+“不是回文素数”
Functionhw(sAsString)AsBoolean
′同【例2】,代码略
Functionprime(aAsLong)AsBoolean
DimjAsLong
prime=True
j=2
DoWhile____②____Andj<
=a-1
IfaModj=0Then
prime=False
____③____
解析 自定义函数prime,判断a是否是素数,参数a的类型是长整形,因此在调用该函数时,参数必须一致。
该函数的返回值还是逻辑型,当一个数被a除通后,不能再循环了,否则prime的值可能从False变到True,因此循环条件加上在没有除通时。
答案 ①prime(t)=True或prime(t) ②prime=True或prime ③j=j+1
【例4】 (2015·
10月浙江选考)某数据加密方法描述如下:
(1)以字节为单位进行加密处理;
(2)将1个字节的8位二进制数分割成前4位与后4位两个二进制数;
(3)分别将上述两个4位二进制数转换为十进制数;
(4)将每个十进制数转换为1个加密字符,对应的“密码表”如下:
值(十进制)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
加密字符
I
l
i
k
e
C
H
N
p
o
s
t
a
r
d
小明按照上述方法,设计了一个字符串(仅包含ASCII字符)加密的VB程序,功能如下:
单击“加密”按钮Command1,程序依次将文本框Text1中每个字符的ASCII码值作为1个字节转换为两个加密字符,连接这些加密字符,最后在文本框Text2中输出加密结果。
下表显示了字符串中一个字符的加密过程:
程序运行效果如图所示。
实现上述功能的VB程序如下:
(1)请在画线处填入合适代码。
DimnAsInteger,sAsString,iAsInteger,ssAsString
DimaAsInteger ′存储加密前字符的ASCII码
Dimb1AsInteger,b2AsInteger ′分别存储分割、转换后的两个十进制数
Fori=1Ton
a=Asc(Mid(s,i,1))
b1=a\16
b2=aMod16
ss=ss+Code2Char(b1)+Code2Char(b2)
Nexti
Text2.Text=ss
′十进制值转换为加密字符的函数
FunctionCode2Char(cAsInteger)AsString
DimsAsString
s=“IlikeCHNpostcard”
Code2Char=____②____
(2)若将“密码表”中值为“0”对应的加密字符“I”改成“i”,加密后的密文可能无法解密,原因是______________________________________________________
___________________________________________________________________。
解析 本题考查过程和自定义函数,常用标准函数等。
(1)根据题意,对文本框Text1中输入的字符串逐个字符加密,需算出字符串的长度n,作为循环变量的终值,即n=Len(s)。
加密后的字符串(密文)存储于字符串变量ss中。
②自定义函数Code2Char()中,根据密码表对应的每个十进制数转换为1个加密字符,第一个加密字符对应十进制值为0,故当十进制数值为6时,对应的字符H是第6+1个字符位置,即当十进制数值为c时,对应的字符是第c+1个字符位置,用取子串函数Mid(s,c+1,1)。
(2)若密码表中值为0对应的加密字符I改为i,造成同时对应加密字符i,当解密时,加密字符i对应的十进制有两个值0和2,不唯一而出错,从而无法解密。
答案
(1)①n=Len(s)[或n=Len(Text1.Text)]
②Mid(s,c+1,1)
(2)加密字符i对应两个值0,2
[变式6] 如果一个整数是另一个整数的平方,则称该数是“完全平方数”。
如:
1=1×
1,4=2×
2,9=3×
3,所以1、4、9是完全平方数。
下列VB自定义函数用于判断一个数是否是完全平方数。
Functionok(tAsInteger)AsBoolean
DimkAsInteger
Ifk*k=tThenok=TrueElseok=False
方框中的正确语句是( )
A.k=Int(Sqr(t))B.t=Int(Sqr(k))
C.k=t^2D.t=k^2
解析 在判断t是否为完全平方数之前,先取出k的值,使k=Int(Sqr(t)),若正好有k*k=t,则得出结论:
t是完全平方数,ok=True。
答案 A
[变式7] 某VB代码如下:
Functionf(xAsSingle,yAsSingle)AsSingle
Ifx>yAndy<0Thenf=x^Abs(y)Elsef=x*Int(Sqr(y))
DimaAsSingle,bAsSingle
a=Val(Text1.Text):
b=Val(Text2.Text)
Text3.Text=Str(f(a,b))
该程序段运行后,文本框Text1、Text2分别输入3,2后,单击命令按钮Command1,文本框Text3中显示的是( )
A.2B.3
C.6D.9
解析 本题考查简单的自定义函数,程序运行后,输入两个值3和2分别给变量a和b,Text3.Text=Str(f(a,b))调用自定义函数f,自定义函数f将3和2两个参数变量传递给x和y,判断“x>yandy<0”为假,则返回函数值“x*int(Sqr(y))”即“3*int(Sqr
(2))”,结果为3。
【易错易误】
过程:
将程序划分为一个个较小的逻辑单元,每个逻辑单元构成一个过程。
过程中的代码可以被重复地调用。
过程分成两类:
事件处理过程和通用过程。
事件处理过程:
Sub事件处理过程名(参数表)
VB预设的事件有:
Click(单击)、DblClick(双击)、KeyPress(按键)、Load(装载)、Change(改变)等。
VB的一些常用对象上的常见事件的标准名有:
文本框Text:
Text1_Click、Text1_DblClick、Text1_KeyPress、Text1_Change
命令按钮Command:
Command1_Click
标签Label:
Label1_Click
窗体Form:
Form_Load(窗体装载)
1.字符串变量a的值为“Hello,world!
”,下列VisualBasic表达式的值是“world”的是( )
A.Len(a,6,5)B.Mid(a,6,5)
C.Mid(a,7,4)D.Mid(a,7,5)
解析 Mid(X,n,k)的作用是取字符串X中第n个字符起长度为k的子串。
Mid(a,7,5)的功能是取字符串变量“Hello,world!
”中第7个字符“w”起长度为5的子串,即“world”。
2.运行如下VB程序:
FunctionFN(nAsInteger)AsInteger
Ifn=1Then
FN=1
Else
FN=n*FN(n-1)
SubCommand1_Click()
Text1.Text=Str(FN(4))
程序运行时,单击命令按钮Command1后,在文本框Text1中显示( )
A.1B.10
C.24D.100
3.某对象的一个事件过程代码如下:
PrivateSubObj_Click()
s=s+1
Text1.Text=Str(s)
下列说法正确的是( )
A.该过程的过程名为“Obj”
B.该对象的类名为“Sub”
C.该对象的对象名为“Obj_Click”
D.该事件是一个“单击”事件
解析 由题意可以看出是一个“单击”事件。
4.窗体装载事件过程可以对程序进行初始化。
VB窗体装载事件过程的名称是( )
A.Command1_ClickB.Form_Keypress
C.Form_LoadD.Form_DblClick
5.下面VB程序的功能是判断一个数是否为一个完全平方数。
在文本框Text1中输入一个整数,单击按钮对象Command1,如果此数是一个完全平方数,则在标签对象Label1中显示“Yes”,否则显示“No”。
所谓完全平方数,是指一个数如果是另一个整数的完全平方,那么我们就称这个数为完全平方数,也叫平方数。
例如1、4、9、16等是完全平方数。
Functionjudge(x)AsBoolean
judge=False
Ifx=Sqr(x)^2Then____①____
DimxAsInteger
x=Val(Text1.Text)
Ifjudge(x) Then
Label1.Caption=“Yes”
___②____
为实现上述功能,请分别在画线①和画线②处填入合适的语句。
画线①处应填入的语句为__________________________________________;
画线②处应填入的语句为__________________________________________。
解析 由题意经分析可知,①处代码是完全平方数的情况,因此应填入judge=True;
如果输入的整数不是完全平方数,则在标签对象Label1中显示“No”,因此②处代码为Label1.Caption=“No”。
答案 ①judge=True ②Label1.Caption=“No”
6.编写一个将十进制数转换为二进制的VB自定义函数,代码如下。
FunctiondTOb(xAsInteger)AsString
DoWhilex>
IfxMod2=0Thens=“0”Elses=“1”
________
x=x\2
则划线处应填的语句是________。
解析 十进制数转换为二进制的方法是除2倒取余数,且通过函数名返回函数的值。
变量s表示每次相除的余数。
答案 dTOb=s+dTOb
7.下列VB程序用于求2个正整数(均小于10000)的最大公约数:
DimyAsInteger
DimzAsInteger
x=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 选考总复习 信息技术 必修3 第一章 算法及VB语言 选考总 复习 必修 算法 VB 语言
![提示](https://static.bingdoc.com/images/bang_tan.gif)