VB程序设计基础-第4章-程序的基本结构课件_第1页
VB程序设计基础-第4章-程序的基本结构课件_第2页
VB程序设计基础-第4章-程序的基本结构课件_第3页
VB程序设计基础-第4章-程序的基本结构课件_第4页
VB程序设计基础-第4章-程序的基本结构课件_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

第四章程序的基本结构退出VisualBasic程序包括三种基本结构:顺序结构、选择和分支结构、循环结构。第四章程序的基本结构退出VisualBasic程序包括§4.1顺序结构顺序结构就是指:各个语句按出现的先后顺序依次执行。开始语句语句1语句2结束语句

………§4.1顺序结构顺序结构就是指:各个语句按出现的先后顺对于各种程序设计语言来说,顺序结构的语句主要包含了赋值语句、输入/输出语句等等。一、赋值语句赋值语句由变量名、赋值运算符(=)和某种类型的表达式组成。赋值语句的一般格式为:

变量=表达式赋值语句有两个基本功能:对表达式进行计算和保存表达式的值。赋值语句被执行时:它先对赋值运算符右边的表达式进行计算,然后将结果存储在运算符左边的变量中。对于各种程序设计语言来说,顺序结构的语句主若事先定义了变量的类型,变量的类型和表达式计算结果的值必须相匹配。(一)赋值号两边类型不一致时的处理规则:1.当左右均为数值类型时,右边表达式的精度与左边变量精度不同时,强制转换成左边变量的精度。2.当右边表达式是数字字符串,左边变量是数值类型时,自动转换成数值类型再进行赋值。但如果表达式中有非数字字符或空字符串时,就会出错。若事先定义了变量的类型,变量的类型和表达式计3.当逻辑表达式复制给数值类型时,true转换为-1,false转换为0;反之,当数值类型转换为逻辑类型时,非0转换为true,0转换为false。4.任何非字符类型赋值给字符类型时,均自动转换为字符类型。

3.当逻辑表达式复制给数值类型时,true转换为-1,fal(二)使用赋值语句时的注意事项:1.“=”的左边只能是变量名,不允许出现常量和表达式。Exp(2)=e^236=6^2100=10*10

