文档库 最新最全的文档下载
当前位置:文档库 › VB程序语句与控制结构

VB程序语句与控制结构

VB程序语句与控制结构
VB程序语句与控制结构

第3章VB程序语句与控制结构

一个VB应用程序主要由用户界面和响应各事件的程序代码组成,程序代码是应用程序的核心。本章首先介绍程序代码设计的基础知识,再通过一些典型的例子,使大家逐步掌握编程的思路和技巧。VB虽然是面向对象的程序设计语言,但在代码设计中仍然支持结构化程序设计的三种基本结构,即顺序结构、选择结构和循环结构。本章将主要介绍数据的输入与输出、三种基本程序控制结构及语句。

3.1 数据的输入与输出

VB的输入/输出有多种形式,常用的输入方式有:使用键盘输入数据的函数InputBox 以及文本框等控件。常用的输出方式有: Print方法、MsgBox函数和过程以及图形框、文本框、标签等控件。有关控件的使用在其第六章中介绍,本节主要介绍InputBox函数、MsgBox函数与过程以及Print方法的使用。

3.1.1 InputBox函数

格式:InputBox(提示[,标题][,默认][,x坐标位置][,y坐标位置])

功能:InputBox函数产生一个对话框,作为输入数据的界面,等待用户输入内容,当用户单击“确定”按钮或按回车键,函数返回输入的值,其值的类型为字符串(String)。

说明:

(1)“提示”:必选项。字符串表达式,在对话框中作为提示信息显示,可为汉字。若要多行显示,必须在每行行末加回车符Chr(13)和换行符Chr(10)符或VB符号常数vbCrLf。

(2)“标题”:可选项。字符串表达式,在对话框的标题区显示;若省略,默认为应用程序名。

(3)“默认”:可选项。字符串表达式,当输入对话框中无输入时,则该默认值作为输入的内容。

(4)“x坐标位置、y坐标位置”:可选项。整型表达式,确定对话框左上角相对于屏幕左上角的x、y坐标,单位为twip。该项省略时,对话框出现在屏幕水平、垂直中间的位置。

【注意】

各项参数次序必须一一对应,除了“提示”一项不能省略外,其余各项均可省略,处于中间的默认部分要用逗号占位符跳过。

例如,运行如下代码段,结果显示如图3-1所示,当单击“确定”按钮后,变量strName 的值为“李林”。

Dim strName as String*20

Title = "InputBox函数示例"

Msg1 = "请输入你的姓名"

StrName=InputBox(Msg1,Title,,200,200)

图3-1

3.1.2 Msgbox 函数与过程

MsgBox用于输出数据,它会在屏幕上显示一个对话框。在对话框中显示消息,等待用

户单击按钮,并返回所选按钮的整数值。有函数和过程两种形式。

MsgBox函数格式:变量=MsgBox(提示[,按钮][,标题])

MsgBox过程格式: MsgBox 提示[,按钮][,标题]

说明:

(1)“提示”和“标题”的意义与InputBox函数中对应的参数相同。

(2)“按钮”:可选项。数值表达式,决定信息框按钮的数目和类型及出现在信息框上的图标类型。该数值表达式的值由4部分数值求和得到,它也可以用符号常量表示。其设置见表3.1。

(3)MsgBox函数返回所选按钮整数值的意义见表3.2

(4)MsgBox过程与MsgBox函数的区别是:MsgBox过程没有返回值,也不用圆括号“()”,所以常用于较简单的信息显示。其他用法与MsgBox函数相同。

Msg=”程序运行出错,继续吗?”

Title=”Msgbox演示程序”

Resp=MsgBox(Msg,308,Title)

If Resp=6 then

Print “你选择了是!”

Else

Print “你选择了否!”

End If

图3-2

程序中,MsgBox函数的参数308也可以写成符号常量的形式。因308=4+48+256,因而可将数字308写成vbYesNo+vbCritical+vbDefaultButton2的常量表达式的形式;同样,If 语句也可写成If Resp=vbYes then的形式。

【例3.1】输入圆的半径,求圆的面积。

(1)进入代码窗口,编辑程序代码如下:

Private Sub Form_Click()

Const Pi = 3.14 ’定义常量Pi

Dim r As Double, a as Double

r = InputBox("请输入圆的半径")

a = Pi * r * r

MsgBox("圆的面积为:" & a )

End Sub

(2)运行程序,输入半径为5,输入、输出对话框如图3-3所示。

图3-3

3.1.3 Print 方法

Print方法常用于在屏幕上输出信息。在本书第一章1.4.2节中已有介绍。

例如,执行如下代码:

a = 10:b=15

c$ = “欢迎使用Visual Basic”

Print “数值表达式a+b的值为:”;a+b

Print

Print “字符串变量c$的值为:”;c$

运行结果如下:

“数值表达式a+b的值为: 25

“字符串变量c$的值为:欢迎使用Visual Basic

【例3.2】用Print方法输出图形。程序运行结果如图3-4所示。

Private Sub Form_Click()

For i=1 to 5

Print Tab(i);String(6-i,”*”)

Next I

End Sub

图3-4

【注意】

当Tab(i)中i的值小于当前位置的值时,重新定位在下一行的i列。

例如,执行以下语句:

Print tab(5);“abcdefg”;tab(8);“1234567”

运行结果如下:

abcdefg

1234567

3.1.4 打印机输出

Visual Basic除了可以在屏幕上输出以外,还可以在打印机上输出所需要的信息。

1.用PrintForm方法打印

格式:[窗体名.]PrintForm

功能:将指定窗体的信息传送到打印机进行打印。

说明:

(1)缺省窗体名,则打印当前窗体的信息。

(2)PrintForm方法不仅可以打印窗体上的文本,而且还可以打印出窗体上的任何可见的控件及图形。若窗体中包含图形,需要将输出窗体的AutoReDraw属性设置为True。

2.用Printer对象打印

格式:Printer.Print [表达式列表]

功能:把“表达式列表”中的内容输出到打印机上。

例如,下列语句行将字符串“欢迎使用Visual Basic”输出到Windows系统的缺省打印机上。

Printer.Print "欢迎使用Visual Basic"

Printer对象包含多种属性和方法用以控制打印的各种特性。Printer对象的属性不能在属性窗口中设置,只能在运行时通过程序代码来设置。下面介绍一些Printer对象常用的属性和方法。

(1)Page属性

Page属性用来保持和返回当前的页号,格式为:Printer.Page

每当打印完一页后,Page属性值自动增1。通常用Page属性打印页号,例如:Printer.Print "第"; Printer.Page; "页"

(2)NewPage方法

NewPage方法用以结束 Printer 对象中的当前页并前进到下一页,也就是实现换页操作,格式为:Printer.NewPage

执行NewPage方法可以强制使打印机前进到下一个打印页,并将打印位置重置到新页的左上角。调用 NewPage方法时,它将 Printer 对象的 Page 属性加 1。

(3)EndDoc 方法

EndDoc方法用来结束文件打印,格式为:Printer.EndDoc

执行EndDoc方法表明打印操作的结束,并向打印机管理程序发送最后一页的退出信号,并把Page属性重置为1。

(4)KillDoc方法

KillDoc方法用于立即终止当前打印作业,格式为:Printer.KillDoc

执行KillDoc方法将中断Print函数的执行,且清除打印缓冲区中的所有信息。

【例3.3】编写程序,实现连续打印“打印测试页1”和“打印测试页2”两张测试页。

Private Sub Form_Click()

Printer.Print "打印测试页";Printer.Page

Printer.NewPage

Printer.Print "打印测试页";Printer.Page

Printer.EndDoc

End Sub

单击窗体后,打印机打印两页,分别为“打印测试页1”和“打印测试页2”。

3.2 顺序结构

顺序结构就是程序的各语句按出现的先后次序执行。在Visual Basic中顺序结构的语句主要有赋值语句、输入语句、输出语句等。

3.2.1赋值语句

赋值语句是程序设计中最基本的语句,也是为变量和事件的属性赋值的最主要的方法。赋值语句的一般形式为:

变量名 = 表达式

对象名.属性 = 表达式

赋值语句的作用:先计算右边表达式的值,然后赋给左边的变量或控件属性。

例如:

sum= 100 ’把数值常量100赋给变量sum

aver=sum/10 ’将表达式sum/10的值赋给变量aver

Text1.Text = ”Hello!”’为文本框显示字符串

Text1.Text= ””’清除文本框的内容

【注意】

(1)表达式可以是任何类型的表达式,一般应与变量名的类型一致,当表达式的类型与变量的类型不一致时,作如下处理:

①若左边是字符型变量,将右边非字符型转换成左边的类型。

例如:

C$=123 ’ 数值常量123转换为字符型数据”123”赋给c

②若左边是数值型变量,右边表达式为数字字符串时,自动转换成数值类型赋给左边变量。若右边表达式有非数字字符或空串时,则出现类型不匹配错误。

例如:

m%=”100” ‘ 数字串”100”转换为数值100赋给变量m

m%=”a100” ‘ 出现类型不匹配的错误

m%=”” ‘ 出现类型不匹配的错误

