广州大学第7章 Visual Basic控制结构_第1页
广州大学第7章 Visual Basic控制结构_第2页
广州大学第7章 Visual Basic控制结构_第3页
广州大学第7章 Visual Basic控制结构_第4页
广州大学第7章 Visual Basic控制结构_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章VisualBasic控制结构本章主要任务:

(1)了解结构化程序设计方法;(2)掌握选择控制结构程序设计;(3)掌握循环结构程序设计。结构化程序设计三种结构:顺序结构选择结构循环结构7.1选择控制结构关系运算:比较两个运算量之间的关系,关系表达式的运算结果为逻辑量。若关系成立,结果为True,若关系不成立,结果为False。运算符含义优先级实例结果<小于所有关系运算优先级相同。低于算术运算的加“+”,减“-”运算,高于逻辑非“Not”运算。15+10<20False<=小于或等于10<=20True>大于10>20False>=大于或等于"This">="That"True=等于"This"="That"False<>不等于"This"<>"That"TrueLike字符串匹配"This"Like"*is"TrueIs对象比较

7.1选择控制结构逻辑运算:逻辑运算符:Not,And,OrXor

等7.1选择控制结构一、单行结构条件语句格式:

If条件

Then

then部分

[Else

else部分]

如果“条件”为True,则执行“then部分”,否则执行“else部分”条件语句1语句2YN7.1选择控制结构一、单行结构条件语句例如:输出x,y两个中值较大的一个值。

IFX>YThenPrintXElsePrintY

条件语句的嵌套:7.1选择控制结构二、块结构条件语句格式:

If条件1

Then

语句块1[ElseIf

条件2

Then

语句块2][ElseIf

条件3

Then

语句块3]

......[Else

语句块n+1]EndIf7.1选择控制结构二、块结构条件语句例:设计一个求解一元二次方程的程序ax2+bx+c=0

公式:

判断:b2-4ac>=0(实根)

b2-4ac<0(虚根)

代码:

disc=b*b-4*a*cIfdisc>=0thenx1=(-b+sqr(disc))/(2*a)‘实根1x2=(-b-sqr(disc))/(2*a)‘实根2Elsex1=-b/(2*a)‘实部

x2=sqr(abs(disc))/(2*a)‘虚部

Endif7.1选择控制结构二、块结构条件语句例:设计一个求解一元二次方程的程序思考:1、如果文本框中无输入,或Text1中输入0,单击“求解”按钮,则不构成一元二次方程,不求解。IfText1.Text=""OrText2.Text=""OrText3.Text=""OrVal(Text1.Text)=0ThenExitSub7.1选择控制结构二、块结构条件语句例:设计一个求解一元二次方程的程序

思考:2、如果限制3个文本框(Text1,Text2,Text3)只能输入数字,不能接受其他字符?

数字0-9的ascii码为48-57PrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii<48OrKeyAscii>57Then

KeyAscii=0EndIfEndSub7.1选择控制结构二、块结构条件语句例:输入一学生成绩,评定其等级。方法是:90~100分为“优秀”,80~89分为“良好”,70~79分为“中等”,60~69分为“及格”,60分以为“不合格”X>=90学生成绩XX>=80X>=70X>=60打印“优秀”打印“良好”打印“中等”打印“及格”打印“不合格”TTTTFFFF7.1选择控制结构二、块结构条件语句x=val(inputbox(“输入学生成绩”))Ifx>=90then Print“优秀”Elseifx>=80then Print“良好”Elseifx>=70then Print“中等”Elseifx>=60then Print“及格”Else Print“不及格”Endif7.2多分支控制结构格式:

SelectCase

测试表达式

Case

表达式表列1

[语句块1][Case表达式表列2[语句块2]]

......[CaseElse[语句块n]]EndSelect7.2多分支控制结构<表达式表列>下面几种形式:例:

一组枚举表达式(用逗号分隔)

2,4,6,8

表达式1To表达式2

60to100

Is关系运算符表达式

Is<607.2多分支控制结构x=val(InputBox(“请输入一个数”))SelectCasex Case1

语句块1 Case2,4

语句块2 Case5To10

语句块3 CaseIs>10

语句块4 CaseElse

语句块5EndSelect7.2多分支控制结构例如:将前例使用selectcase…..语句来实现的程序段如下:SelectCasexCase90to100Print"优秀"Case80to89Print"良好"Case70to79Print"中等"Case60to69Print"及格"CaseElsePrint"不及格"EndSelect7.3For循环控制结构VB中的循环结构

For-Next循环

While-Wend循环

Do-Loop循环按规定次数执行循环体某给定条件满足时循环7.3For循环控制结构格式:

For循环变量=初值to终值[Step步长]

语句块

[ExitFor]

语句块

Next循环变量循环体

>0初值<终值;=1时,可省略<0初值>终值=0死循环步长7.3For循环控制结构循环次数例:ForI=2To13Step3PrintI,NextIPrint“I=“,I

循环执行次数

输出I的值分别为:

25811

出了循环输出为:

I=147.3For循环控制结构“循环变量”增加“步长”是自动完成的。在循环体中允许改变循环变量的值,但会影响到循环的次数。

Fori=2To13Step3 printi, i=i+2NextiPrint“i=“,I

循环执行次数=3

输出I的值分别为:2712

出了循环输出为:i=177.3For循环控制结构例.编程计算:S=1+2+3+…+100DimS,IS=0'累加前变量S为0ForI=1to100S=S+INextIPrint"S=",S7.4当循环控制结构格式:

While条件

