版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VisualBasic程序设计教程2第四章基本的控制结构4.1顺序结构4.2选择结构和控件4.4循环结构4.5其它控制语句和控件4.6综合应用4.7程序调试本章目录3VB具有结构化程序设计的三种程序控制结构,即顺序结构、选择结构、循环结构,是程序设计的基础。本章目录(1)顺序结构
各语句按出现的先后次序执行bABa用传统流程图表示为引言4(2)选择结构传统流程图:条件?AB不成立成立根据条件决定执行的语句5(3)循环结构I、当型循环结构
条件?成立循环体不成立循环体不成立成立条件?II、直到型循环结构
根据条件重复执行语句(称为循环体)64.1顺序结构本章目录4.1.1引例例4.1华氏温度与摄氏温度之间转换。要求:已知华氏温度,转换成摄氏温度;同样,已知摄氏温度,转换成华氏温度;
换显示保留两位小数。华氏温度与摄氏温度之间转换的公式是:
程序运行不管输入摄氏温度C多少,显示结果华氏温度始终不变,原因?计算机始终按照人安排的顺序执行代码Dimf!,c!f=9/5*c+32c=Val(Text1.Text)Text2.Text=Format(f,"0.00")c=Val(Text1.Text)f=9/5*c+327
一般程序设计语言中顺序结构的常用简单语句:
赋值语句和输入/输出语句等。在VB中
赋值语句
输入/输出通过:
文本框控件、标签控件、
InputBox函数、MsgBox函数
Print方法84.1.2赋值语句作用:计算表达式的值,再将此值赋给变量或对象属性。例如:
x!=0.1‘x为单精度变量,获得值0.1Text1.Text=""'清除文本框的内容
Text1.Text="欢迎使用VB.Net"本章目录形式:变量名=表达式对象名.属性名=表达式9赋值语句注意点
“=”符号有两个意义
赋值号、关系运算符等号形式相同,系统会根据所处的位置判断符号意义。赋值号左边只能是变量,不能是常量、常数符 号、表达式。下面均为错误的赋值语句:Now()=x+y'左边是表达式(函数)5=sqr(s)+x+y'
左边是常量x+y=z '
左边是表达式本章目录10常用赋值语句形式
累加sum=sum+x计数
n=n+1本章目录赋值号两边类型不同时的处理
①当两边精度不同时,表达式的值会转换成左边变量的精度。②当表达式是数字字符串,左边是数值类型,自动转换成数值类型再赋值,当表达式有非数字字符或空串,则出错。③逻辑型赋值给数值型时,True转换为-1,False转换为0; 反之当数值型赋值给逻辑型时,非0转换为True,0为False。④任何非字符类型赋值给字符类型,自动转换为字符类型。
11形式:变量=InputBox(提示[,标题][,默认值])4.1.3数据输出和输入本章目录
注意:提示项不能省略。若要多行提示,可在每行行末加回车换行vbCrLf。例4.2利用InputBox输入基本工资和营业额,按营业额的5%提成,计算实发工资并显示。
作用:打开一个对话框,等待用户输入,返回字符 串类型的输入值。1.InputBox函数12作用:打开信息框,等待用户选择一个按钮。
MsgBox函数返回所选按钮的整型值,
变量=MsgBox(提示[,按钮][,标题])
MsgBox过程无返回值,独立的语句:
MsgBox
提示[,按钮][,标题]2.MsgBox函数和过程本章目录按钮:决定信息框按钮的数目、名称及图标。返回结果:返回所按的按钮值此两项均为整型表达式13MsgBox按钮设置本章目录14MsgBox所选按钮返回值
例4.3编一账号和密码输入的检验程序,当输入不正确,如账号为非数字字符,密码不正确等,显示有关信息,再输入。本章目录153.Print方法形式:[对象.]Print[定位函数][输出表达式列表][分隔符]作用:在窗体、图形框输出信息,缺省对象为窗体Write输出后不换行定位函数:Spc(n)
用于在输出时插入n个空格;
Tab(n)
定位于从对象最左端算起的n列。
输出表达式列表:用逗号分隔;缺省输出空行。分隔符:“;”不换行;缺省换行例4.4使用Print方法输出图形。16顺序结构要点掌握计算机按照语句出现的先后顺序执行掌握赋值语句掌握InputBox输入数据掌握MsgBox对话框显示信息和按钮的作用掌握Print方法完成实验二、顺序结构174.2选择结构和控件计算机要处理的问题往往是复杂多变的,仅采用顺序结构是不够的。必须利用选择结构等来解决实际应用中的各种问题。VB中主要通过If条件语句和Select情况语句来实现。它们都是对条件进行判断,根据判断结果,选择执行不同的分支。本章目录例1.1移动到窗体边界判断If(Label1.Top>Height)ThenLabel1.Top=0184.2.1If条件语句1.If…Then语句(单分支结构)
If<表达式>Then
语句块
EndIf或
If<表达式>Then<语句>表达式:算术、关系、逻辑表达式。语句块:可以是一句或多句语句表达式值:按非零为True,零为False进行判断。本章目录作用:当表达式值为True,执行Then后面的语句块 否则不做任何操作。19例:已知两个数x和y,比较它们的大小,使得x大于y。
Ifx<yThent=xx=yy=tEndIf或Ifx<yThent=x:x=y:y=t本章目录注意:简单If形式无EndIf时,只能是一句语句或语句间用冒号分隔,而且必须在一行上书写。20双分支结构2.If…Then…Else语句If表达式
Then
语句块1Else
语句块2EndIf或If
表达式
Then
语句1
Else
语句2
本章目录作用:当表达式的值为True时,执行Then后面 的语句块1,否则执行Else后面的语句块2
21双分支结构例计算分段函数
Ifx<>0Then
双分支
y=sin(x)+sqr(x*x+1)Else结构实现
y=cos(x)-x^3+3*xEndIf本章目录
单分支
y=cos(x)-x^3+3*x结构实现Ifx<>0Theny=sin(x)+sqr(x*x+1)
思考如下单分支结构能实现?Ifx<>0Theny=sin(x)+sqr(x*x+1)
y=cos(x)-x^3+3*x22多分支结构3.If…Then…ElseIf语句
形式:
If表达式1Then
语句块1
ElseIf表达式2Then
语句块2 …
[Else
语句块n+1]
EndIf作用:根据不同的表达式值确定执行哪个语句块本章目录说明:
不管有几个分支,依次判断,当某条件满足,执行相应的语句,其余分支不再执行;若条件都不满足,且有Else子句,则执行该语句块,否则什么也不执行。
ElseIf不能写成
ElseIf23例4.8已知变量ch中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。
多分支结构例本章目录IfUCase(ch)>="A"AndUCase(ch)<="Z"Then
MsgBox(ch+“是字母字符”)
'考虑大小写字母
ElseIfch>="0"Andch<="9"Then
'数字字符
MsgBox(ch+"是数字字符")
Else
'除上述字符以外的字符
MsgBox(ch+"是其他字符")
EndIf244.2.2SelectCase语句SelectCase变量或表达式
Case表达式列表1
语句块1
Case
表达式列表2
语句块2 …[CaseElse
语句块n+1]EndSelect表达式列表与变量或表达式的类型必须相同,是下面4种形式之一:表达式例:"A"用逗号分隔的枚举值2,4,6,8表达式1To表达式260To100Is关系运算符表达式Is<60本章目录25SelectCase语句例例4.10
将例4.8改用SelectCase
语句实现:
本章目录SelectCasech Case"a"To"z","A"To"Z" MsgBox(ch+"是字母字符") Case"0"To"9" MsgBox(ch+"是数字字符") CaseElse MsgBox(ch+"是其他字符")EndSelectSelectCase语句比If…Then…ElseIf语句直观,程序可读性强。但不是所有的多分支结构均可用SelectCase语句代替If…Then…ElseIf语句。26SelectCase语句例例4.11已知坐标点(x,y),判断其落在哪个象限。代码一
Ifx>0Andy>0ThenMsgBox("在第一象限")ElseIfx<0Andy>0ThenMsgBox("在第二象限") ElseIfx<0Andy<0ThenMsgBox("在第三象限") ElseIfx>0Andy<0ThenMsgBox("在第四象限") EndIf
代码二SelectCasex,yCasex>0Andy>0MsgBox(“在第一象限”)Casex<0Andy>0MsgBox(“在第二象限”)Casex<0Andy<0MsgBox(“在第三象限”)Casex>0Andy<0MsgBox(“在第四象限”)EndSelect代码二错误:1.SelectCase后不能出现多个变量;2.Case后不能出现变量及有关运算符。本章目录小结:1.SelectCase语句虽然简洁,但使用有限制2.虽然If语句条件复杂时书写不直观,但是万能的27If语句的嵌套是指If或Else后面的语句块中又包含If语If表达式1Then
If表达式2Then…EndIf
…EndIfIf语句的嵌套例4.12
已知x,y,z三个数,使得x>y>z用一个IF语句和一个嵌套的IF语句实现本章目录Ifx<yThent=x:x=y:y=tIfy<zThent=y:y=z:z=tIfx<yThent=x:x=y:y=tEndIfEndIfX<y?X与y交换y<z?X<y?y与z交换X与y交换TTTFFFx>y>zx≥zz最小F284.2.3条件函数(1)IIf函数
IIf(表达式,表达式为真时的值,表达式为假时的值)IIf函数是If
…
Then
…Else
结构的简洁表示本章目录例如,将x,y中大的数,放入Tmax变量中:
Tmax=IIf(x>y,x,y)
该语句与如下语句等价:
Ifx>yThenTmax=xElseTmax=y294.2.3条件函数(2)Choose函数
Choose(整数表达式,选项列表)根据表达式的值i,返回选项列表中第i个选项。如果整数表达式的值越出选项范围时,返回Null例根据Nop的值,得到+、-、×、÷中的某运算符:
Op=Choose(Nop,"+","-","×","÷")
本章目录DimnopAsInteger,opAsCharRandomize()nop=Int(Rnd()*4+1)op=Choose(nop,"+","-","×","÷")MsgBox("nop="&nop&"op="&op)例4.13根据当前日期,显示今日是星期几。t=Choose(Weekday(Now),“星期日”,“星期一”,“星期二”,“星期三”,“星期四”,“星期五”,“星期六”)MsgBox("今天是:"&Now&t)304.2.5选择控件与分组控件
1.单选按钮()
单选按钮以组的形式出现,允许选择一项。
例单选题测试(1)主要属性
Caption属性按钮上显示的文本
Value属性表示单选按钮的状态:
本章目录OptionButton(2)主要事件
Click
单击后使Value属性为True31一组选项,允许用户选择其中一个或多个例多选题测试(1)主要属性和事件
与单选有相同的属性和事件,Value属性类型和值不同:
0——vbUnchecked未选定
1——vbChecked被选定
2——vbGrayed灰色,部分被选定2.复选框()本章目录323.框架()需要在同一个窗体中建立几组相互独立的单选或复选按钮;具有容器功能。先建立框架控件,然后将各控件放置其中。本章目录特性:移动、复制、删除框架,对控件进行Enabled、Visible属性设置,均作用于框架内控件。
主要属性:Caption框架的标题,无则封闭框线。事件:一般不需要编写事件过程。Frame33例4.14通过单选按钮和分组控件设置文本框的Font属性。实现分析:(1)每个控件都有Click事件:对单选作对应的字体或字号设置;对于复选框因字型是逻辑类型,进行取反设置。(2)也可以加以个Command1按钮,均在该事件内判断和设置。例4.15选课
34选择结构要点掌握If语句多种分支形式的正确书写与使用掌握SelectCase语句的正确书写与使用掌握单选按钮、复选框和框架控件的使用完成实验三、选择结构
354.3循环结构计算机最擅长的功能之一:
按规定的条件,重复执行某些操作。4.3.1引例—求π的近似值祖冲之用了15年算出π值到小数点后面7位;第一台计算机计算到2000多位1999年东京大学2061.5843亿本章目录例4.16验证祖冲之有效位7位的计算求π/4=1-1/3+1/5-1/7+1/9…关键找规律写通项36VB中提供了主要的两类循环语句:
for语句(一般已知循环次数);
Do语句(一般未知循环次数)。374.3.2For循环语句For循环语句用于控制循环次数预知的循环结构。For循环变量=初值To终值
[Step步长]
语句块
[ExitFor]
语句块Next循环变量循环变量必须为数值型。
>0初值<终值=1时,可省略<0初值>终值=0死循环步长例4.17计算1~100和
本章目录Dimi%,sum%Fori=1To100Step1sum=sum+iNextiPrintsum循环次数38Sum=0fori=1To100Step2sum=sum+iNextiMsgBox(sum)
Sum=0i=1Re:Ifi<=100Thensum=sum+Ii=i+2GoToReEndIfMsgBox(sum)计算1~100的奇数和
分别用for、If语句实现循环,理解for语句执行过程39for循环语句循环流程:(1)循环变量被赋初值,它仅被赋值一次。(2)判断循环变量是否在终值内?如果是,执行循环体;如果否,结束循环,执行Next的下一语句。(3)循环变量加步长,转 (2),继续循环本章目录40例4.18将可打印的ASCII码制成表格输出实现思路:
1.循环的初值、终值;
2.字符和码值关系;
3.控制每项占用位数(Tab
函数);
4.控制每行输出个数.
8*i+2414.3.3Do…Loop循环语句形式1:Do{While|Until}<条件>
语句块
[ExitDo
语句块]Loop形式2:Do
语句块
[ExitDo
语句块]Loop{While|Until}<条件>本章目录形式1为先判断后执行,有可能一次也不执行;形式2为先执行后判断,至少执行一次。42Do…Loop流程本章目录43
直接利用标准函数问题:1)但求得的年数不为整数
2)得不到实际人数利用循环求得
上述两个问题解决了循环例题例4.19我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。解此问题两种方法:
本章目录44循环例题例4.20用辗转相除法求两自然数的最大公约数。求最大公约数的算法思想:例m=14,n=6
的最大公约数Ifm<nThent=m:m=n:n=tr=mmodnDoWhile(r<>0)m=nn=rr=mmodnLoopMsgBox“最大公约数=”&n(1)对于两数m,n,使得m>n(2)m除以n得余数r(3)若r≠0,则:
mçn,nçr,再重复执行(2)
否则n为最大公约数,结束本章目录辗转相减法
m=m-nm>nn=n-mn>m
m、n为公约数m=nDoWhilem<>nmn
Ifm>nThen146m=m–n86Else26n=n–m24EndIf22Loop454.3.4循环的嵌套
在一个循环体内又包含了一个完整的循环结构称为循环的嵌套。循环嵌套对for语句和Do…Loop语句均适用。例4.21
打印九九乘法表本章目录思考:打印上三角或下三角程序如何改动?464.4其他控制语句和控件4.4.1GoTo
语句
无条件地转移到标号或行号指定的那行语句。
GoTo{标号|行号}本章目录代码说明注意:标号符合标识符规定;
行号是一个数字序列;转向的入口处标号或行号应有冒号。47例4.22判断输入的数是否为素数定义:素数就是除1和本身以外,不能被其他任何整数整除的数。算法:m依次用i=2~m-1去除,只要有一个数能整除m,m就不是素数;否则m是素数。思考:要求一定范围内,如100~200的素数,程序如何修改?
本章目录注意:Goto不符合结构化程序设计的规定改进:增加逻辑型变量Tag,用以判断是否被整除过例4.23484.4.2Exit和End语句1.Exit语句
VB中有多种形式的Exit语句,用于退出某种控制结构的执行。Exit的形式如下:
Exitfor、ExitDo本章目录492.End语句
独立的End语句用于结束一个程序的运行,它可以放在任何事件过程中。与其他控制结构关键字配套的End语句
用于结束一个控制语句或过程或块,相当于语句括号。End语句的多种形式如下:
EndIf、EndSelect、EndWith、
EndType、EndFunction、EndSub本章目录504.4.3滚动条、进度条和定时器1.滚动条(ScrollBar)
用于数据输入工具,也可显示数据。滚动条有水平(H)和垂直(V)两种。本章目录Value
滑块当前位置的值(缺省为0)Min
滑块最小位置值(缺省为0)Max
滑块最大位置值(缺省为32767)SmallChange单击滚动条两端的箭头时,Value属性(滑 块位置)改变值LargeChange单击滚动条的空白区域时,Value属性改变值51主要事件Scroll
当拖动滑块时触发
Chang
改变Value属性时触发例4.24设计一个调色板应用程序。设计思想:三个滚动代表三种基本颜色的输入工具本章目录注意:任意一个颜色改变均为影响合成的颜色,因此用共享事件来简化编程。522.进度条(ProgressBar)
用来指示事务处理的进度,显示的填充数主要属性:
Max、Min、Value(执行阶段被填充的数目)
编程使用方法:确定Min、Max值。例如果正在下载文件,Max
值为文件的字节数。变化的Value值,使得进度条变化。例在该文件下载过程中,Value的值为当前已下载的字节数。例4.25设计带有进度条的倒计时程序
533.定时器(Timer)
定时器以一定的时间间隔产生Timer事件属性Enabled
为False时定时器不产生Timer事件Interval
触发Timer事件的时间间隔,单位ms
事件定时器控件只有一个Timer
产生Tick事件条件:Enabled=True
Interval>0例4.26用一个定时器控制蝴蝶在窗体内的飞舞
本章目录思考:如何控制飞的速度、如何控制飞的每次距离?如果飞的过程有三个状态又如何编程?54循环结构要点掌握For循环语句的正确书写与使用掌握Do循环语句的正确书写与使用掌握滚动条、进度条
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国交通移动支付行业市场深度分析与发展前景预测研究报告
- 2024-2030年中国二硼化锆(ZrB2)粉体市场深度调研与未来前景预测研究报告
- 2024-2030年中国不饱和聚酯树脂行业发展状况及产销需求预测报告
- 2024-2030年中国X射线探伤仪行业市场发展趋势与前景展望战略分析报告
- 2024-2030年中国IDC机柜行业盈利态势与投资前景预测报告
- 2024-2030年中国5G基础设施行业市场发展趋势与前景展望战略分析报告
- 2024-2030年中国2-溴乙醇行业未来趋势及产销需求预测报告
- 2024-2030年一次性穿刺活检针行业营销推广模式与投资价值可行性研究报告
- 2024年物理教师个人述职报告范例(四篇)
- 教师聘用劳动合同(7篇)
- 《光伏发电工程工程量清单计价规范》
- 安检异常行为识别培训课件
- 业务转介绍合作协议书
- 统编版八年级下册语文第四单元教学设计
- 新生儿期保健及护理课件
- 铁路职工培训教材铁路劳动安全(年版全篇)课件
- 2016-2023年大庆医学高等专科学校高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 建筑一体化光伏(BIPV)应用
- 铁路新工入职培训课件
- 护理查房-颅内感染
- 申报研究院的可行性方案
评论
0/150
提交评论