③若左边是逻辑型变量,右边是数值型表达式,非0转换为True,0转换为False;反之,将逻辑型表达式的值赋给数值型变量时,True转换为-1,False转换为0。

例如:

Dim f as Boolean

x%=10:y%=5

f=x+y ‘ f中结果为True

f=x-10 ‘ f中结果为False

n%=x>y ‘表达式x>y值为True,n中结果为-1

n%=x<=y ‘表达式x<=y值为False,n中结果为0

④不管表达式的值是什么类型,都可以直接赋给一个变体类型的变量。

(2)赋值号与关系运算符等于都用“=”表示,但系统不会产生混淆,会根据所处的位置自动判断是何种意义的符号。也就是在条件表达式中出现的是等号,否则是赋值号。

例如:赋值语句a=b与b=a是两个结果不相同的赋值语句,而在关系表达式中a=b与b=a 两种表示方法是等价的。

(3)赋值号左边只能是变量,不能是常量、符号常量、表达式。下列语句均为错误的赋值语句:

5 = x + y '左边是常量

vbcrlf=34 ‘ 左边是符号常量

x + y = 5 '左边是表达式

(4)不能在一条赋值语句中,同时给多个变量赋值。

例如:要对x,y,z三个变量值赋初值1,如下面语句书写语法上没错,但结果不正确:Dim x%, y%, z%

x = y = z = 1

执行该语句前x,y,z的变量值默认是0,Visual Basic在编译时,将右边两个“=”作为关系运算符处理,先进行y=z比较,结果为True(-1);接着True=1比较结果False(0);最后将False赋值给x,因此最后三个变量中的值仍为0。正确书写应分别使用三条赋值语句完成,写成:

x=1

y=1

z=1

x=1:y=1:z=1 ‘ 书写在同一行上

(5)如下赋值语句形式很常用:

sum=sum+x

表示将变量sum、x中的值相加后再赋给sum,与循环结构结合使用,起到累加作用。

n=n+1

表示将变量n的值加1后再赋给n,与循环结构结合使用,起到计数器的作用。

3.2.2 顺序结构举例

【例3.4】输入某位同学的三门课程的成绩,求它们的平均分。

程序代码如下:

Private Sub Form_Click()

Dim s1!,s2!,s3!,aver!

s1=InputBox(“输入第一门课程的成绩”)

s2=InputBox(“输入第二门课程的成绩”)

s3=InputBox(“输入第三门课程的成绩”)

aver=(s1+s2+s3)/3

print “aver=”;aver

End Sub

3.3选择结构

在人们所处理的问题中,常常需要根据某些给定的条件是否满足来决定所执行的操作。选择结构就是对给定条件进行判断,从而选择执行不同分支,一般可由条件语句来完成。VB 中的条件语句包括If语句和Select语句。

3.3.1 If条件语句

1.if…Then语句

语句格式:

(1)(1)If < 表达式> Then <语句>

(2)(2)If < 表达式> Then

<语句块>

End If

语句功能:当<表达式>的值为True或非零时,执行Then后面的语句(或语句块),否

3-5

图3-5

说明:

(1)(1)表达式一般为关系表达式或逻辑表达式,也可为算术表达式。

例如:

If n=0 Then End

If 年龄<=35 and 职称=”讲师” Then n=n+1

If x-5 Then print “x<>5”

(2)格式(1)中的<语句>是单行语句,若要执行多条语句,语句间用冒号分隔,且必须在一行上。格式(2)中的<语句块>可以是一条或多条语句。

例如,语句If x>y Then x=x-5:y=y+5也可写成

If x>y Then

x=x-5

y=y+5

End If

【例3.5】输入x的值,并输出其绝对值。

程序代码如下:

Private Sub Command1_Click()

Dim x!

x = InputBox("请输入一个数")

If x<0 Then x = -x

Print "绝对值是:"; x

End Sub

2.If…Then…Else语句

语句格式:

(1)(1)If < 表达式> Then <语句1> Else <语句2>

(2)(2)If <表达式> Then

<语句块1>

Else

<语句块2>

End If

语句功能:当<表达式>的值为True或非零时,执行Then后面的语句(或语句块),否则执行Else后面的语句(或语句块),实现双分支选择结构。其流程如图3-6

图3-6

例如:输入一个整数,判断其奇偶性。 程序代码如下:

Private Sub Form_Click() Dim x as integer

x=InputBox(“请输入一个整数”)

If x mod 2=0 Then Print x;”是偶数” Else Print x;”是奇数” End Sub

3.If …Then …ElseIf 语句 语句格式:

If <表达式1> Then <语句块1> ElseIf <表达式2> Then <语句块2> … [Else

<语句块n+1>] End If

语句功能:根据不同的表达式值确定执行哪个语句块,实现多分支选择结构。其流程如图

图3-7

使用说明:先计算<表达式1>的值,若为真,则执行<语句块1>,并跳过其他分支语句执行If 语句的后续语句(即End If 后面的语句);若为假,则计算<表达式2>的值,依此类推,直到找到一个为真的条件时,才执行相应的语句块,然后执行End If 后面的语句。格式中的Else 是可选项,表示若无任何表达式值为真时,则执行

<语句块n+1>;若无Else 选项,且所有条件表达式值都不为真,则不执行If 语句中的任何语句块。

【注意】

当If 语句内有多个表达式的值为真时,只执行第一个为真的表达式后的语句块。

【例3.6】在文本框中输入若干字符,统计其中字母字符、数字字符以及其他字符的个数,并显示结果。

程序代码如下:

Dim countX%,countY%,countZ%

Private Sub Text1_KeyPress(KeyAscii As Integer)

Dim c$

c=chr(KeyAscii) ‘将文本框中输入的字符赋给变量c

If Ucase(c)>=”A” And Ucase(c)<=”Z” Then

countX=countX+1

ElseIf c>=”0” And c<=”9” Then

countY=county+1

Else

countZ=countZ+1

End If

If KeyAscii=13 Then ‘当按回车键字符输入完毕,显示结果

Print “字母字符有”;countX;”个”

Print “数字字符有”;countY;”个”

Print “其他字符有”;countZ;”个”

End If

End Sub

3.3.2 Select Case语句

Select Case语句是多分支结构的另一种表示形式,它可使程序代码更加简单、清晰、易读。

语句格式:

Select Case <条件表达式>

Case <表达式列表1>

<语句块1>

Case <表达式列表2>

<语句块2>

……

[Case Else

<语句块n>]

End Select

语句功能:根据条件表达式的值转向相应的语句块,实现多路分支。其流程如图3-8。

图3-8

使用说明:先求出条件表达式的值,然后从上到下跟各个Case子句中的表达式列表进行匹配,如果找到了相匹配的值,则执行该子句下的语句块。若有多个Case子句的值与条件表达式的值相匹配,则只执行第一个与之匹配的Case子句后面的语句块。如果没有任何Case 子句中的表达式列表与之匹配,则执行Case Else子句中的语句块。

格式说明:

(1)条件表达式可以是数值表达式或字符串表达式,一般为变量。

(2)表达式列表用来描述条件表达式的可能取值情况,可以由多个表达式组成,表达式与表达式之间要用“,”隔开,必须与条件表达式的数据类型相同且有确定的值。表达式列表有以下三种形式:

①表达式或由逗号分隔的多个表达式

例如:Case “A”

Case 1,2,3

Case a,b

②<表达式1> To <表达式2>

例如:Case -10 to 10

Case “A” to “F”

Case a to b

③Is <关系操作符> <表达式>

例如:Is <10

Is>=a+b

【例3.7】某商店进行购物打折优惠活动促销,根据每位顾客一次性购物的消费额给予不同的折扣,具体方法如下:

(1) 购物1000元以上的九五折优惠,

(2) 购物2000元以上的九折优惠,

(3) 购物3000元以上的八五折优惠,

(4) 购物5000元以上的八折优惠。

程序代码如下:

Private Sub Command1_Click()

Dim x As Single, y As Single

x = InputBox("请输入购物金额:")

Select Case x

Case Is < 1000

Print "不优惠"

y = x

Case Is < 2000

Print "九五折优惠"

y = 0.95 * x

Case Is < 3000

Print "九折优惠"

y = 0.9 * x

Case Is < 5000

Print "八五折优惠"

y = 0.85 * x

Case Is >= 5000

Print "八折优惠"

y = 0.8 * x

End Select

Print "优惠后应收款额为:"; y

End Sub

3.3.3 选择结构的嵌套

将一个选择结构放在另一个选择结构内,称为选择结构的嵌套。If语句的多分支格式实际上是一种If结构的嵌套形式。选择结构的嵌套既可以是同一种结构的嵌套,也可以是不同结构之间的嵌套。例如可以在If结构中又包含If语句,或在If结构中包含Select 语句等形式。

例如:若x大于0,则y等于1;若x小于0,则y等于-1;否则,y等于0。

语句如下:

If x>0 Then y=1 Else If x<0 Then y=-1 Else y=0

此例中的If语句的Else子句中又出现If语句,形成了嵌套。

【例3.8】求一元二次方程的根。

程序代码如下:

Private Sub Form_Click()

Dim a%,b%,c%,disc%,s!

a=InputBox(“输入系数a”)

b=InputBox(“输入系数b”)

