首页 《选择结构程序》

《选择结构程序》

举报
开通vip

《选择结构程序》第4章选择结构设计程序流程有三种最基本的控制结构,即顺序结构、选择结构和循环结构。在一个过程中,程序通常是按照由上而下的顺序来执行各个语句的,直到整个过程结束。引入选择结构和循环结构,可以改变程序执行的流程。选择程序结构用于判断给定的条件,根据判断的结果来控制程序的流程本章主要内容条件表达式关系表达式/逻辑表达式条件语句If...Then/If...Then...Else条件语句的嵌套多分支语句selectcase选择性控件单选按钮/复选框列表框/组合框计时器控件程序举例关系运算符符号:<小于  >大于...

《选择结构程序》
第4章选择结构设计程序流程有三种最基本的控制结构,即顺序结构、选择结构和循环结构。在一个过程中,程序通常是按照由上而下的顺序来执行各个语句的,直到整个过程结束。引入选择结构和循环结构,可以改变程序执行的流程。选择程序结构用于判断给定的条件,根据判断的结果来控制程序的流程本章主要内容条件 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 达式关系表达式/逻辑表达式条件语句If...Then/If...Then...Else条件语句的嵌套多分支语句selectcase选择性控件单选按钮/复选框列表框/组合框计时器控件程序举例关系运算符符号:<小于  >大于 >=大于或等于     <=小于或等于 =等于  <>不等于  适用的类型和结果类型: 关系运算符适用于数值型、字符型、日期型和逻辑型数据,结果只能为逻辑型(真值True和假值False) 运算符两侧必须是同类型的量或表达式若不是,系统会自动进行强制类型转换“5”>40>(1>0)若判断的结论是成立,则结果为逻辑真值(True),否则为逻辑假值(False)True的值等于-1,False的值等于0关系运算符运算符名称示例说明<小于“3”<4值为:True,强制转换为数值型<=小于或等于3<=4值为:True>大于0>(1>0)值为:True,强制转换为数值型>=大于或等于“aa”>=“ab”值为:False=等于1=True值为:False,强制转换为数值型<>不等于1<>1值为:False关系表达式运算次序:先分别求出运算符两侧表达式的值,     然后再将二者进行比较其中:数值型数据按照数值大小比较2+3>63>=05<>2^3   字符型数据按照字符的ASCII码值大小比较“1”>“2”“a”<“b”“A”>“a”   日期型数据按照前后顺序比较#01/01/2003#>#12/31/2002#   关系表达式的格式:<表达式1><关系运算符><表达式2>[<关系运算符><表达式3>…]关系表达式练习数值型数据按照数值大小比较字符型数据按照字符的ASCII码值大小比较日期型数据按照前后顺序比较   ①?2/3>3/4②?“a”>“b”③?3<=5④?True=-1⑤?#01/12/91#<=#02/01/91#?“abc”<=“abb”?“ab”<=“我们”?“123”>“99”?“你们”>“我们”①False②False③True④True⑤True⑥False⑦True⑧False⑨False布尔运算符符号:NOT (逻辑非)AND (逻辑与)即:并且,要同时成立OR (逻辑或)即:或者,只要有一个成立适用的类型和结果类型:只适用于逻辑型数据,运算结果是逻辑值规则:非运算的规则是:直接求反即可与运算的规则是:只有二者全为真时结果为真,否则为假或运算的规则是:只有二者全为假时结果为假,否则为真逻辑值A逻辑值BNOTAAANDBAORBTTFTTTFFFTFTTFTFFTFF布尔表达式练习?“a”>“b”AND1>2False?“a”>“b”OR1<2True?NOT2*5<>11False?2^3>3AND5>10False表示一个数是偶数xMod2=0或int(x/2)=x/2表示一个数X能被3或5或7整除 xMod3=0ORxMod5=0ORxMod7=0表示身高不在1.65米以上或不是女生 身高<1.65 OR 性别<>“女” NOT(身高>=1.65 AND 性别=“女”)布尔表达式练习?-3<-2<-1Falsea=3:b=4:c=5?a=b=cFalse表示一个数x是能被3整除的奇数 xMod3=0andxMod2<>0xMod2=1andxMod2<>0表示一个数x∈[2,5]x>=2andx<=5表示一个数x不在[2,5]区间内 x<2orx>5运算符的优先顺序算术运算符字符串运算符:&关系运算符:=、<>、<、>、<=、>=布尔运算符:NotAndOr优先级依次降低运算符的优先顺序练习设变量x=4,y=-1,a=7.5,b=-6.2,求表达式x+y>a+bAndNoty<b的值Truey表示年号,用一个表达式表示该年是否是闰年(yMod4=0ANDyMod100<>0)OR(yMod400=0ANDyMod100=0)(yMod4=0ANDyMod100<>0)ORyMod400=0判断闰年的科学依据地球公转一周的时间为:365天5小时48分56秒每经过4年,剩余的时间为:5小时48分56秒×4=23小时15分44秒则每4年都要多加24小时-23小时15分44秒=44分16秒每经过100年,就会多加44分16秒×25=18小时26分40秒比较接近一天,所以每到100年,就将这多加的近似一天的时间减去,即停止追加一天而实际上又少加了24小时-18小时26分40秒=5小时33分20秒每经过400年,就会少加4×5小时33分20秒≈24小时所以每过400年,就应该再补加一天故:每4年闰年出现一次;每400年,闰年再出现一次   其它的整100年,闰年停止出现一次选择控制结构选择控制结构又称分支结构它体现了程序运行过程中的自我判断能力程序可以根据当前执行的某个条件,进行比较、判断,并依据判断的结果(成立与否)来决定下一步做什么,不做什么(在两条或多条程序路径中选择一条来执行,即只执行程序中的一部分语句)可见,在此结构的程序运行过程中,有些语句会执行一次,有些语句在此次程序运行过程中没有机会执行。即:“无论分支多寡,必选其一;纵然分支众多,仅选其一”VB中的选择语句有: 双分支语句 多分支语句(SelectCase)单行(IF-THEN-ELSE)块结构(IF-THEN-ELSE-ENDIF)选择结构(IF-THEN)语句格式:IF<条件> THEN<语句序列>条件N语句序列下一语句Y执行过程:判断给定的条件如果成立(其值为True),执行所给语句序列,然后执行下一条语句否则(其值为False),跳过所给语句序列,直接执行下一条语句示例:输入一个数,如果是正数,就输出x=Val(Text1.text)Ifx>0ThenLabel1.Caption=x问题:如果不是正数,应该显示“不是正数”语句格式:IF<条件>THEN[<语句序列1>][ELSE<语句序列2>]执行过程:判断给定的条件如果成立(其值为True),执行所给语句序列1,然后执行下一条语句否则(其值为False),执行所给语句序列2,然后执行下一条语句选择结构(IF-THEN-ELSE)条件命令序列1命令序列2下一语句NY(IF-THEN-ELSE)举例例二:根据用户输入的一个成绩,判断是否及格DimxAsSingleX=Val(InputBox("请输入一个成绩:","输入",0))IFX>=60THENLabel1.Caption=“及格”ElseLabel1.Caption=“不及格”使用IIF函数,也可以实现相应的判断格式:IIF(条件,条件为真时的值,条件为假时的值)  例一:输入一个数,如果是正数,就输出;否则显示非正数DimxAsSinglex=Val(Text1.text)Ifx>0ThenLabel1.Caption=xElseLabel1.Caption=“非正数"IIF函数的使用DimxAsSinglex=Val(Text1.text)Ifx>0ThenLabel1.Caption=xElseLabel1.Caption=“非正数”Label1.Caption=IIf(x>0,x,“非正数”)DimxAsSingleX=Val(InputBox("请输入一个成绩:","输入",0))IFX>=60THENLabel1.Caption=“及格”ElseLabel1.Caption=“不及格”Label1.Caption=IIf(x>=60,“及格”,“不及格”)语句格式:IF<条件>THEN [<语句列1>][ELSE<语句列2>]ENDIF执行过程:判断给定的条件如果成立(其值为True),执行所给y语句序列1,然后执行下一条语句否则(其值为False),执行所给语句序列2,然后执行下一条语句块结构(IF-THEN-ELSE-ENDIF)条件命令序列1命令序列2下一语句NY(IF-THEN-ELSE-ENDIF)举例示例:根据用户输入的一个成绩,判断是否及格DimxAsSinglex=Val(InputBox("请输入一个成绩:","输入",0))Ifx>=60ThenLabel1.Caption="及格"ElseLabel1.Caption="不及格"EndIf(IF-THEN-ELSE-ENDIF)举例示例:输入ABC的值,判断能否构成三角形,如果能,计算三角形的面积DimaAsSingle,bAsSingle,cAsSinglea=Val(Text1.Text):b=Val(Text2.Text):c=Val(Text3.Text)s=(a+b+c)/2Ifa+b>cAndc>0Anda+c>bAndb>0Andb+c>aAnda>0Thenarea=Sqr(s*(s-a)*(s-b)*(s-c))Label1.Caption="能构成三角形,"&"三角形面积为:"&Str(area)ElseLabel1.Caption="不能构成三角形"EndIf语句格式:IF<条件1>THEN [<语句列1>]ELSEIF<条件2>THEN [<语句列2>]ELSE[<语句列3>]ENDIFENDIF说明:如果在If语句的语句列1或语句列2中又有一个完整的If语句,则称为If语句的嵌套IF语句的嵌套条件1语句列1语句列2下一语句NY条件2YN语句列3嵌套IF举例用户输入一个数,如果是正数,打印是个正数;如果是0,打印是个零;如果是负数,打印是负数X>0是个正数是零下一语句X=0YN是个负数YNDimxAsSinglex=Val(Text1.Text)Ifx>0ThenLabel1.Caption="正数"ElseIfx=0ThenLabel1.Caption=“零”ElseLabel1.Caption="负数"EndIfEndIf嵌套IF举例用户输入一元二次方程的系数,用户判断解的情况△>0有两个不相同的实根有两个相同的实根下一语句△=0YN没有实数解YNa=Val(Text1.Text):b=Val(Text2.Text):c=Val(Text3.Text)d=b^2-4*a*cIfd>0ThenLabel1.Caption=“不同实根"ElseIfd=0ThenLabel1.Caption=“相同实根"ElseLabel1.Caption="没有实数解"EndIfEndIf嵌套IF举例用户输入一个成绩,若在90到100之间,打印优秀;若在80到89之间,打印良好;若在70到79之间,打印一般;若在60到69之间,打印及格;若在60以下,打印不及格;其它情况,打印输入有误DimxAsSinglex=Val(Text1.Text)Ifx>100ThenLabel1.Caption="输入有误!"ElseIfx>=90ThenLabel1.Caption="优秀!"ElseIfx>=80ThenLabel1.Caption="良好!"ElseIfx>=70ThenLabel1.Caption="一般!"ElseIfx>=60ThenLabel1.Caption="及格!"ElseIfx>=0ThenLabel1.Caption="不及格!"ElseLabel1.Caption="输入有误!"EndIfEndIfEndIfEndIfEndIfEndIf语句格式:IF<条件1>THEN [<语句列1>]ELSEIF<条件2>THEN<语句列2>]……[ELSE[其他语句列]]ENDIF说明:IF语句的嵌套格式ELSEIF条件1条件n语句列1语句列n其他语句列下一语句…YYNN嵌套ELSEIF举例用户输入一个数,如果是正数,打印是个正数;如果是0,打印是个零;如果是负数,打印是负数DimxAsSinglex=Val(Text1.Text)Ifx>0ThenLabel1.Caption="正数"ElseIfx=0ThenLabel1.Caption="零"ElseLabel1.Caption="负数"EndIfDimxAsSinglex=Val(Text1.Text)Ifx>0ThenLabel1.Caption="正数"ElseIfx=0ThenLabel1.Caption="零"ElseLabel1.Caption="负数"EndIfEndIf嵌套ELSEIF举例DimxAsSinglex=Val(Text1.Text)Ifx>100ThenLabel1.Caption="输入有误!"ElseIfx>=90ThenLabel1.Caption="优秀!"ElseIfx>=80ThenLabel1.Caption="良好!"ElseIfx>=70ThenLabel1.Caption="一般!"ElseIfx>=60ThenLabel1.Caption="及格!"ElseIfx>=0ThenLabel1.Caption="不及格!"ElseLabel1.Caption="输入有误!"EndIf用户输入一个成绩,若在90到100之间,打印优秀;若在80到89之间,打印良好;若在70到79之间,打印一般;若在60到69之间,打印及格;若在60以下,打印不及格;其它情况,打印输入有误多分支语句 当判断条件较多时,如果采用IF语句来设计程序,会出现各方面的麻烦;而多分支语句可以利用格式中的多个条件来判断与执行,效率较高语句格式:SELECTCASE<测试条件>[CASE<表达式1>  [<语句列1>]][CASE<表达式2>  [<语句列2>]]…[CASEElSE[<其他语句列>]]ENDSELECT说明:  P83条件1条件n语句列1语句列n其他语句列下一语句…YYNN多分支语句举例用户输入一个数,如果是正数,打印是个正数;如果是0,打印是个零;如果是负数,打印是负数DimxAsSinglex=Val(Text1.Text)Ifx>0ThenLabel1.Caption="正数"ElseIfx=0ThenLabel1.Caption="零"ElseLabel1.Caption="负数"EndIfEndIfDimxAsSinglex=Val(Text1.Text)SelectCasexCaseIs>0Label1.Caption="正数"CaseIs=0’Case0Label1.Caption="零"CaseIs<0Label1.Caption="负数"EndSelect多分支语句举例用户输入一个成绩,若在90到100之间,打印优秀;若在80到89之间,打印良好;若在70到79之间,打印一般;若在60到69之间,打印及格;若在60以下,打印不及格;其它情况,打印输入有误SelectCasexCaseIs<0Label1.Caption="输入有误"CaseIs>100Label1.Caption="输入有误"CaseIs>=90Label1.Caption="优秀"CaseIs>=80Label1.Caption="良好"CaseIs>=70Label1.Caption="一般"CaseIs>=60Label1.Caption="及格"CaseElseLabel1.Caption="不及格"EndSelect多分支语句举例用户输入一个年份和月份,由程序输入该年该月有多少天!DimdAsIntegery=Val(Text1.Text):m=Val(Text2.Text)SelectCasemCase1,3,5,7,8,10,12d=31Case4,6,9,11d=30Case2IfyMod4=0AndyMod100<>0OryMod400=0Thend=29Elsed=28EndIfEndSelectP=Str(y)&"年"&Str(m)&"月有"&Str(d)&"天!"Label1.Caption=p滚动条有些控件不能自动支持滚动的功能,VB提供的滚动条有水平滚动条(HScrollBar)和垂直滚动条(VScrollBar)两种常用属性有(均为整型数):Value滚动条的当前值,即滑块的位置LargeChange单击滚动条的前后部位时,Value的改变量SmallChange单击滚动条的两端箭头时,Value的改变量MaxValue的最大值MinValue的最小值常用事件:Scroll当拖动滚动条滑块时触发的事件Change当滚动条滑块位置改变时触发的事件滚动条程序示例PrivateSubHScroll1_Scroll()Text1.FontSize=HScroll1.ValueEndSub若改为滚动条的Change事件,效果会有什么变化?使用计时器控件计时器(Timer)控件可以在程序运行中以规定的时间间隔产生一个事件。这对不需要与用户交互的代码的执行非常有用。计时器在设计时显示为一个小时钟图标,而在运行时则看不到,常用来做一些后台处理。如果需要显示时间,则应当使用标签或文本框计时器控件的常用属性Interval属性是决定Timer控件的计时事件调用间隔的毫秒数格式:[对象.]Interval[=毫秒数]说明:当毫秒数为0(缺省)时,Timer控件无效。Enabled属性(True/False)决定Interval的设置是否有效只要Timer控件的Enabled属性被设置为True,而且Interval属性>0,则以Interval属性指定的时间间隔发生一次Timer事件设计一个闪烁字幕PrivateSubForm_Load()FontName="幼圆"FontBold=TrueFontSize=100EndSubPrivateSubTimer1_Timer()Form1.ForeColor=RGB(Int(Rnd*256),Int(Rnd*256),Int(Rnd*256))Form1.CurrentX=Form1.Width/10’输出的水平坐标Form1.CurrentY=Form1.Height/16’输出的垂直坐标Print"闪烁字幕"EndSub每隔0.5秒闪烁一次,程序运行前,Timer的Enabled和Interval属性的值应为多少?设计一个计时器每隔一秒钟,文本框中的数字增一,单击“暂停”按钮就停止PrivateSubCommand1_Click()Timer1.Enabled=TrueEndSubPrivateSubCommand2_Click()Timer1.Enabled=FalseEndSubPrivateSubTimer1_Timer()Text1.Text=Text1.Text+1EndSub程序运行前,Timer的Enabled和Interval属性的值应为多少?框架控件Frame框架控件是一个左上方有标题文字的方框。它是一个容器控件。可以对窗体上的控件进行视觉上的分组。在框架内可以直接绘制控件,也可以将已有控件粘贴到框架内框架可以提供总体的激活和屏蔽常用属性有:Name框架的名称Caption框架上显示的标题文字Visual运行后是否可见Enabled框架和框架内的所有控件是否屏蔽提供简单选择的控件选项按钮(OptionButton)又称单选按钮,选项按钮总是作为一个组的组成部分工作的。选项按钮组是一组互排斥的选项按钮;选择一个选项按钮会立即清除该组中的其它按钮;每次只能选一个选项而且必须选择一个选项(问题:在窗体上的是一组?在一个框架内的是一组?)常用属性:Caption属性:单选按钮旁边的标题文字value属性:表示该按钮是否被选中。选中为True,否则为FalseAlignment属性:单选按钮标题的对齐方式Style属性:表示控件的外观( 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 格式或图形方式)可以将选项按钮设计成图形按钮的形式,将Style改为1-Graphical(图形方式),再依次修改其Caption属性单选按钮使用最多的是click事件单选按钮程序示例PrivateSubOption1_Click()Text1.FontName="宋体"EndSubPrivateSubOption2_Click()Text1.FontName="幼圆"EndSubPrivateSubOption3_Click()Text1.FontName="楷体_GB2312"EndSub提供简单选择的控件复选框(CheckBox)控件:根据需要进行多项选择可以只选一个,也可全选,还可全不选当某一个复选框被选中时,复选框中出现一个“√”常用属性:Caption属性:复选框旁边的标题文字value属性:表示该按钮是否被选中。0-默认设置,未选中状态 1-选中状态 2-禁止状态,不可用Alignment属性:复选框旁边的标题文字的对齐方式Style属性:表示控件的外观(标准格式或图形方式)复选框按钮使用最多的是click事件,在事件中需要对其Value属性值做判断,从而根据用户的选中状态决定程序如何执行复选按钮程序示例PrivateSubCheck1_Click()IfCheck1.Value=1Then'判复选框1是否选中Text1.FontName="楷体_GB2312"ElseText1.FontName="宋体"EndIfEndSubPrivateSubCheck2_Click()IfCheck2.Value=1Then'判复选框2是否选中Text1.FontItalic=TrueElseText1.FontItalic=FalseEndIfEndSubPrivateSubCheck3_Click()IfCheck3.Value=1ThenText1.FontSize=25ElseText1.FontSize=9EndIfEndSubPrivateSubCheck4_Click()IfCheck4.Value=1ThenText1.ForeColor=RGB(255,0,0)ElseText1.ForeColor=RGB(0,0,0)EndIfEndSub
本文档为【《选择结构程序》】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
xrp27580
暂无简介~
格式:ppt
大小:324KB
软件:PowerPoint
页数:0
分类:
上传时间:2021-10-11
浏览量:2