版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 Visual Basic控制结构 5.1 算法及其描述5.2 选择结构5.3 循环结构5.4 常用算法与数据结构(一)5.1 5.1 算法及其描述算法及其描述5.1.1 5.1.1 算法的概念算法的概念所谓算法是解决问题的有序步骤。1.算法的特征算法的特征(1) 有穷性。(2) 确定性。(3) 有效性。(4) 零个或多个输入。(5) 至少有一个输出。2.算法的描述算法的描述(1)自然语言 文字冗长、表达不确切、二义性。(2)流程图 图形方法,直观、形象、易于理解,应用广泛。(3)N-S图 是流程图的发展,去掉了流程线,算法都表示在一个矩形框内。1.顺序结构顺序结构 在顺序结构中,算法的
2、每一步操作都是按从上到下的线性次序执行的。2.选择结构选择结构 又称分支结构,根据给出的条件,选择执行一个分支。因此,在选择结构中,必然包含了条件判断。3.循环结构循环结构 又称重复执行结构。根据给出的条件,判断是否重复执行某一组操作。5.1.2 35.1.2 3种基本控制结构种基本控制结构基本的循环结构有两种:当循环和直到循环。(1)当循环:首先判断条件是否成立,若成立,执行循环体再判断条件,决定是否继续进行循环;若不成立,跳过这组操作,执行此循环结构后面的操作。(2)直到循环:首先执行循环体,然后判断条件是否成立,若成立,则继续进行循环操作;若不成立,执行此循环结构后面的操作。 在程序设计
3、中,算法是由一系列的控制结构构成,每一个控制结构又由若干个语句组成。语句是程序中有确切含义的基本单位,也是构成程序的基本成分,程序功能是由一条条语句的执行来实现的,可把语句视为命令。5.2 5.2 选择结构选择结构5.2.1 5.2.1 单行结构条件语句单行结构条件语句格式:If条件条件Then语句语句1Else语句语句2 如果“条件”成立(其值为True或为非0值),则执行“语句1”;否则,执行“语句2” 当“Else语句2”省略时,If语句简化为: If条件条件Then语句语句5.2.2 5.2.2 块结构条件语句块结构条件语句格式:If条件条件1 Then语句块语句块1ElseIf 条件
4、条件2 Then语句块语句块2ElseIf 条件条件3 Then语句块语句块3Else语句块语句块nEnd If 条件语句中的“条件”不但可以是逻辑表达式和关系表达式,还可以是数值表达式 “语句块”中的语句不能与Then在同一行上,否则Visual Basic认为这是一个单行结构的条件语句 块结构条件语句必须以End If结束,而单行结构的条件语句不需要End If 当省略ElseIf子句和Else子句时,块结构条件语句简化为: If条件条件 Then 语句块语句块 End If 5.2.3 5.2.3 多分支结构多分支结构格式:Select Case测试表达式测试表达式 Case表达式列表表
5、达式列表1 语句块语句块1 Case表达式列表表达式列表2 语句块语句块2 Case Else 语句块语句块nEnd Select 情况语句以Select Case开头,以End Select结束 功能是根据“测试表达式”的值,从多个语句块中选择符合条件的一个语句块执行例例5.65.6 商店售货,按购买货物的多少分别给予不同优惠折扣如下:编程计算购物款数。购物不足250元,无折扣,购物满250元、不足500元,减价5%,计算机根据学生的答案判断正确与否,当结束时给出成绩。购物满500元、不足1000元,减价7.5%,购物满1000元、不足2000元,减价10%,购物满2000元,减价15%。分
6、析:设购物款为m,折扣为d,以上规定可表示如下:d=0 (m250)5% (250m500)7.5% (500m1000)10% (1000m2000)15% (2000m)代码如下:Private Sub Command1_Click() Dim m As Single, d As Single m = InputBox(请输入应付款:) Select Case m Case Is 250 d = 0 Case Is 500 d = 0.05 Case Is 1000 d = 0.075 Case Is y,x,y)2. Choose( )函数Choose(变量(变量,值为值为1的返回值的返
7、回值,值为值为2的返回值的返回值,值为值为n的返回值的返回值) 例如,Nop是1-4的值,转换成 + 、-、运算符的语句如下: Op= Choose(Nop,+,-,) 当值为1,返回字符串“+”,然后放入Op变量中,值为2,返回字符串“-”,依次类推;当Nop是1-4的非整数,系统自动取Nop的整数再判断;若Nop不在14之间,函数返回Null值。5.2.4 IIf( )5.2.4 IIf( )函数和函数和Choose( )Choose( )函数函数 在块结构条件语句中,若在块结构条件语句中,若“语句块语句块”本身又包含本身又包含条件语句结构,则称为条件语句嵌套。条件语句结构,则称为条件语句
8、嵌套。 5.2.5 5.2.5 嵌套的选择结构嵌套的选择结构例例5-7给出给出a、b、c的值,判断它们能否构成三角形。若能的值,判断它们能否构成三角形。若能构成三角形,计算此三角形的面积。构成三角形,计算此三角形的面积。 例题解析:若例题解析:若a、b、c能构成三角形,则必定有下列条件同能构成三角形,则必定有下列条件同时成立:时成立: a0 And b0 And c0,即,即a、b、c均为正数。均为正数。 abc And acb And bca,即三角形任意两,即三角形任意两条边之和大于第条边之和大于第3边。边。 程序代码如下:程序代码如下:Private Command1_ClickDim
9、a As Single,b As Single,c As SingleDim p As Single,s As SingleaVal(InputBox(请输入第请输入第1个数个数)bVal(InputBox(请输入第请输入第2个数个数)cVal(InputBox(请输入第请输入第3个数个数)Flag0If a0 And b0 And c0 ThenIf abc And bca And acb ThenFlag1p(abc)/2sSqr(p*(pa)*(pb)*(pc)Print 三角形的三边长和面积依次为三角形的三边长和面积依次为;a,b,c,sEnd If End If If Flag0 T
10、hen Print 这这3个数不能构成三角形个数不能构成三角形End Sub 5.3 5.3 循循 环环 结结 构构5.3.1 For5.3.1 ForNextNext循环循环 For 循环变量循环变量初值初值 To 终值终值 Step步长步长循环体循环体Exit ForNext循环变量循环变量 0 初值终值 =1 时,可省略终值=0 死循环循环次数(1)Int终值 初值步长要注意:要注意:v 出了循环,循环控制变量值的问题。 例程序段: For i=2 To 13 Step 3 循环执行次数 Print i , 输出 i的值分别为: Next i 2 5 8 11 Print : Print
11、 “I=“, i 出了循环输出为: I=14v 在循环体内对循环控制变量可多次引用;但最好不要对其赋值,否则影响原来的循环控制规律。13 23(1)4Int步长 例5.9 输入一个班的学习成绩,统计其中及格的学生人数,并计算出全班的平均分数。学生人数不定,输入负数时截止。设全班人数不超过50人。 Private Sub Command1_Click() Dim Score As Single, PassN As Integer, n As Integer Dim i As Integer, Sum As Single Text1 = : Text2 = : Text3 = Sum = 0: P
12、assN = 0: n = 0 For i = 1 To 50 统计人数大于50时停止循环 Score = Val(InputBox(请输入学生成绩:) If Score = 60 Then PassN = PassN + 1 统计及格人数 n = n + 1 统计总人数 Sum = Sum + Score 统计总分 End If Next i Text1.Text = Str$(n) Text2.Text = Str$(PassN) Text3.Text = Str$(Sum / n) End Sub5.3.2 While5.3.2 WhileWendWend循环循环形式如下: While
13、条件 循环体 Wend功能:当给定的“条件”为True时,执行循环体;否则,跳出循环体,执行Wend后面的语句。 注意:(1)该循环结构先测试条件,然后决定是否执行循环体。(2)如果“条件”总成立,则构成死循环,所以,在循环体中应该包含有修改“条件”的操作,使循环能正常结束。(3)当循环可以嵌套,不允许交叉。每个Wend和最近的While相匹配。 例5.11(补) 小红今年12岁,她父亲比她大30岁,编程计算她的父亲在几年后比她年龄大一倍,那时父女的年龄各为多少?代码如下:Private Sub Form_Click() Dim age As Integer age = 12 While ag
14、e * 2 age + 30 age = age + 1 Wend Print 经过; age - 12; 年 Print 小红父女的年龄分别是:; age + 30; 和; ageEnd Sub5.3.3 Do5.3.3 DoLoopLoop循环循环形式1: DoWhile|Until条件条件 循环体循环体 Exit DoLoop 形式2:Do 循环体循环体 Exit DoLoopWhile|Until条件条件u功能功能:当循环“条件”为真(While条件)或直到指定的循环结束“条件”(Until条件)为真之前重复执行“循环体”。 例5-13输入两个正整数,求它们的最大公约数。程序代码如下:
15、Private Sub Form_Click() Dim m%,n%,r%,t% mInputBox(请输入第1个整数) nInputBox(请输入第2个整数) If mn Then tm:mn:nt Do rm Mod n mn nr Loop Until r0 Print 最大公约数是:;mEnd Sub 5.3.4 5.3.4 多重循环多重循环 当一个循环结构的循环体内含有另一个循环结构时,称当一个循环结构的循环体内含有另一个循环结构时,称为为循环嵌套循环嵌套,又称,又称多重循环多重循环。处于内层的循环叫。处于内层的循环叫内循环内循环,处,处于外层的循环叫于外层的循环叫外循环外循环。 对
16、于循环的嵌套,要注意以下事项:对于循环的嵌套,要注意以下事项:内循环变量与外循环变量不能同名;内循环变量与外循环变量不能同名;外循环必须完全包含内循环,不能交叉;外循环必须完全包含内循环,不能交叉;不能从循环体外转向循环体内,反之则可以。不能从循环体外转向循环体内,反之则可以。例例5-15编写程序,输出编写程序,输出100200之间的所有素数。之间的所有素数。程序代码如下:程序代码如下:Private Sub Form_Click() Dim Number As Integer,x As Integer,i As Integer,k As Integer Number0 For x101 To
17、 199 Step 2 i2:kInt(x/2) Do While ik If x Mod i0 Then Exit Do ii1 Loop If ik Then NumberNumber1 If Number Mod 50 Then Print End If Next xEnd Sub 5.4 5.4 常用算法与数据结构常用算法与数据结构算法是对某个问题求解过程的描述。5.4.1 5.4.1 累加、连乘累加、连乘 100以内的自然数之和以内的自然数之和Private Sub Command1_Click() Sum 0 For i 1 To 100 Sum Sum i Next i Prin
18、t SumEnd Sub10以内的偶数的乘积以内的偶数的乘积 Private Sub Form_Click() p 1 For i 2 To 10 Step 2 p p * i Next i Print pEnd Sub5.4.2 5.4.2 输出定位输出定位Private Sub Form_Click() FontSize20 Print Tab(14);乘积表乘积表 FontColor&HFF& FontSize12 Print:Print *, For x3 To 12 Step 3 Print x, Next x Print:Print For y15 To 20 Fo
19、ntColor&HFF& Print y, FontColor&H80000012& For x3 To 12 Step 3 Print x*y, Next x Print Next yEnd Sub利用利用Tab等定位函数修饰输出。等定位函数修饰输出。 例例5-16编写程序,打印如图编写程序,打印如图5-26所示的乘积表。所示的乘积表。5.4.3 5.4.3 穷举法穷举法 “穷举法”也称为“枚举法”或“试凑法”,即将可能出现的各种情况一一测试,判断是否满足条件,一般采用循环来实现。 例5-18 将1张1元钞票换成1分、2分和5分硬币,每种至少8枚,问有多少种方案?Private Sub Form_Click() Dim i As Integer, j As Integer, k As Integer Dim count As Integer For i 8 To 44 For j 8 To 26 For k 8 To 15 If (i j * 2 k * 5 100) Then count count 1 N
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《高层分析》课件
- 杭电电子设计课件驱动电路设计
- 道路运输设备承揽合同三篇
- 主题教育活动的创新设计计划
- WS-1纸张湿强剂相关行业投资规划报告范本
- PMMA再生料相关行业投资方案
- 幼儿园心理健康宣传计划
- 创造性思维下的新年目标计划
- 学校秋季环境美化活动计划
- 如何处理复杂的财务事务计划
- 湖北省省直辖县级行政单位天门市2023-2024学年四年级上学期1月期末语文试题
- 膜性肾病基础:流行病学病因学和发病机制
- 2024年统计法知识讲座
- 广东省中山市2023-2024学年七年级上学期期末生物试卷
- 数控车床编程-数控车床编程
- 2024年中铝宁夏能源集团招聘笔试参考题库含答案解析
- 中心静脉压cvp监测
- 医院护理培训课件:《股骨颈骨折中医护理查房》
- 新产品开发市场风险评估与防范措施可行性研究报告
- JCT558-2007 建筑用轻钢龙骨配件
- SYT 0447-2014《 埋地钢制管道环氧煤沥青防腐层技术标准》
评论
0/150
提交评论