c=InputBox(“输入系数c”)

If a=0 Then ‘系数a为0时,方程只有一个根

Print “one root is:”

Print “x=”;-c/b

Else ‘系数a不为0时

disc=b*b-4*a*c

Select Case disc

Case Is>0 ‘ 方程有两个不同实根

s=sqr(disc)

Print “x1=”;(-b+s)/(2*a)

Print “x2=”;(-b-s)/(2*a)

Case Is=0 ‘ 方程有两个相同实根

Print “The root is:”

Print “x=”;-b/(2*a)

Case Else ‘ 方程没有实根

Print “No real root.”

End Select

End If

End Sub

3.3.4 条件函数

1.IIF函数

使用IIf函数也可以实现简单的双分支选择结构。

语句格式:

result = IIF(条件表达式,<表达式1>,<表达式2>)

语句说明:

(1)“result”是函数的返回值:当条件表达式为真时,函数返回<表达式1>的值,当条件表达式为假时,函数返回<表达式2>的值。

(2)<表达式1>和<表达式2>可以是任何表达式。

例如:语句If x>y Then max=x Else max=Y也可写成:

Max=IIf(x>y,x,y)

2.Choose()函数

使用Choose函数也可以实现简单的多分支选择结构。

语句格式:

result=Choose(整数表达式,选项列表)

语句说明:

Choose函数根据整数表达式的值来决定返回选项列表中的某个值。若整数表达式值是1,则Choose函数会返回列表中的第1个选项。若整数表达式值是2,则会返回列表中的第2个选项,以此类推。若整数表达式的值小于 1 或大于列出的选项数目时,Choose函数返回Null。

例如:c=Choose(x,”red”,”green”,”blue”)

当x值为1时,返回“red”;当x值为2时,返回“green”;当x值为3时,返回“blue”;当x不在1-3之间,函数返回Null。

3、Switch函数

Switch函数称开关函数,计算一个条件表达式列表,并返回与该表中一个等于True的条件表达式相联系的一个表达式的值。

语句格式:

Result=Switch(<条件表达式1>,<表达式1>[,<条件表达式2>,<表达式2>…])

语句说明:

当条件表达式1为True时,返回表达式1的值;当条件表达式2为True时,返回表达式2的值,依此类推。

例如:y=switch(x>0,1,x=0,0,x<0,-1)

3.4 循环结构

在实际应用中,经常遇到一些需要反复多次处理的问题,例如求若干个数之和、积等。重复执行某一程序块称作循环。Visual Basic提供了多种不同风格的循环结构语句,包括Do … Loop、While … Wend,For … Next,For Each … Next等,其中最常用的是For …Next语句和Do … Loop语句。

3.4.1 计数循环

For循环又称计数循环,常用于循环次数预知的场合。语句格式如下:

For <循环变量> = <初值> To <终值> [Step <步长>]

[<语句块>]

Next [<循环变量>]

说明:

(1)参数<循环变量>、<初值>、<终值>和<步长>都是数值型。

(2)<语句块>内是一系列VB合法的语句,构成循环体。

(3)步长为可选参数,如果没有指定,则默认值为1。步长可以为正,也可以为负。若为正,则初值应小于或等于终值;若为负,则初值应大于或等于终值,这样才能保证执行循环体内的语句;若为0,循环永远不能结束(即出现死循环)。

(4)该语句的执行过程如图3-9所示:

①把“初值”赋给“循环变量”,仅被赋值一次。

②检查循环变量的值是否超过终值,若是就结束循环,执行Next后的下一语句;否则执行一次循环体。

图3-9

【例3.9】求1到100的和。

Private Sub Command1_Click()

Dim i As Integer, sum As Integer

sum = 0 ‘给变量sum赋初值0

For i = 1 To 100

sum = sum + i ‘累加

Next i

Print sum

End Sub

思考:若要将上例的求和问题改为求积,如求10!,应如何编写代码?

【注意】

(1)一般在循环体内不要修改循环变量的值,否则会影响原有的循环控制状况。

例如以下程序段:

For i=1 To 5

If i Mod 2 = 0 Then i = i + 1

Print i;

Next i

程序执行打印结果为:1 3 5

循环体执行了3次,若没有第二行,程序应执行5次。

(2)如果在循环体中没有修改循环变量的值,则循环的次数可以从For语句中指定的参数直接计算出来:

循环次数=Int((循环终值-循环初值)/步长)+1

如:

For i=1 To 10 Step 3

Print i;

Next i

循环次数=int((10-1)/3)+1=4

【例3.10】求Fibonacci数列的前30个数。这个数列有如下特点:前两个数为1,从第三个数开始,其值是前两个数的和,即:

F1=1 (n=1)

F2=1 (n=2)

F n= F n-1+ F n-2(n≥3)

程序如下:

Private Sub Command1_Click()

Dim i As Integer

Dim f1 As Long, f2 As Long, fn As Long

f1 = 1

f2 = 1

Print f1,

Print f2,

For i = 3 To 30 ' f1,f2已知,从第三个数开始计算

fn = f1 + f2

f1 = f2

f2 = fn '更改f1,f2的值

Print fn,

If i Mod 4 = 0 Then Print '打印4个数后换行打印

Next

End Sub

运行结果如图3-10:

图3-10

3.4.2 条件型循环

条件型循环是根据某个条件决定循环的次数。常用的循环结构有:While循环结构及Do 循环结构。

1. While循环结构

While循环结构用While…Wend语句来实现,语句格式如下:

While <条件表达式>

[<语句块>]

Wend

语句说明:

(1)“条件表达式”可以是关系表达式、逻辑表达式或数值表达式。如果是数值表达式,值为0被作为False,非零值则为True。

(2)语句的执行过程是:先计算条件表达式的值,若为True,则执行循环中的语句块,

遇到Wend 语句时返回While 语句继续判断条件表达式的值,若仍为真,则继续执行语句块,重复上述过程直到条件表达式的值为False,则退出循环结构,执行Wend 语句的后续语句。 循环环执行过程如图3-11。