(二)使用赋值语句时的注意事项:2.不允许在同一个赋值语句中为多个变量复制(c语言允许)x1=x2=0编译器将会把第一个=当成赋值符号,而把第二个=当成比较运算符,把x2=0当作了逻辑表达式。3.不要将赋值运算与代数方程式的概念混淆x=x+12.不允许在同一个赋值语句中为多个变量复制(c语言二、输入框函数——InputBox函数(一)InputBOX函数的格式该函数用于为程序输入数据。其格式为:InputBox([prompt[,title][,default][,xpos,ypox][,helpfile,context]]说明:prompt—输入的提示,长度≤1024个字符。输入时若换行操作,则写出:Chr(13)+Chr(10)title—对话框标题。default—输入的默认值。xpos,ypox—对话框的坐标。helpfile,context—帮助文件的名字,帮助目录号。二、输入框函数——InputBox函数例子:计算两个输入数据的和、差、积DimaAsStringDimbAsStringPrivateSubForm_Click()a=InputBox("输入A的值")b=InputBox("输入B的值")x=Val(a)y=Val(b)PrintPrintPrint"两数之和=";x+yPrint"两数之差=";x-yPrint"两数之积=";x*yEndSub例子:计算两个输入数据的和、差、积(二)应用InputBOX函数的几个问题1.有些参数可以省略,但是参数出现的位置和顺序是固定的,用来分隔参数的逗号不能省略。2.该函数返回的是字符串,若输入数值并参与计算,需用Val()函数将其转换为数值型。(二)应用InputBOX函数的几个问题3.Inputbox一旦被调用,用户必须响应,否则程序一直处于等待状态,无法继续执行。4.一个InputBOX对话框只能输入一个值,通常可结合循环语句进行赋值。5.对话框上的“确定”按钮用于确认;“取消”按钮可使输入内容作废,返回一个空字符串。3.Inputbox一旦被调用,用户必须响应,否则程序一直处三、消息框MsgBox函数和MsgBox语句MsgBox函数用于生成一个对话框,提示用户进行选择操作。(一)函数的格式MsgBox(prompt[,buttons][,title][,helpfile,context])其中:prompt—对话框提示信息。Title—显示对话框标题。helpfile,context—帮助文件的名字,帮助目录号。buttons—是一个整数或符号常量,用于控制对话框显示的按钮,图标的种类和数量。它是由四类数值相加产生。注意:有些参数可以省略,但是参数出现的位置和顺序是固定的,用来分隔参数的逗号不能省略。三、消息框MsgBox函数和MsgBox语句类别符号常量值显示按钮、图标命令按钮VbOKOnly0“确定”,按钮VbOKCancel1“确定”,“取消”按钮VbAbortRetrylgnore2“终止”,“重试”,“忽略”按钮VbYesNoCancel3“是”,“否”,“取消”按钮VbYesNo4“是”,“否”按钮VbRetryCancel5“重试”,“取消”按钮图标VbCritical16CriticalMessage图标VbQuestion32WarningQuery图标VbExclamation48WarningMessage图标Vbinformaation64InformaationMessage图标默认按钮VbDefaultButton10第一个按钮是默认值VbDefaultButton2256第二个按钮是默认值VbDefaultButton3512第三个按钮是默认值VbDefaultButton4768第四个按钮是默认值强制返回VbApplicationModel0程序强制返回,直到用户作出响应。VSystemModel4096系统强制返回,直到用户作出响应。类别符号常量值显示按钮、图标命令按钮VbOKOnly0“确定(二)函数的用途在应用程序中,MsgBox的返回值一般用来作为继续执行程序的依据,根据返回值决定后面的操作。MsgBox函数的返回值返回值操作符号常量1选“确定”按钮VbOk2选“取消”按钮VbCancel3选“终止”按钮VbAbort4选“重试”按钮VbRetry5选“忽略”按钮VbIgnore6选“是”按钮VbYes7选“否”按钮VbNo(二)函数的用途返回值操作符号常量1选“确定”按钮VbOk2例子:用InputBox函数输入一个正整数,若输入正确,计算其平方根。模态窗口——运行时,模态窗口挂起应用程序的其他窗口操作,直到获得应答。例子:用InputBox函数输入一个正整数,若输入正确,计算(三)MsgBox语句1.格式:

MsgBox<prompt>2.作用:只是向用户报告一个简短的信息,没有返回值。(三)MsgBox语句四、格式输出函数Format与Print方法Format通常与Print方法配合使用格式:Format(表达式[,格式控制符])说明:表达式——要格式化输出的数值、日期或字符串类型表达式格式控制符——用来指定输出个实的字符串,格式字符串必须用双引号括起来。功能:按一定格式输出四、格式输出函数Format与Print方法(一)数值格式化

将数值表达式按“格式控制符”制定的格式输出例子:a=123456789b=12/24Printformat(a,”0000000000”)‘前面补0Printformat(a,”###,###,###.00”)‘分节与小数点Printformat(b,”%”)‘输出百分数Printformat(a,”-#########”)‘输出负数Printformat(2345,”####E+5”)‘输出浮点数(一)数值格式化(二)日期和时间格式化

将日期类型的值或数值表达式以日期、时间的序数值按“格式控制符”制定的格式输出。

(三)字符串格式化

将字符串按“格式控制符”制定的格式输出,主要是字母大小写、字符串长度控制等处理。

(二)日期和时间格式化§4.2选择分支结构使用条件语句实现选择结构一、条件语句(if)VisualBasic的选择结构程序是应用单分支,双分支,多分支语句来实现的。§4.2选择分支结构使用条件语句实现选择结构(一)IF……then语句(单分支)语句格式:1、If<表达式>Then<语句体>

2、或:If<表达式>Then语句块EndIf

表达式:一般为关系表达式、逻辑表达式,也可以是算术表达式。表达式的值不为零则视为True,为零则视为False。语句块:一个或多个语句。若用1的简单形式,则语句块只能是单个语句。

功能:判断条件,为真则执行语句体;否则执行后面的语句。

(一)IF……then语句(单分支)语句格式的流程图见下图:False语句条件后续语句前一语句True语句格式的流程图见下图:False语句条件后续语句前一语句T例4.1根据用户在消息框中单击的命令按钮,决定是否结束程序的运行:例4.2:在窗体上设置三个命令按钮,当点击其中一个时,另两个即失效。例4.1根据用户在消息框中单击的命令按钮,决定是否结束程注意:1、简单if语句关键字then之后只能在同一行上有语句。所以不用加EndIf。否则换行之后的语句将被视为在选择结构之后的语句。

2、判断表达式中如果出现“=”,则视为关系运算符,不视为赋值运算。注意:(二)if……then……else语句(双分支)1、语句格式:

If条件Then语句块1Else语句块2EndIf

或If条件Then语句1Else语句22、功能:

判断条件,若条件为真,执行语句块1;条件为假,执行语句块2。即在两个语句块中选择一个。(二)if……then……else语句(双分支)程序流程见下图:True语句1条件语句2后续语句前一语句False

程序流程见下图:True语句1条件语句2后续语句前一语句Fa(三)if……then……elseif语句(多分支结构)1.语句格式

If条件1Then语句块1[Elseif条件2Then语句块2][Elseif条件3Then语句块3]……[Else语句块n]EndIf(三)if……then……elseif语句(多分支结构)12.语句功能如果第k个条件表达式(k=1,2,3……)成立,则执行语句块k(k=1,2,3……),否则执行语句块n。其判断顺序为表达式1、表达式二……2.语句功能表达式1表达式2表达式n-1语句块1语句块2语句块n-1语句块nFalseFalseFalseTrueTrueTrue多分支结构流程图表达式1表达式2表达式n-1语句块1语句块2语句块n-1语句3.注意:(1)无论有多少个分支,程序执行一个分支以后,其余的分支便不再执行(2)关键字ElseIf不能写成ElseIf(3)当多分支中有多个表达式同时满足判断条件时,则只执行第一个与之匹配的语句。3.注意:例4.8根据输入的百分制成绩Score,转换成优、良、中、及格、不及格5个等级,并在窗体上显示出来。等级划分标准如下:优Score>=90

良80<=Score<90等级=中70<=Score<80及格60<=Score<70不及格Score<60例4.8根据输入的百分制成绩Score,转换成优、良、中、(四)If语句的嵌套:注意:1、EndIf总是与最接近的If配对。2、为增强程序的可读性,书写代码时最好采用锯齿形。(四)If语句的嵌套:例4.9从键盘上输入三个整数,分别赋值给变量x1,x2,x3比较它们的大小并重新排列,使得x1>x2>x3。

例4.9从键盘上输入三个整数,分别赋值给变二、情况语句(SelectCase)(多分支结构)VisualBasic语言中,多分支结构也是可以通过情况语z实现的。二、情况语句(SelectCase)(一)情况语句的格式

SelectCase<测试表达式>Case<表达式列表1>语句块1Case<表达式列表2>语句块2……Case<表达式列表n>语句块nCaseElse语句块n+1EndSelect(一)情况语句的格式(二)语句执行的说明1、“测试表达式”——可以是数值型或字符串表达式。程序运行时会判断哪个“表达式”与“测试表达式”相符,若相符则执行“表达式”后面的语句块。可见:这种程序结构与前面的带ElseIf子句的If语句类似(多分支结构)。(二)语句执行的说明表达式1表达式2表达式n-1语句块1语句块2语句块n-1语句块nFalseFalseFalseTrueTrueTrue多分支结构流程图表达式1表达式2表达式n-1语句块1语句块2语句块n-1语句2、<表达式列表>有三种描述形式

第一:可以是单值常量(数值或字符串),当用“,”分割各个常量时,是“或”的逻辑关系Month=InputBox("输入月份数:")SelectCaseMonthCase1,3,5,7,8,10,12x="本月有31天。"Case4,6,9,11x="本月有30天。"Case2x="本月有28天。"CaseElsex="输入数值错误!"EndSelect2、<表达式列表>有三种描述形式第二:条件是一个用TO说明的数值范围

x=InputBox("输入一个分数:")SelectCasexCase0To59.99a="不及格"Case60To69.99a="及格"Case70To79.99a="中"Case80To89.99a="良好"Case90To100a="优秀"EndSelect第二:条件是一个用TO说明的数值范围x=InputBo第三:用IS来指定条件IS代表测试表达式的值SelectCasexCaseIs<60a="不及格"CaseIs<70a="及格"CaseIs<80a="中"CaseIs<90a="良好"CaseIs<=100a="优秀"EndSelect第三:用IS来指定条件SelectCasex(三)SELECTCASE语句应用的两个问题1、在一个CASE子句中可以应用几种“条件”的形式。如:CASE0TO60,61,62,62,64,65TO74,75TO89,IS>892、在各个CASE子句中,指定的数值范围要有明确的界限,否则会造成混乱。3、当多分支中有多个表达式同时满足判断条件时,则只执行第一个与之匹配的语句。(三)SELECTCASE语句应用的两个问题三、条件函数(IIf,Choose)(一)IIf函数该语句是行IF语句的简化形式。1、格式

变量=IIf(条件,值1,值2)三、条件函数(IIf,Choose)2、功能当条件为真,变量的返回值是“值1”;否则,变量的返回值是“值2”。例子:DimxAsSingleDimyAsStringPrivateSubForm_Load()x=InputBox("输入x的值:")y=IIf(x>=60,"及格","不及格")Text1.Text=y2、功能(二)Choose函数1.格式:result=Choose(条件表达式,选项列表)2.说明:计算表达式的值,从1开始,以此选择选项列表中序号相对应的项作为返回值。如表达式值小于1或者大于列表中选项数,则返回null。(二)Choose函数四、无条件跳转语句——尽量在编程中少使用或不使用GOTO语句1.格式:GOTO标号2.说明:标号命名规则和变量一样,但是标号之后要加上“:”冒号。四、无条件跳转语句4.3循环结构1.For循环语句(一般用于循环次数已知)形式

For循环变量=初值to终值[Step步长 语句块Next循环变量

可以用ExitFor终止循环

循环变量<=终值

语句块循环变量加步长T

F

循环变量得初值

循环体例4.8计算1~100的奇数和,程序段如下:Dimi%,s%等价于:Dimi%,s%s=0 s=0:i=1Fori=1To100step2 re:Ifi<=100Thens=s+i s=s+iNexti i=i+2 GoTore EndIf4.3循环结构循环变量<=终值语句>0初值<终值=1时,可省略<0初值>终值=0死循环循环次数要注意:出了循环,循环控制变量值的问题。例程序段:Fori=2To13Step3循环执行次数

Printi,输出i的值分别为:Nexti25811

Print:Print“I=“,i出了循环输出为:I=14在循环体内对循环控制变量可多次引用;但最好不要对其赋值,否则影响原来的循环控制规律。步长>0初值<终值=1时,可省略循环次数要注意:步长例4.9

改变循环控制变量对循环的影响。PrivateSubCommand1_Click()j=0Fori=1To20Step2i=i+3j=j+1Print"第";j;"次循环i=";iNextiPrint"退出循环后i=";iEndSub正常情况:i=1,3,5,7,9,11,13,15,17,19现在:i=4,9,14,19例4.10

输出可打印的ASCII码字符与它的编码值。

例4.9改变循环控制变量对循环的影响。例4.10输出Do~Loop与While先结合2.Do…Loop循环语句(用于控制循环次数未知)形式1:

Do{While|Until}<条件>语句块[ExitDo语句块]Loop形式2:

Do 语句块 [ExitDo 语句块] Loop{While|Until}<条件>条件语句序列条件语句序列TrueFalseFalseTrueDo~Loop与While后结合Do~Loop与While先结合2.Do…Loop循环语句例4.11

我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。分析:解此问题两种方法,可根据公式:26=13*(1+0.008)n

直接利用标准对数函数求得;也可利用循环求得,程序如下:PrivateSubCommand1_Click()x=13n=0DoWhilex<26x=x*1.008n=n+1LoopPrintn,xEndSub例4.11我国有13亿人口,按人口年增长0.8%计算,多例4.12用辗转相除法求两自然数m,n的最大公约数和最小公倍数。分析:求最大公约数的算法思想:(1)对于已知两数m,n,使得m>n;(2)m除以n得余数r;(3)若r=0,则n为最大公约数结束;否则执行(4);(4)m

n,n

r,再重复执行(2)。例求m=14,n=6的最大公约数.

Ifm<nThent=m:m=n:n=tr=mmodnDoWhile(r<>0)m=nn=rr=mmodnLoopPrint"最大公约数=",nmnr1462

620辗转相减法m=m-nm>nn=n-mn>m

m、n为公约数m=nDoWhilem<>nmn

Ifm>nThen146m=m–n86Else26n=n–m24EndIf22Loop例4.12用辗转相除法求两自然数m,n的最大公约数和最小公倍3、While…Wend循环:(类似于DoWhile…Loop)格式为:While<表达式><语句序列>Wend执行过程:先计算表达式的值,如果表达式的值为True,则执行循环体,遇到Wend语句后,返回到While语句并再对条件进行测试,如为True,则继续执行循环体,如为False,则退出循环体。3、While…Wend循环:(类似于DoWhile…4.循环的嵌套

一个循环体内又包含了一个完整的循环结构称为循环的嵌套.

例4.13打印九九乘法表.

Fori=1To9Forj=1To9se=i&“×"&j&"="&i*jPicture1.PrintTab((j-1)*9+1);se;NextjPicture1.PrintNexti思考:打印上三角或下三角程序如何改动?上三角Forj=iTo9下三角Forj=1Toi4.循环的嵌套思考:打印上三角或下三角程序如何改动?上三角

Forii=1To10Forjj=1To20… Nextii Nextjj

Forii=1To10Forii=1To20… Nextii Nextii

Forii=1To10Forjj=1To20

温馨提示

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

评论

0/150

提交评论