[语句块] Wend常用于循环次数难确定,但控制循环的条件或循环结束的条件容易给出的情况。该语句的功能与DoWhile<条件>….Loop实现的循环完全相同Whileb>0c=c+ab=b-1Wend7.5Do循环控制结构形式1:(当型循环)

Do{While|Until}<条件>

语句块

[ExitDo]

语句块

LoopDoWhile…Loop循环逻辑框图DoUntil…Loop循环逻辑框图7.5Do循环控制结构形式2:(直到循环)

Do

语句块

[ExitDo]

语句块

Loop{While|Until}<条件>图7.5Do…LoopWhile循环逻辑框图图7.6Do…LoopUntil循环逻辑框图7.5Do循环控制结构说明:(1)当使用While<条件>构成循环时,当条件为“真”,则反复执行循环体,当条件为“假”,则退出循环。(2)当使用Until<条件>构成循环时,当条件为“假”,则反复执行循环体,直到条件成立,即为“真”时,则退出循环。(3)在循环体内一般应有一个专门用来改变条件表达式中变量的语句,以使随着循环的执行,条件趋于不成立(或成立),最后达到退出循环。(4)语句ExitDo的作用是退出它所在的循环结构,它只能用在DO/Loop结构中,并且常常是同选择结构一起出现在循环结构中,用来实现当满足某一条件时提前退出循环。7.5Do循环控制结构例:用do…Loop语句改写前面的例题

编程计算:S=1+2+3+…+100DimS%,I%S=0'累加前变量S为0I=1'循环变量赋初值DoWhileI<=100S=S+II=I+1LoopPrint"S=",S

DimS%,I%S=0'累加前变量S为0I=1'循环变量赋初值DoS=S+II=I+1LoopWhileI<=100

Print"S=",S

7.6多重循环如果在一个循环内完整地包含另一个循环结构,则称为多重循环,或循环嵌套,嵌套的层数可以根据需要而定,嵌套一层称为二重循环,嵌套二层称为三重循环。上面介绍的几种循环控制结构可以相互嵌套,下面是几种常见的二重嵌套形式:7.6多重循环(1)ForI=….…..

ForJ=….…. NextJ…..

NextI(2)ForI=….…..

DoWhile/Until….…. Loop…..NextI(3)DoWhile….…..

ForJ=….…. NextJ…..Loop(4)DoWhile/Until….…..

DoWhile/Until….…. Loop…..Loop7.6多重循环例如:打印九九乘法表.

Fori=1To9Forj=1To9se=i&"×"&j&"="&i*jPicture1.PrintTab((j-1)*9);se;NextjPicture1.PrintNextITab(n):用来将插入点定位在绝对列号上,这里,n为列号。7.7GoTo

型控制一、GoTo

语句

形式:

GoTo{标号|行号}

作用是无条件地转移到标号或行号指定的那行语句.

标号:任何字符组合,以字母开头,以冒号:结尾。必须放在行的开始位置。行号:任何数值组合。必须放在行的开始位置。(1)GoTo只能在本过程内转移。(2)一个过程中,标号、行号都必须唯一。(3)建议少用。

7.7GoTo

型控制一、GoTo

语句例:用GoTo语句改写前面的例题

编程计算:S=1+2+3+…+100DimsAsInteger,iAsIntegers=0'累加前赋初值i=1‘控制变量PP:‘标号s=s+ii=i+1Ifi<=100ThenGoToPPPrint"s=",s7.7GoTo

型控制二、On-GoTo

语句形式:

On数值表达式GoTo

行号表列|标号表列例如:OnxGoTo30,50,Line3,Line47.7GoTo

型控制二、On-GoTo

错误处理语句形式:

OnErrorGoTo

标号

OnErrorResumeNext循环结构示例在Text1中输入一个大于1的整数,点击“计算”按钮,要求计算出从1到这个整数之间(包括这个整数)的所有: (1)整数的累加 (2)整数的累乘 (3)奇数的累加 (4)偶数的累乘………

并将结果显示在Label1中。综合练习

设计一个由计算机来当小学低年级学生算术老师的VB应用程序,要求给出一系列的两个1~10数的四则运算的算术题,学生输入该题的答案,计算机根据学生的答案判断正确与否,并给出成绩。

综合练习分析:产生1~10操作数,可通过Int(10*Rnd+1)

实现Int(Number)函数:取不大于Number的整数。Rnd函数:产生[0,1)之间随机数。举例:Int(Rnd*100)+1[1,100]的随机整数Int(Rnd*99)+1[1,100)的随机整数,即[1,99]Int(Rnd*90)+10[10,99]的随机整数Int(10*Rnd+1)

[1,10]的随机整数使用Rnd函数前,需先执行Randomize语句,对随机数生成器进行初始化。综合练习载入窗体:

1、随机生成x,y 2、随机生成算术式,计算出相应正确结果。

3、显示算术式点击确定按钮:

4、比较用户输入和正确结果,显示结论,并依照结果正误对“正确”或“错误”数字加1 5、“共答”数字加1 6、计算“正确率”

7、清空输入结果的文本框,设置焦点

8、重新调用窗体载入过程

综合练习实现步骤:以下在form_load()事件中编程1、随机生成x,yRandomizeX=Int(10*Rnd+1)‘1-10的随机数Y=Int(10*Rnd+1)综合练习实现步骤:以下在form_load()事件中编程2、随机生成算术式,计算出相应正确结果SelectCaseInt(4*Rnd)+1‘产生1-4的随机数

Case1S=Str(X)&“+”&Str(Y)&“=“ ’生成”x+y=“字符串

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论