(3

例如,用While 循环语句改写例3.9 ,程序代码如下:

Private Sub Command1_Click()

Dim i As Integer, sum As Integer sum = 0 :i=1 While i<=100 sum = sum + i i=i+1 Wend

Print sum

End Sub

2. Do 循环结构

Do 循环结构的形式较灵活,可分为以下几种: (1)先判断条件的Do …Loop 循环 格式一:

Do While <条件表达式> [<语句块>] Loop

语句执行过程:先计算条件表达式的值,若为True ,则执行语句块中的语句;若为False 则退出循环结构。循环环执行过程如图3-12。

格式二:

Do Until <条件表达式> [<语句块>] Loop

语句执行过程和格式一基本相同,唯一不同的是,它在条件表达式为False 时重复执行。

图3-12 图3-13

【例3.11】将10000元存入银行,按3.25%的利率,试问多长时间就会连本带利翻一番。

程序代码如下:

Private Sub Form_Click()

Dim year%,money!,original!,interest!

original=10000

money=original

Interest=3.25/100

Do While money<2*original

year=year+1

money=money+interest*money ’累计每过一年的连本带利的金额

Loop

Print “In”;year;”years,you’ll have”;money

End Sub

请读者自己使用格式二改写上述程序。

(2)后判断条件的Do…Loop循环

格式三:

Do

[<语句块>]

Loop While <条件表达式>

语句执行过程:首先执行语句块中语句,然后计算条件表达式,如果条件表达式值为True,则继续执行语句块,否则退出循环结构。循环体至少执行一次。循环环执行过程如图3-14。

格式四:

Do

[<语句块>]

Loop Until <条件表达式>

格式四的执行过程和格式三基本一样,也是先执行后判断。唯一不同的是,它在条件表达式值为假时重复执行语句块,直到条件表达式值为真时退出循环结构。循环环执行过程如图

【例3.12】用辗转相除法求两正整数m,n的最大公约数。

求最大公约数的算法如下:

(1)对于已知两数m,n,使得m>n;

(2)m除以n得余数r;

(3)令m ←n,n ←r;

(4)若r≠0,转到(2)继续执行,直到r=0求得最大公约数为m,循环结束。

程序代码如下:

Private Sub Form_Click()

Dim m%,n%

m = InputBox("输入m")

n = InputBox("输入n")

If m< n Then ’若m小于n,则交换两数,使得m>n

t=m

m=n

n=t

End If

m1=m

n1=n

Do

r = m Mod n

m = n

n = r

Loop while ( r <>0)

Print m1; ","; n1; "的最大公约数为"; m

End Sub

(3)无条件循环

格式:

Do

<语句块>

Loop

重复执行循环体,循环不会停止,除非在循环体中有Exit Do语句或在执行时按下Ctrl+Break键。例如:

Private Sub Form_Click()

s=0

i=0

Do

i=i+1

s=s+i

If s>=3000 Then Exit Do ’当s≥3000,执行Exit Do语句退出循环

Loop

Print i,s

End Sub

3.4.3循环结构的嵌套

在一个循环语句的循环体内又包含另一个循环语句,称为循环的嵌套。循环的嵌套既可以是同一种循环结构的嵌套,也可以是不同循环结构之间的嵌套。例如,可以在For循环中包含另一个For循环,也可以在Do循环中包含一个For循环。

【例3.13】输出3-100之间的素数。

素数,就是一个大于2且只能被1和本身整除的整数。判断某数m是否为素数的算法是:对于m从i=2,3,…,m-1判别m能否被i整除,只要有一个能整除,m就不是素数,否则m是素数。

程序代码如下:

Private Sub Form_Click()

Dim m%,i%,k%,Flag As Boolean

For m=3 To 100

Flag=True

For i=2 To m-1 ‘内循环判断m是否为素数

If (m mod i)=0 Then Flag=False

Next i

If Flag Then

k = k + 1

If (k Mod 10) = 0 Then Print m Else Print m; ’每行显示10个

End If

Next m

End Sub

实际上m不可能被大于√m的数整除,因此为减少循环次数,可将内循环语句改为:For i=2 To int(sqr(m))

循环次数就会大大减少。

【注意】

(1)内外循环不能交叉。

例如,以下程序段是错误的:

For i=1 to 10 For i=1 to 10

For j=1 to 10 应改为: For j=1 to 10

……

Next i Next j

Next j Next i

(2)两个并列的循环结构的循环变量可以同名,但嵌套结构中的内循环变量不能与外循环变量同名。例如:

正确的程序段错误的程序段

For i=1 to 10 For i=1 to 10

… For i=1 to 10

Next i …

For i=1 to 10 Next i

… Next i

Next i

3.5辅助控制语句

3.5.1 End语句

End语句的作用是使程序结束运行,它可以放在任何事件过程中。语句格式如下: End

在过程、函数、分支等的结束部分都用到以End开头的语句,这些语句一般只结束某个过程或语句块。如End Sub、End If、End Function等。

3.5.2 With语句

语句格式:

With <对象>

<语句块>

End With

语句功能:用于对单个对象或用户自定义类型变量执行一系列语句,而不需重复地给出对象名或用户自定义类型变量名。

使用说明:

(1)语句格式中,<对象>是指单个对象或用户自定义类型变量。

(2)该语句可以嵌套。

(3)使用With语句对某个对象的属性进行赋值时,虽然不需重复地给出对象名,但对象的属性前面的“.”不能省略。

例如,设置标签对象MyObject的各项属性。

With MyObject

.BorderStyle=1

.Height=1000

.Width=2000

With .Font

.Bold=True

.Size=12

End With

End With

3.5.3 Goto语句

语句格式:

Goto 标号|行号

语句功能:无条件转到标号或行号指定的语句。

例如,以下程序代码求1-50的奇数和:

Dim i%,s%

s=0

i=1

re:If i<=50 Then

s=s+i

i=i+2

Goto re

End If

3.5.4 Exit语句

Exit语句用于提前退出循环结构或者过程的过程体。语句格式有:

(1)Exit For(退出For循环)

(2)Exit Do(退出Do循环)

(3)Exit Sub(退出子过程)

(4)Exit Function(退出函数过程)

【例3.14】验证“角谷猜想”。“角谷猜想”指出:对于一个自然数,若该数为偶数,则除以2;若该数为奇数,则乘以3并加1;将得到的数再重复按该规则运算,最终可得到1。程序代码如下:

Private Sub Form_Click()

Dim n%

n = InputBox(″请输入待验证的数″)

Print n;

Do While True

If n Mod 2 = 0 Then ‘ n为偶数时

n = n / 2

Else ‘ n为奇数时

n = n * 3 + 1

End If

Print n;

If n=1 Then Exit Do

Loop

End Sub

3.6 巩固和提高

3.6.1 累加、累乘

累加、累乘是较常见的数值问题。累加(累乘)是将多个数相加(乘),所以一般采用循环结构来实现。在循环体中应有表示累加(如sum=sum+x)或累乘(如t=t*i)的赋值语句。需要注意的是,累加中用于存放和的变量一般赋初值为0,而累乘中用于存放积的变量赋初

值为1。

【例3.16】利用公式…,求π的近似值,直到最后一项的绝对值小于等于10-6为止。

【分析】该题是一个累加问题,每次要加的数据项为一分式,分式的分母按步长为2进行递增,分式呈正负交替。循环次数未知,由某项的值是否达到指定的精度来决定循环与否。

Private Sub Form_Click()

Dim n As Long

Dim pi As Single, t As Single, s As Single

pi = 0

s = 1

t = 1

n = 1

Do While (Abs(t) > 0.00001)

pi = pi + t

n = n + 2 '分母的值每次加2

s = -s ' 数据项符号的正负交替变化

t = s / n ' 计算数据项的值

Loop

pi = pi * 4

Print pi

End Sub

【例3.17】求1!+2!+…+n!,n由键盘输入。

【分析】该题先求阶乘,再将阶乘值累加。循环次数由用户输入确定(即n的值)。

Private Sub Form_Click()

Dim s as double,t as double,n as integer

s=0

t=1

n=InputBox(“请输入n的值”)

For i=1 to n

t=t*i ’求i!并赋给变量t

s=s+t

Next i

Print “1!+2!+…+”;n;”!=”;s

End Sub

3.6.2 求最大值与最小值

求若干数的最大值(最小值),其算法思想是:先取第一个数作为最大值(最小值)的初值,然后依次将下一个数和它比较,若比它大(小),将该数替换为最大值(最小值)。

【例3.18】产生10个1-100之间的随机整数,输出它们的最大值。

【分析】用变量max保存最大值,其初值为第一个数,然后依次将max与下一个数比较,若该数比max大,则修改max的值为该数。

Private Sub Form_Click()

Dim i%,x%,max%

Randomize

Print “10个随机整数:”

x=int(Rnd*100)+1

Print x;

max=x ‘将第一个数作为初值赋给max

《VB选择结构程序设计》教学设计

《VB选择结构程序设计》教学设计 山东省临清市第二中学吴焕英 【案例背景】 高中信息技术新课程的实施,其课程目标定位于全面提升学生的信息素养,其课程的设置从知识与技能、过程与方法、情感态度与价值观三个方面实施这个课程目标。然而,众多的老师实施新课程后发现:教学内容的范围比以前更广泛了、课时远远不够、教学软硬件资源缺乏等诸多问题。因此,如何更有效地开展新课程教学,成为老师们迫切需要解决的问题。本教学案例从学生的实际情况出发,根据现有的数学、英语基础,结合简单的生活实例,引导学生进行探索式学习,问题从简单的英语口语入手,过渡到课题的研究学习。原本枯燥无味的VB程序设计,在简单、形象的生活实例下,激发了学生的思考与探索思维。这样的教学案例,值得我们反思研究、总结与完善。 【教材分析】 算法与程序设计是普通高中信息技术课程中选修模块之一,本模块旨在使学生进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法解决问题。 “选择结构”是教育科学出版社出版的高级中学课程标准实验教科书、算法与程序设计第二章第三节的内容,共分三课时,本课为第二课时。主要内容是用选择结构编写简单的程序解决具体问题。用选择结构编写简单的程序解决具体问题是在学生已经掌握了程序设计数据的表示与处理的基础上,理解了顺序结构的前提后提出的。 通过本课的学习,可以促进学生对问题解决方法和思想的理解与掌握,从而提升学生的问题解决能力,让学生在按照一定的流程解决问题的过程中,去体会和理解程序设计的思想,而且也为多分支选择结构的学习打下基础。 【学生分析】 高一的学生在数学课中已经有了算法和程序设计的基础,学生对事物的分析、综合能力及独立思考能力、分析解决问题的能力都有了一定的水平,在教师的有效引导下,有能力进行自我探究,如果用一种学生比较感兴趣的,能够贴近学生日常生活的例子来分析选择结构的话,那么学生会比较感兴趣。 【教学目标分析】 通过教师引导学生去探究、发现技术背后所蕴含的技术价值和技术思想,使其获得知识与技能的同时,理解和掌握过程与方法,这样才能够学会认知,学会做事,乃至学会生活,提高终生学习的能力、分析解决问题的能力,满足其终身发展的需要,成为适应信息社会的公民。 因此本节课的目标有以下几项:

VB程序if语句选择

一、有如下程序段: x=7 If x>5 Then y=11-2*x Else y=10+x^2 End If 该程序段运行后,变量y 的值是() ZR_A=-3 ZR_B=5 ZR_C=10 ZR_D=59 —————————————————————————————————————————二、如图所示算法的功能是() ZR_A=按从小到大的顺序输出两个变量的值 ZR_B=按从大到小的顺序输出两个变量的值 ZR_C=交换两个变量的值 ZR_D=找出两个变量中的较小者————————————————————————————————————————— 三、有如下程序段: t=5 If t<>5 Then f=10 Else f=10+(t-3)*2 End IF 该程序段运行后,变量f的值是() ZR_A=5 ZR_B=10 ZR_C=14 ZR_D=20 —————————————————————————————————————————

四、流程图如图所示,若输入x的值为0,则输出结果是() ZR_A=10 ZR_B=16 ZR_C=4 ZR_D=-4 —————————————————————————————————————————五、淄博市规定60岁及以上老年人可以办理老年证,办证的流程如下图,这属于()。 ZR_A=双路径决策ZR_B=多路径决策ZR_C=计数循环ZR_D=变量—————————————————————————————————————————六、某商场香蕉每斤1.5元,为了促销,规定购买4斤或4斤以上打八折,不足4斤的按原价格销售。下面是用VB编写的程序,红线上应填入的语句是()。 ZR_A=y = 1.5 * x * 0.8 ZR_B=y = 1.5 * x /4 ZR_C=y = 4 * x * 0.8 ZR_D=y = 1.5 * x * 0.2 —————————————————————————————————————————

VB基本知识及选择、循环结构习题

一、VB 基本知识及选择、循环结构习题 一、基本概念题 (1) 说明下列哪些是Visual Basic 合法的直接常量,并分别指出它们的类型。 %100 1E1 123D3 123,456 0100 “ASDF” “” #2004/10/7# 100# π &O78 &H123 True T -1123! # (2)下列数据哪些是变量,哪些是常量是什么类型的常量 Name “name” False ff “11/16/99” cj “120” n #11/12/2004# (3) 下列符号中,哪些可以是Visual Basic 的合法变量名 A123 a12_3 123_a a,123 a 123 Integer XYZ False Sin(x) 变量名 sinx π (4)把下列数学表达式写成Visual Basic 表达式: (1)5||z y x ++ (2)6)1(xy + (3)xy y x 310+ (4)a ac b b 242-+- (5)3211111r r r ++ (6)110ln 45sin 10++++y x e (5)写出下列表达式的值: (1)123 + 23 Mod 10 \ 7 + Asc("A") (2)Int * 100 + / 100 (3)#11/22/2004# - 10 (4)"ZXY" & 123 & "abc" (6)设a=7,b=3,c=4,求下列表达式的值: (1)a + 3 * c (2)a ^ 2 / 4 (3)a / 2 + 3 \ 2 (4)a Mod 3 + b ^ 3 / c \ 5 (7)写出下列函数的值: (1)Int (2)Fix (3)Sqr(Sqr(81)) (4)Len("Visual Basic 程序设计") (5)Int(Abs(99 - 100) / 2) (6)Sgn(7 * 3 + 2) (7)LCase("Hellow VB!") (8)Mid("Hellow VB!", 4, 3) (9)Left("Hellow VB!", 3) (10)Val("16个加23个") (11)Str (12)UCase("Visual Basic") 二、 选择题 (1)可以同时删除字符串前导和尾部空格的函数是 。 A. Ltrim B. Rtrim C. Trim D. Mid (2)函数Int(Rnd(1) * 10)是在哪个范围产生随机整数 。 A. (0,1) B. (0,9) C. (1,10) D. (1,9) (3)数学式子sin25o写成Visual Basic 表达式是 。 B. Sin(25) C. Sin(25o) D. Sin(25*180) (4)表达式16/4 – 2^3 * 8/4 Mod 5\2的值是 。 A. 14 B. 4 C. 20 D. 2 (5)数学关系式103<≤x 表示成正确的VB 表达式为 。 A. 3<= x <10 B. x >= 3 And x<10 C. x>=3 Or x<10 D. 3<= x And <10

OFFICE VB 语句

定制模块行为 (1) Option Explicit ''强制对模块内所有变量进行声明 Option Private Module ''标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示Option Compare Text ''字符串不区分大小写 Option Base 1 ''指定数组的第一个下标为1 (2) On Error Resume Next ''忽略错误继续执行VBA代码,避免出现错误消息 (3) On Error GoTo ErrorHandler ''当错误发生时跳转到过程中的某个位置 (4) On Error GoTo 0 ''恢复正常的错误提示 (5) Application.DisplayAlerts=False ''在程序执行过程中使出现的警告框不显示 (6) Application.ScreenUpdating=False ''关闭屏幕刷新 Application.ScreenUpdating=True ''打开屏幕刷新 (7) Application.Enable.CancelKey=xlDisabled ''禁用Ctrl+Break中止宏运行的功能 工作簿 (8) Workbooks.Add() ''创建一个新的工作簿 (9) Workbooks(“book1.xls”).Activate ''激活名为book1的工作簿 (10) ThisWorkbook.Save ''保存工作簿 (11) ThisWorkbook.close ''关闭当前工作簿 (12) ActiveWorkbook.Sheets.Count ''获取活动工作薄中工作表数 (13) https://www.wendangku.net/doc/bd12934609.html, ''返回活动工作薄的名称 (14) https://www.wendangku.net/doc/bd12934609.html, ‘返回当前工作簿名称 ThisWorkbook.FullName ‘返回当前工作簿路径和名称 (15) ActiveWindow.EnableResize=False ‘禁止调整活动工作簿的大小 (16) Application.Window.Arrange xlArrangeStyleTiled ‘将工作簿以平铺方式排列 (17) ActiveWorkbook.WindowState=xlMaximized ‘将当前工作簿最大化 工作表 (18) https://www.wendangku.net/doc/bd12934609.html,edRange.Rows.Count ‘当前工作表中已使用的行数 (19) Rows.Count ‘获取工作表的行数(注:考虑向前兼容性) (20) Sheets(Sheet1).Name= “Sum”''将Sheet1命名为Sum (21) ThisWorkbook.Sheets.Add Before:=Worksheets(1) ''添加一个新工作表在第一工作表前 (22) ActiveSheet.Move After:=ActiveWorkbook. _

vb控制结构综合练习

A) 0 B) 1 C) ””D) False 控制结构4.设a=6,则执行x=IIf(a>5,-1,0)后,x的值一、选择题为________。 种基本结构1.VB的3种结构化程序设计的3A) 5 B) 6 C) 0 D) –1 是________。5.下面程序段的运行结果是________。 A) 选择结构、过程结构、顺序结构cj=85 递归结构、选择结构、顺序结构B) 晉挠??吠敨?橤尽屁 过程结构、转向结构、递归结构C) 晉挠??吠敨?橤尽层 D) 选择结构、顺序结构、循环结构晉挠??吠敨?橤尽屃 2.段函数表用If语句示分晉挠??吠敨?橤尽屄3?1x?x?1?x)(f表________ ,以下?311x?x?晉挠??吠敨?橤尽居?示方法不正确。Print dj=;dj A) f=x^3+1A) dj=B B) dj=C C) dj=D D) dj=E 1 If x>=1 Then f=s^3- -B) If x>=1 Then f=x^31 If x<1 Then f=x^3+1 -1C) If x>=1 Then f=x^3 f=x^3+16.下列语句正确的是________。 D) If x<1 Then f=x^3+1 Else A) If K<3*N And k>N Then N=k^3 F=x^31-B) If K<3*N And k>N Then N=k3 。执行下面的程序段后显示结果是3.________ C) If K<3*N : k>N Then N=k^3 Private Sub Form_Click() D) If K<3*N And k>N Then N=k**3 Dim m ,则下列L=True,z=6.0,,7.设X=2.0y=8.0是的值为True中达BasicVisual 表式If m Then Print m Else Print m+1 。________ End Sub A) X+Z>Y AND L. B) NOT(YNOT L Private Sub Command1_Click() For I=1 To 4 C) NOT L OR (L=Y+X=Z) For J=0 To I D) Y+X>=Z+X AND (L AND FALSE) Print Chr(65+I); 2000元以上(含月收入在20008.要判断”的职元)”5000元)且元以下(不含5000 Next J ________。工,应使用的逻辑表达式是Print A) M>=2000 AND M<=5000 Next I B) M>=2000 OR M<=5000End Sub C) M>=2000 AND M<5000单击命令按钮后,运行结果________。D) M>=2000 OR M<5000A) BB B) A 9.下列程序段的执行结果为________。CCC BB -60)*Rnd+60)x=Int((69 DDDD CCC Select Case x EEEEE DDDD Case Is>90 牐湩? 优秀C) B D) AA Case 80 To 89 CC BBB 良好牐湩? DDD CCCC Case 60 To 79 EEEE DDDDD 牐湩?合格11.在窗体上画一个名称为Text1的文本框Case Else和一个名称为Command1的命令按钮,然后编写如下事件过程:不合格牐湩? Private Sub Command1_Click()End Select Dim i As Integer,n As Integer D) 合格C) 良好B) 优秀A) 不合格For i=0 To 50 .在窗体上画一个命令按钮,名称为10。然后编写如下程序:运行结果Command1 i=i+3 ________。n=n+1 If i>10 Then Exit For

vb常用语句

1.選取list控件的多個選項 Dim k As Integer Dim msql As String SQL = "select sn from gm1_carton_log where batch_no='" & Trim(Text1.Text) & "' and wo_no in " For k = 0 To List2.ListCount - 1 msql = msql & "'" & Trim(List2.List(k)) & "'," Next k msql = Left(msql, Len(msql) - 1) SQL = SQL & "(" & msql & ")" 2.自動執行程式 Timeleft=autoclose Autoclose=5 Private Sub Timer1_Timer() TimeLeft = TimeLeft - 1 lblTimeRemaining.Caption = TimeLeft If TimeLeft = 0 Then Timer1.Enabled = False Call OKButton_Click End If End Sub https://www.wendangku.net/doc/bd12934609.html,box控件的用法 With Combo1 SQL = "" SQL = "select distinct(b.invoice_no) from gm1_ship_invoice a,gm1_ship_ms b where a.invoice_no=b.invoice_no and b.ship_fg='OPEN' " Set rs = DB.Execute(SQL) If Not rs.EOF Then rs.MoveFirst Do While Not rs.EOF Combo1.AddItem Trim(rs!invoice_no) rs.MoveNext Loop End If End With 2.MsflexGrid的用法

VB程序基本知识学案

主题:程序基本知识 数据类型、常量、变量、函数和表达式 一、点击考点: 1、知道常用的数据类型、变量、常量的含义;学会定义常量、变量的数据类型。 2、知道程序中运算符、函数、表达式的表示方式,能够转换数学表达式为程序接受的 表达式。 3、掌握程序包括的四部分。 二、学习目标: 1、掌握数据类型及其特点; 2、知道常量、变量的声明格式;学会定义常量、变量 3、知道程序中运算符、函数、表达式的表示方式,能够转换数学表达式为程序接受的表达式。 4、知道程序包括的四部分内容。 三、学习方式: 在老师引导下的自主学习,互相评价做题效果 四、考点注解 1、知道常用的数据类型、变量、常量的含义;学会定义常量、变量的数据类型。 (1)VB数据类型(阅读课本27页的表) (2)常量 在程序执行过程中,其值不能改变的量称为常量。常量可以直接用一个数来表示,称为常数(或称为直接常量),也可以用一个符号来表示,称为符号常量。 常量的定义格式如下: Const <常量名> [As 数据类型]=表达式 (3)变量 在程序执行过程中,其值可以改变的量称为变量。 1)变量的命名规则 ?变量名首字符必须是字母; ?变量名只能由字母、数字和下划线组成; ?变量名不能使用VB中的关键字(保留字); ?变量名在同一个作用域内必须唯一; ?变量名长度不超过255; ?变量的命名最好还应遵守一定的编程约定。 3)变量定义语句 Dim <变量名> As <类型> [, <变量名> As <类型>]… 2、知道程序中运算符、函数、表达式的表示方式,能够转换数学表达式为程序接受的表达式。 运算符是在代码中对各种数据进行运算的符号。例如,有进行加、减、乘、除算术运算的运算符,有进行与、或、非、异或逻辑运算的运算符。 表达式是由运算符和运算对象及圆括号组成的一个序列,它是由常量、变量、函数等用运算符连接而成的式子。表达式是构成程序代码的最基本要素。 1)赋值运算符 赋值语句的语法格式为:

vb选择与判断

VB 编程基础判断题(0错误 1正确) 1. Excel 可以处理电子表格数据,所以它是程序设计语言。答案: 0 2. 每种程序设计语言都有自己的语法和规则。答案:1 3. 使用VB 设计程序时,可以不用创建工程。答案:0 4. 通常状况下,我们会通过两种方法修改对象属性,一种是利用属性窗口,另一种是利用代码。答案:1 5. 在 VB 开发环境中,如果对象窗口工具箱工程资源管理器属性窗口和窗体布局窗口等被关闭,可以通过“视图”菜单再次打开。答案:1 6. 在VB 窗体中添加第一个标签控件后,该标签控件的Caption 标题属性设置的默认值是“command1”。答案:答案:0 7. 在VB 中,可以借助键同时选中多个对象。答案:1 8. 在VB 中,调整选中的多个控件的大小和位置时,要最后选中作为调整依据的控件。答案:1 9. 在VB 中,一个程序可能包含若干个不同的文件,但一定不包括工程文件和窗体文件。答案:0 10. 在VB 中,一个程序中的工程文件扩展名为vbp ,窗体文件扩展名为frm。答案:1 11. 在VB 中,要想让同一窗体上的3 个按钮控件的大小相同,可以使用“格式”菜单中的“统一尺寸”子菜单的“两者都相同”命令。答案:1 12. 在VB 中,标签一般用来显示信息,文本框用来接受用户输入的信息。答案:1 13. 在VB 程序中,被使用的窗体和控件统称为对象。答案:1 14. 在VB 中,属性窗口通常显示的是当前被选中的对象的具体属性。答案:1 15. 在VB 中,对象的“名称”和“Caption”是两种相同的属性。答案:0 16. 在VB 中,标签和命令按钮显示的文字由其“Text”属性确定,文本框中显示的文字由其“Caption”属性确定。答案:0 17. 在VB 中我们可以接触两种程序界面,一种是窗体中不带网格点的设计界面,另一种是带网格点的运行界面。答案:0 18. 属性窗口有两个选项卡,一个是按字母排序别一个是按类进行排,但都是用来显示某一对象的各种属性的。答案:1 19. 在VB 中,语句命令中的符号,都必须是英文字符。答案:1 20. 在VB 中,一个对象只能响应一种事件。答案:0 21. VB 的代码窗口包括对象名框事件过程名框和代码编辑区3 部分。答案:1 22. 在VB 中,125 是数值型数据,"125"也是数据型数据。答案:0 23. 在VB 中,可以使用“User & name”作为变量名。答案:0 24. 在VB 程序中,使用Option Explicit 后,如果再使用未加声明的变量,运行程序时会出现错误提示。答案:1 25. 在VB 中CStr 函数可以将数值型表达式的值转换成对应的字符串。答案:1

VB程序的三种基本结构复习课教学案例

《VB程序的三种基本控制结构》 复习课教案 平桂高级中学陀君一、案例背景信息 模块:算法与程序设计 年级:高一年级 所用教材版本:粤教版《算法与程序设计》 学时数:1课时(40分钟) 二、教学设计: 1、教学目标: 知识与技能:能根据流程图正确区分VB程序的三种基本结构,并记住相关语句格式,能编写出简单明了的程序关键代码; 过程与方法:充分认识VB程序中三种基本结构的实用性,体会生活中算法的存在和精彩。 情感态度与价值观:培养学生在学习过程中积极思考、自我探究的能力和学以致用的意识。 2、教学重点:顺序、选择(分支)和循环三种基本结构的区分及其对应的VB 语句的使用。 教学难点:for循环结构,各类语句关键代码的编写。 三、教学实录 1.复习引入 师:我们之前学过VB的基本结构,通常程序有三种最基本的结构,是哪三种结构? 大部分学生在底下小声回答,师让某生回答,说:顺序模式、分支模式、循环模式。

师:分支模式也可称为? 部分学生:选择模式。 师:非常好,接下来看下这三种结构的流程图,然后分别指出这三个流程图是什么结构。(出示三种流程图结构) 2.正题 (1)顺序结构P38: 执行第一条语句后,必然从第二条语句继续,顺序执行所有的语句,直到执行完最后一条语句为止。 例1:例1、 a=1 b=2 c=a+b a=c-a b=c-a

最后,变量b的值是( 1 ) (2)选择结构(分支结构):P42 根据条件判断其是否成立,如果成立执行成立的分支;否则执行另一分支。其一般形式为: If 条件Then 语句序列1 Else 语句序列2 End If 单行形式为: If 条件Then 语句组1 Else 语句组2 例2、a =10 If a>=10 Then a=a+1 Else a=a-1 End If 该程序段运行后,变量a的值是( D ) A. 8 B. 9 C. 10 D. 11 【师读题,学生思考。请同学回答,让同学们思考a=5结果是多少】 (3)循环结构:P51 根据条件判断其是否成立,如果条件成立则重复执行循环体(循环结构中某语句序列),直到条件不成立,退出循环结构为止。 循环结构的常用形式为: for 循环变量= 初值to 终值[step 步长] [循环体] next [循环变量]

vb控制结构综合练习

控制结构 一、选择题 1.VB 的3种结构化程序设计的3种基 本结构是________。 A)选择结构、过程结构、顺序结构 B)递归结构、选择结构、顺序结构 C)过程结构、转向结构、递归结构 D)选择结构、顺序结构、循环结构 2.用If 语句表示分段函数 33 11 ()11x x f x x x ?-≥=?+=1Thenf=s^3-1 B)Ifx>=1Thenf=x^3-1 Ifx<1Thenf=x^3+1 C)Ifx>=1Thenf=x^3-1 f=x^3+1 D)Ifx<1Thenf=x^3+1Else F=x^3-1 3.执行下面的程序段后显示结果是________。 PrivateSubForm_Click() Dimm IfmThenPrintmElsePrintm+1 EndSub A)0 B)1 C)”” D)False 4.设a=6,则执行x=IIf(a>5,-1,0)后,x 的值为________。 A)5 B)6 C)0 D)–1 5.下面程序段的运行结果是________。 cj=85 Ifcj>90Thendj="A" Ifcj>80Thendj="B" Ifcj>70Thendj="C" Ifcj>60Thendj="D" Ifcj<60Thendj="E" Print"dj=";dj A)dj=B B)dj=C C)dj=D D)dj=E 6.下列语句正确的是________。 A)IfK<3*NAndk>NThenN=k^3 B)IfK<3*NAndk>NThenN=k3 C)IfK<3*N:k>NThenN=k^3 D)IfK<3*NAndk>NThenN=k**3 7.设X=2.0,y=8.0,z=6.0,L=True ,则下列VisualBasic 表达式中值为True 的是________。 A)X+Z>YANDL B)NOT(YNOTL C)NOTLOR(L=Y+X=Z) D)Y+X>=Z+XAND(LANDFALSE) 8.要判断”月收入在2000元以上(含2000元)且5000元以下(不含5000

VB控制结构——goto型控制语句

VB控制结构——goto型控制语句 一、goto语句 goto语句可以改变程序的顺序,跳过程序的某一部分去执行另一部分。或者返回已经执行过的某些语句使之重复执行。因此,用goto语句可以构成循环。 Goto语句的一般格式:goto [ 标号或行号] “标号”是一个以冒号结尾的标识符;“行号”是一个整型数。它不以冒号结尾。 例如:aa:是一个标号 100 是一个行号 Goto语句改变程序执行的顺序。无条件地把控制转移到“标号”或“行号”所在的程序行,并从该行开始向下执行。 需要注意的就是: (1)标号必须以英文字母开头,以冒号结束,而行号由数字组成,后面不能跟有冒号。Goto语句中的行号或标号在程序中必须存在,并且是唯一的,否则会产生错误。标号或行号可以在goto语句之前,也可在其之后。当在goto语句之前时,提供了实现循环的另外一种途径。 (2)V isual basic对goto语句的使用有一定的限制。它只能在一个过程中使用。 二、On--goto语句 On—goto语句类似于情况语句,用来实现多分支控制结构。它可以根据不同的条件从多种处理方案中选择一种,其格式为: On 数值表达式goto 行号列表或标号列表 On—goto语句的功能是:根据“数值表达式”的值,把控制转移到几个指定语句行中的一个语句行。“行号列表”或“标号列表”可以是程序中存在的多个行号或标号,相互之间需要用逗号隔开。例如: On x goto 20,35,aa,bb 该语句的执行过程是:先计算“数值表达式”的值,将其四舍五入得一整数。然后根据该整数的值决定转移到第几个行号或标号执行。如果其值为1,则转向第一个行号或标号所指出的语句行;如果为2,则转达向第二个行号或标号指出的语句行……依次类推。如果“数值表达式”的值等于0或大于“行号列表”或“标号列表”中的项数。程序找不到适当的语句行,将自动执行On—goto语句下面的一个可执行语句。 因为这个语句在一些工程量比较大的程序中,容易使程序变得混乱,所以我们应该尽量少用这些语句,并尽量用情况语句(select case)来代替。

VB中考选择试题(2020年8月整理).pdf

VB选择题 1. 在VB中工程文件的扩展名是(B)。 A.bas B.vbp C.frm D.vbg 2.有关VB语言描述错误的是( A ) A.多个语句用“,”隔开 B.VB程序中一般不区分代码的大小写 C.VB程序中的变量名和常量名可以是单个字母,也可以是以字母打头的字符串 D.对程序窗口中的控件对象进行操作时,一个对象可以响应不同类型的事件 3.VB编程主要的基本过程有三个步骤( C ) A.创建工程、设置属性、保存程序 B.创建工程、设计窗体、调试运行 C.设计窗体、设置属性、编写代码 D.设计窗体、编写代码、调试运行 4.要使标签Label1的标题栏显示“欢迎进入VB世界”,下面语句正确的是(D )。 https://www.wendangku.net/doc/bd12934609.html,bel1.caption=“欢迎进入VB世界” https://www.wendangku.net/doc/bd12934609.html,bel1.caption=’欢迎进入VB世界’ https://www.wendangku.net/doc/bd12934609.html,bel1.caption= 欢迎进入VB世界 https://www.wendangku.net/doc/bd12934609.html,bel1.caption=”欢迎进入VB世界” 5.输入代码时,可以把一条语句分成两行或者多行,这时需要续行符,续行符是由(A )组成。 A.空格和下画线“_” B.空格和逗号“,” C.空格和加号“+” D.空格和减号“-” 6.在VB中输入代码时,为增强程序的可读性,通常用(B )作为注释符,使后面的内容绿色显示。 A. // B. ‘ C. ; D. * 7.在VB中Sub语句的过程名是由(A )组成。 A.对象名、下画线“_”和事件名组成 B.对象名、点“.”和属性组成 C.对象名、等号“=”和事件名组成 D.对象名、减号“-”和事件名组成

8.在VB语言中连接字符串的运算符有( A )。 A.“&”符号和“+”符号 B. “.”符号和“_”符号 C.“\”符号和“:”符号 D.“=”符号和“-”符号 9.一行内写多条语句时,每条语句之间要用(C )符号分隔。 A., B.; C.: D.、 10下列不能打开代码窗口的操作是(D)。 A.双击窗体上的某个控件 B.双击窗体 C.单击视图菜单下的代码窗口选项 D.单击窗体或控件 11.若要使文本框的内容能以多行的形式显示,应修改文本框的(C )属性。 A. Text B.font C.multiline D.locked 12.将文本框的(A)属性设为true时,只能显示信息不能输入内容。 A.locked B.visible C.enabled D.scrollbars 13.图像框可以将图片按图像框大小自动调整,那么需要将该图像框的(A)属性设为True。 A.Stretch属性 B.Visible属性 C.Picture属性 D.Enabled属性 14.下列赋值语句,语法错误的是( B ) A.text1.text=” vb语言” B.a+b=y C.y=a+b D.i=i+1 15.将a、b两个变量的值进行互换,正确的是(B) A.a=b:b=a B.c=a:a=b:b=c C.b=a+b:a=a/b D.a=c:c=b:b=a

VB程序设计-试题与答案-1

《VB程序设计基础》试题 一、选择题:(每空 2 分,共 20 分) 1. 与传统的程序设计语言相比,Visual Basic最突出的特点是___________。 A. 结构化程序设计 B. 程序开发环境 C. 事件驱动编程机制 D. 程序调试技术 2. Visual Basic 是一种面向对象的程序设计语言,构成对象的三要素是________。 A. 属性、事件、方法 B. 控件、属性、事件 C. 窗体、控件、过程 D. 窗体、控件、模块 3. 窗体模块保存在一个扩展名为__________的文件中。 A. bas B. vbp C. vbg D. frm 4. 下面正确的赋值语句是_________。 A. x+y=30 B. y=π*r*r C. y=x+30 D. 3y=x 5. 设S=“492”,表达式Right(S,1)+Left(S,1)+Mid(S,2,1)的值为__________。 A.“492” B.“249” C.“294” D.“429” 6. 将数学表达式a≤b≤c写成Visual Basic表达式,正确的是__________。 A. a<=b<=c B. a<=b Or b<=c C. a<=b And b<=c D. a<=b Not b<=c 7.为了把焦点移到文本框,所使用的方法是___________。 A. SetFocus B.Visible C.Refresh D.GetFocus 8. INT(100*RND)产生的随机整数的闭区间是_____________。 A.[0,100] B.[1,100] C.[1,99] D.[0,99] 9. 一个数组说明为Dim a(0 to 5,1 to 5) As Integer,则该数组共有_________个 元素。 A. 5 B. 36 C. 30 D. 不确定 10. 下面过程定义语句合法的是____________。

《第4章 VB控制结构》习题

《第4章VB控制结构》习题 一、填空题 1、结构化程序设计语言的三种基本控制结构是、、。 2、分支结构中的条件通常是表达式。 1、Select case语句执行哪一个分支的根据是与相匹配。 2、强制性退出Do…Loop循环的语句是,强制性退出For…Next循环的语 句是。 3、VB有三种工作模式,它们分别是、和。 4、VB可能遇到的错误有、和。 5、执行下面的程序段后,s的值为。 s=5 For i=2.6 To 4.9 Step 0.6 s=s+1 Next i 6、阅读程序,写出程序的运行结果box 。 Private Sub Form_Click() Dim k,Box as Ivteger For k=1 to 11 Select Case k Case 1,3,5,7,9,11 Box=Box+Int(k/2) Case 2,4,6,8,10 Box=Box+Int(k/3) End Select Next k Print “Box”;Box End Sub 7、运行时单击窗体,以下事件发生的次序是。 8、执行下列程序段后,x的值是。 n = 5: x = 1: i = 1 Do x = x * i i = i + 1 Loop While i < n 9、阅读下列程序段: x = 0 For i = 1 To 4 For j = 1 To i x = x + 1 Next j, i 执行以上循环后,x 的值为。 10、执行下列程序段后输出的结果是。 s = 1

For i = 1 To 3 For j = 0 To i-1 s = s + s * j Next j ? s; Next i 11、阅读下列程序段: m = 0 For i = 1 To 3 For j = 1 To i m = m + j Next j, i 执行以上的循环后,i和m的值分别为。12、运行下列程序段,其中“n=n+1”语句被执行的次数是。 Dim m%, n% For m = 1 To 3 For n = 1 To 6 Step 2 n = n + 1 Print n Next n Next m 13、窗体上有一个命令按钮Command1,编写如下事件过程: Private Sub Command1_Click() Sum = 0 For m = 1 To 3 Select Case m Case 1 a = 1 Case 2 a = 2 Case 3 a = 3 End Select Print a, Sum = Sum + a Next m Print Sum End Sub 运行时,单击按钮,输出结果是。 14、窗体上有一个命令按钮Command1,编写如下事件过程: Private Sub Command1_Click() a = 80: b = 50: c = 30 If a < b Or b > c Then b = c If b = c And a < c Then a = a - 30

VB程序设计——选择结构.

VB程序设计——选择结构 南京市九龙中学李李 ■教材分析 选择控制结构是程序的三个基本结构中的一个重要结构,计算机的逻辑判断能力就是通过选择结构来完成的。条件语句中的“条件”是用关系表达式、逻辑表达式来描述的。程序中能否实现正确的“选择”决定于关系表达式或逻辑表达式的正确描述。关系表达式与逻辑表达式是本节中教学的重点与难点。 用选择结构编写简单的程序解决具体问题是在学生已经掌握了程序设计数据的表示与处理的基础上,理解了顺序结构的前提后提出的。通过本课的学习,可以促进学生对问题解决方法和思想的理解与掌握,从而提升学生的问题解决能力,让学生在按照一定的流程解决问题的过程中,去体会和理解程序设计的思想。 ■学情分析 学生在前面的课上对vb程序设计已经有了一定的基础,学生的分析、综合能力及独立思考能力、分析解决问题的能力都有了一定的水平,在教师的有效引导下,有能力进行自我探究,如果用一种学生比较感兴趣的,能够贴近学生日常生活的例子来分析选择结构的话,那么学生会比较感兴趣。 ■教学目标 1.知识与技能 1.了解选择结构的基本概念。 2.了解关系表达式与逻辑表达式的概念。 3.能利用VB中的条件语句实现简单的选择结构。 2.过程与方法 经历实践、分析、归纳,掌握IF语句的格式和功能。 3.情感态度与价值观 运用半成品加工策略,完善程序,发展学生思维的逻辑性及严谨的学习态度。 4.行为与创新 培养学生利用计算机的反馈作用进行探究学习的能力。 ■课时安排 安排1课时。 ■教学重点与难点 1.教学重点 让学生学会使用VB语言的If分支语句,掌握分支判断程序结构,来解决实际问题,

并且培养学生的探索、创新能力。 2.教学难点 对解决问题的方法和步骤的理解,并能根据实际问题写出程序代码。■教学方法与手段 讲述与讨论、实验与验证。 ■课前准备 教学课件、实例程序 ■教学过程

VB程序语句与控制结构

第3章VB程序语句与控制结构 一个VB应用程序主要由用户界面和响应各事件的程序代码组成,程序代码是应用程序的核心。本章首先介绍程序代码设计的基础知识,再通过一些典型的例子,使大家逐步掌握编程的思路和技巧。VB虽然是面向对象的程序设计语言,但在代码设计中仍然支持结构化程序设计的三种基本结构,即顺序结构、选择结构和循环结构。本章将主要介绍数据的输入与输出、三种基本程序控制结构及语句。 3.1 数据的输入与输出 VB的输入/输出有多种形式,常用的输入方式有:使用键盘输入数据的函数InputBox 以及文本框等控件。常用的输出方式有: Print方法、MsgBox函数和过程以及图形框、文本框、标签等控件。有关控件的使用在其第六章中介绍,本节主要介绍InputBox函数、MsgBox函数与过程以及Print方法的使用。 3.1.1 InputBox函数 格式:InputBox(提示[,标题][,默认][,x坐标位置][,y坐标位置]) 功能:InputBox函数产生一个对话框,作为输入数据的界面,等待用户输入内容,当用户单击“确定”按钮或按回车键,函数返回输入的值,其值的类型为字符串(String)。 说明: (1)“提示”:必选项。字符串表达式,在对话框中作为提示信息显示,可为汉字。若要多行显示,必须在每行行末加回车符Chr(13)和换行符Chr(10)符或VB符号常数vbCrLf。 (2)“标题”:可选项。字符串表达式,在对话框的标题区显示;若省略,默认为应用程序名。 (3)“默认”:可选项。字符串表达式,当输入对话框中无输入时,则该默认值作为输入的内容。 (4)“x坐标位置、y坐标位置”:可选项。整型表达式,确定对话框左上角相对于屏幕左上角的x、y坐标,单位为twip。该项省略时,对话框出现在屏幕水平、垂直中间的位置。 【注意】 各项参数次序必须一一对应,除了“提示”一项不能省略外,其余各项均可省略,处于中间的默认部分要用逗号占位符跳过。 例如,运行如下代码段,结果显示如图3-1所示,当单击“确定”按钮后,变量strName 的值为“李林”。 Dim strName as String*20 Title = "InputBox函数示例" Msg1 = "请输入你的姓名" StrName=InputBox(Msg1,Title,,200,200) 图3-1 3.1.2 Msgbox 函数与过程 MsgBox用于输出数据,它会在屏幕上显示一个对话框。在对话框中显示消息,等待用

VB中选择语句if语句的使用

VB中选择语句if语句的使用 标准模块:选修算法与程序设计 标准条目:(一)计算机解决问题的基本过程(3)在使用计算机解决实际问题的过程中,通过观看演示、模仿、探究、实践等环节,了解顺序、选择、循环三种基本结构及其重要作用,掌握计算机程序的基本概念,能解释计算机程序执行的基本过程。本节课本我选择了选择结构中学会使用if语句。 建议学时:1 学生分析: 在本内容之前,我校高一学生已经对vb有了基本的了解 学习目标: (1)让学生体会并理解if语句解决问题的基本思想。 (2)掌握if语句的用法及执行的基本过程及流程图的画法。 (3)能够用if语句解决问题。 教学过程设计: if语句根据判定结果(真或假)执行一组语句,有单行和多行块形式, 1、if …… then分支结构 if condition then或者: if condition then statements end if if condition then statement 单行形式 或者: if condition then statements1 else statements2 end if

将全班分为两个大组,第一组讨论并画出单行形式流程图,第二组讨论并画出多行块形式流程图,加强同学们用流程图描述算法过程的能力 二、引入活动: (1)提出问题:你会用vb编程实现比较两个数的大小吗? 老师演示程序,并描述大概功能 (2)活动要求:同桌两同学为一组一起进行探讨共同完成。 (3)表扬全班做得最快的3组同学,并展示、点评他们的程序。 (4)在展示及点评过程发现: 1)在本节课中,要求同学们在调试程序过程输入数字,有一部分同学在输入数据的过程中输入了非数字字符导致程序出错,解决方法下一课再讲。 2)有一组学生程序比较123与23两数的大小时,程序运行结果较大的数竟然是23! (5)对于程序运行结果23>123的程序,其代码为: If Text1.Text>Text2.Text Then Text3.Text =Text1.Text Else Text 3.Text = Text2.Text (6)同桌两同学为一组一起进行讨论,什么地方出错了? 为什么程序运行结果不正确,同还们主动地思考起来,并不断尝试修正此错误。其实,“text1.text”所取的并不是“数值”数,而是“字符”数。比较大小时,是以字符串的ASCII码来比较的,因此字符23当然是比字符123大了。当然,“补丁”也十分好“打”,加上VAL函数即可(事先不提此函数,正是此课例的“陷阱”所在)。经历了这个“Bug”的曲折和打“补丁”的遭遇,通过

程序设计语言VB单项选择题及答案

《程序设计语言VB》单选题 1. Visual Basic是一种面向()的程序设计语言。 A. 用户 B. 事件 C. 程序 D. 对象 2.在Visual Basic6.0中规定工程文件的扩展名是()。 A. vbp B. for C. frm D. bas 3. Visual Basic6.0中规定窗体文件的扩展名是()。 A. for B. frm C. vbp D. bas 4.如何使一个标签或按钮控件在运行时不可用()。 A. 把它的Visible属性设置成False B. 把它的Visible属性设置成True C. 把它的Enabled属性设置成False D. 把它的Enabled属性设置成True 5.控件的字体可在属性窗口的()属性中调整? A. Font B. Color C. Text D. Caption 6.若要将某命令按钮设置为默认命令按钮。则应设置为True的属性是()。 A. Value B. Cancel C. Default D. Enabled 7.在VB中,记录对象数据的是()。 A. 方法 B. 事件 C. 属性 D. 语句

8.在文本框上显示文本的属性是()。 A. Value B. Text C. Print D. Enabled 9. InputBox函数返回值的类型为()。 A. 字符串 B. 数值 C. 变体 D. 数值或字符串(视输入的数据而定) 10.设有语句:a = InputBox("请输入数值:","输入示例", "100") 程序执行后,若从键盘上输入数值20并按回车键,则变量a的值是()。 A. 字符串"20" B. 字符串"120" C. 默认值100 D. 数值120 11.下列控件中可用于接受用户输入文本,又可用于显示文本的是()。 A. Label控件 B. TextBox控件 C. Timer控件 D. CommandButton控件 12.语句PRINT "25*4"的输出结果是()。 A. 25*4 B. "100" C. 100 D. 出现错误信息 13.只能用来显示字符信息的控件是()。 A. 文本框 B. 标签框 C. 图片框 D. 图像框 14.下列可作为Visual Basic变量名的是()。 A. A%A B. 4A C. ?xy D. Stemp 15.下列哪个符号不能作为VB中的变量名()。 A. timefly B. pass4

相关文档