第3章++结构化程序设计_第1页
第3章++结构化程序设计_第2页
第3章++结构化程序设计_第3页
第3章++结构化程序设计_第4页
第3章++结构化程序设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、学习目标:学习目标:u 掌握掌握If 条件语句和条件语句和Select Case选择语句选择语句 u 掌握掌握ForNext和和DoLoop循环语句循环语句 u 掌握两重循环,了解多重循环掌握两重循环,了解多重循环 u 了解了解Exit、End和和Goto语句语句 u 掌握程序的简单调试方法掌握程序的简单调试方法 教学内容:教学内容: 3.1 选择结构与相关语句选择结构与相关语句 3.2 循环语句循环语句 3.3 其它语句其它语句 3.4 程序调试程序调试u选择结构:当设定条件成立时执行选择结构:当设定条件成立时执行某些语句,条件不成立时则跳过这某些语句,条件不成立时则跳过这些语句或执行其它的

2、语句。些语句或执行其它的语句。u选择结构中要使用选择语句,有两选择结构中要使用选择语句,有两路分支和多路分支两种情况路分支和多路分支两种情况 ,对应,对应的选择语句有的选择语句有If语句语句(两路出口两路出口)和和Select Case语句语句(多路出口多路出口)。 1. If Then 其中,其中,是一个条件表达式或逻辑表达式是一个条件表达式或逻辑表达式 例如,例如,If Data=90 Then Print “优秀优秀” 例例输入一个数,如果是输入一个数,如果是3的的倍数则通过消息框输出。倍数则通过消息框输出。 Private Sub Form_Click() Dim Data As In

3、teger Data = InputBox(请输入一个值:请输入一个值:) If Data Mod 3 = 0 Then MsgBox Data End SubData是是3的倍数的倍数 Data=90?输出输出“优秀优秀”YesNoData=90?输出输出“优秀优秀”YesNo输出输出“合格合格”输出输出“计算完毕计算完毕”2. If Then Else 例如,例如,Dim Data As Integer Data = InputBox(“请输入成绩:请输入成绩:) If Data = 90 Then Print “优秀优秀” Else Print “合格合格” Print 计算完毕计算完毕

4、 上例的上例的If 语句可以改写为:语句可以改写为: If Data 90 Then Print 合格合格 Else Print 优秀优秀 u编写程序计算电话通信费:通过输入对话框输入编写程序计算电话通信费:通过输入对话框输入通话时间通话时间(分钟分钟),计算电话费。话费计算方法:,计算电话费。话费计算方法:3分钟或以内分钟或以内0.20元,超过元,超过3分钟部分,分钟部分,1分钟分钟0.10元元3. 块状块状If语句语句 If Then End If If Then Else End If 例:改变窗体的背景色:首次单击为红色,再次单击则为蓝色,例:改变窗体的背景色:首次单击为红色,再次单击

5、则为蓝色,以后的单击为红、蓝交替。窗体背景色的属性为以后的单击为红、蓝交替。窗体背景色的属性为BackColorBackColor例:用块状例:用块状IfIf语句改写上述话费程序。语句改写上述话费程序。4. If语句嵌套语句嵌套 If语句嵌套使用可形成多分支的条件语句结构语句嵌套使用可形成多分支的条件语句结构 If Then ElseIf Then Else End If说明:说明: ElseIf之间不要加空格。之间不要加空格。 Else和位于其上方的最近的和位于其上方的最近的If配对配对 例例Weight = InputBox(输入西瓜重量:输入西瓜重量:, 计算西瓜款计算西瓜款)If We

6、ight 4 Then Price = 1ElseIf Weight = 7 Then Price = 1.3 Else Price = 1.1End IfMoney = Price * WeightMsgBox “西瓜重西瓜重” & Weight & “公斤,单价公斤,单价” & _ Price & 元,应收瓜款元,应收瓜款 & Money & _ 元元, , 计算西瓜款计算西瓜款4公斤以下:公斤以下:1.00元元/公斤公斤4至至7公斤:公斤: 1.3元元/公斤公斤超过超过7公斤:公斤: 1.1元元/公斤公斤 If Weight = 4 And Price 7 Then Price = 1.

7、1 例例 (P43例例3-4) Char = InputBox(输入一个字符输入一个字符, 测试字符值测试字符值) If Char = 0 And Char = A And Char = a And Char = z Then MsgBox 输入的字符是小写字母输入的字符是小写字母 Else MsgBox 输入的字符是其它符号输入的字符是其它符号 End If判断输入的是判断输入的是大写字母、小大写字母、小写字母、数字写字母、数字还是其它符号还是其它符号 例 Private Sub Command1_Click() 单击“正确无误”按钮 If Len(TxtCode.Text) 8 Then

8、LblWarn.Caption = 考核证号必须输入,长度为8位 TxtCode.SetFocus ElseIf Len(TxtName.Text) = 0 Then LblWarn.Caption = 考生姓名必须输入 TxtName.SetFocus ElseIf Len(TxtSeat.Text) = 0 Then LblWarn.Caption = 座位号必须输入 TxtSeat.SetFocus Else LblWarn.Caption = Debug.Print TxtCode.Text Debug.Print TxtName.Text Debug.Print TxtSeat.Te

9、xt End If End Sub P45例例3-5u语法格式:语法格式: Select Case Case Case Case Else End Selectu功能:根据测试表达式的值,决定程序的流向。功能:根据测试表达式的值,决定程序的流向。 值的类型是数值的类型是数值型、字符串型、日期型等,值型、字符串型、日期型等,一旦与某个一旦与某个Case后的后的值相等,则执行这个值相等,则执行这个Case中的中的,完成后执行,完成后执行End Select后的语句。后的语句。 如果所有的如果所有的Case后的后的都不与都不与项匹配,项匹配,则执行则执行Case Else后的后的。 例例 学生成绩分

10、等学生成绩分等 Data = InputBox(请输入一个成绩请输入一个成绩, 成绩分等成绩分等) Select Case Int(Data / 10) Case 10 MsgBox 满分满分, , 成绩分等成绩分等 Case 9 MsgBox 优秀优秀, , 成绩分等成绩分等 Case 8 MsgBox 良好良好, , 成绩分等成绩分等 Case 7 MsgBox 一般一般, , 成绩分等成绩分等 Case 6 MsgBox 合格合格, , 成绩分等成绩分等 Case Else MsgBox 不合格不合格, , 成绩分等成绩分等 End Select单单击击窗窗体体确确定定例 测试输入的字符

11、 Char = InputBox(请输入一个字符, 测试)Select Case Char Case 0 To 9 MsgBox 字符是数字, , 测试 Case a To z MsgBox 字符是小写字母, , 测试 Case A To Z MsgBox 字符是大写字母, , 测试 Case Else MsgBox 字符是其它符号, , 测试End Select 例例 已知已知10月月1日是星期二,输入日是星期二,输入10月份内某天日期,输出月份内某天日期,输出星期。星期。 确确定定单单击击窗窗体体u u 程序的另一种结构是循环结构程序的另一种结构是循环结构u 循环结构作用是重复执行一段程序

12、循环结构作用是重复执行一段程序u 循环是有条件的、次数是有限的循环是有条件的、次数是有限的u VB的循环语句:的循环语句:ForNext、Do WhileLoop For EachNext、WhileWend u 应用最多的:应用最多的:ForNext与与Do WhileLoopuForNext循环:循环:一般应用于循环次数已知的场合一般应用于循环次数已知的场合 For = 初值初值 To 终值终值 Step 步长步长 语句块(循环体)语句块(循环体) Next 循环变量循环变量 u工作原理工作原理 循环变量循环变量=初值初值循环变量超出范围?循环变量超出范围?循环体循环体循环变量增加一个步长

13、循环变量增加一个步长NoYesStep缺省为缺省为 1 例例3.8 求求1+3+5+7+99Private Sub Form_Click() Dim Sum As Integer, I As Integer Sum = 0 保存累加和,先清零保存累加和,先清零 For I = 1 To 99 Step 2 Sum = Sum + I Next I MsgBox 1+3+5+99= & Sum, , 求和求和End Sub 本例的特点是数据本例的特点是数据项之间相差项之间相差2, 即即Step的值为的值为2 思考:思考:例中当输出对话框出现时,例中当输出对话框出现时,I 的值是多少?的值是多少?

14、如果省略如果省略Step 2,程序的结果如何?,程序的结果如何?For语句能不能改写成语句能不能改写成For I=99 To 1 Step -2 ? u例:生成例:生成10个两位随机正整数并输出,求和,并个两位随机正整数并输出,求和,并输出其中的最大值、最小值输出其中的最大值、最小值u通过键盘输入一个正整数通过键盘输入一个正整数(大于大于1),判断其是否为,判断其是否为质数。质数是只能被质数。质数是只能被1和自身整除的正整数。如和自身整除的正整数。如2、3、5、7、11、13、17等等。等等。uExit for 例例3.9 求平均成绩求平均成绩 Const N = 10 学生人数学生人数Pri

15、vate Sub Form_Click() Dim Sum As Integer, I As Integer Dim Data As Integer, Average As Single Sum = 0 存放累加值的变量清零存放累加值的变量清零 For I = 1 To N 循环循环40次,步长值为次,步长值为1省略省略 Data = InputBox(输入第输入第 & I & 位同学的成绩位同学的成绩, 求平均分求平均分) Sum = Sum + Data Next I Average = Sum / N MsgBox 全班全班 & N & 名学生的平均分为名学生的平均分为 & Averag

16、e, , 求平均分求平均分End Sub 确确定定本例的循环变量本例的循环变量 I 控制人数控制人数 例例3.11 求斐波那契级数的前求斐波那契级数的前20项项(1, 1, 2, 3, 5, 8, 13, 21, 34, ) Private Sub Form_Click() Dim A, B, I, T As Integer A = 1 : B = 1 生成级数第一、二项生成级数第一、二项 Print A; B; For I = 3 To 20 T = A + B 产生级数新的一项产生级数新的一项 A = B 让让B成为下一组的成为下一组的A B = T 原来原来A+B的值成为下一组的的值成为

17、下一组的B Print B; If I Mod 6 = 0 Then Print Next IEnd Sub斐波那契级数:斐波那契级数:第一、二项为第一、二项为1 1第三项开始,每一项第三项开始,每一项 的值是前两项值之和的值是前两项值之和 每每6个数一行个数一行1. 当型循环:当型循环:较多应用在循环次数事先未知的场合较多应用在循环次数事先未知的场合 Do While 循环体循环体Loop Do 循环体循环体Loop While 条件表达式条件表达式成立?成立?循环体循环体NoYes条件表达式条件表达式成立?成立?循环体循环体NoYes先判断后执行先判断后执行 先执行后判断先执行后判断特点:

18、条件表达式特点:条件表达式成立执行成立执行循环体内容循环体内容 例例3.12 计算若干位学生的平均分计算若干位学生的平均分 ,以,以-1为输入结束标志为输入结束标志 Private Sub Form_Click() Dim Data As Integer, Sum As Integer, N As Integer Dim Average As Single Sum = 0 : N = 0 Data = InputBox(输入第输入第 & N + 1 & 个同学的成绩个同学的成绩, 求平均分求平均分) Do While Data -1 -1表示结束输入表示结束输入 Sum = Sum + Dat

19、a N = N + 1 Data = InputBox(输入第输入第 & N + 1 & 个同学的成绩个同学的成绩, 求平均分求平均分) Loop Average = Sum / N MsgBox N & 位同学的平均分为位同学的平均分为 & Average, , 求平均分求平均分End Sub例例3.13 Sum=1+2+3+N 求求Sum不超过不超过10000的最大整数值和数据项数的最大整数值和数据项数N Private Sub Form_Click() Dim Sum, N As Integer N = 0 开始时项数为开始时项数为0 Sum = 0 保存累加值的变量保存累加值的变量Su

20、m清零清零 Do While Sum = 10000 N = N + 1 Sum = Sum + N Loop Sum = Sum - N N = N - 1 Print Sum=; Sum, N=; N End Sub当当Sum的值超出的值超出10000时循环才时循环才终止。因此终止。因此Sum值要减去多加的值要减去多加的一个一个N;而在循环过程中,;而在循环过程中,N也也被多加了一个被多加了一个1,需要减去。,需要减去。 2. 直到型循环直到型循环 Do Until 循环体循环体Loop Do 循环体循环体Loop Until 特点:条件表达式特点:条件表达式不成立执行不成立执行循环体内容

21、循环体内容 先判断后执行先判断后执行 条件表达式条件表达式成立?成立?循环体循环体NoYes先执行后判断先执行后判断条件表达式条件表达式成立?成立?循环体循环体NoYes 例例3.14计算平均分计算平均分( (要求同要求同例例3.12) ) Private Sub Form_Click() Dim Data As Integer, Sum As Integer, N As Integer Sum = 0 : N = 0 Data = InputBox(输入成绩输入成绩, 计算总分计算总分) Do Until Data = -1 Sum = Sum + Data N = N + 1 Data =

22、 InputBox(输入数据输入数据, 计算总分计算总分) Loop Print 全班平均分为全班平均分为:; Sum / NEnd Sub Do While Data -1 Sum = Sum + Data N = N + 1 Data = InputBox(输入数据输入数据, 计算总分计算总分) Loopu通过输入对话框输入5个数据,统计其中正数、负数和零的个数。u用随机函数生成并输出20个两位数,找出其中的最小值并且指出它是第几个数。u有一分式序列: ,求该数列的前20项之和。u不使用除法运算符“/”、“”和求余数运算符“Mod”完成两个正整数除法,得到商和余数,例如:22除以4,商为5

23、,余数2。u用公式求 求圆周率的近似值,直到最后一项的绝对值小于10-6为止。u产生两个110范围的随机整数,让小学生输入它们的和,答案对输出“正确”,如果不对则继续要求答题,1321,813,58,35,23,1271513114两重循环两重循环:在一个循环的循环体中还包含另一个循环:在一个循环的循环体中还包含另一个循环例例3.15 在窗体上显示一个几何图形在窗体上显示一个几何图形Private Sub Form_Click() Dim I, J As Integer I、J为循环变量为循环变量 For I = 1 To 8 I 控制行数控制行数(8行行) Print Tab(10 - I)

24、; 定每行定每行*的起始位的起始位 For J = 1 To I J 控制每行输出控制每行输出I个个* Print *; Next J Print 换行换行 Next IEnd Sub注意:双重循环不能形成交叉注意:双重循环不能形成交叉 例例3.16 输出乘法口诀表输出乘法口诀表Private Sub Form_Click() Dim I As Integer, J As Integer, M As Integer For I = 1 To 9 For J = 1 To I M = I * J Print J & * & I & = & M & ; Next J Print 打印换行打印换行

25、Next IEnd Sub练习:练习:P73 4. (用用*输出集合图形输出集合图形)例例3.17 计算计算 Private Sub Form_Click() Dim I As Integer, J As Integer Dim F As Long 阶乘值用长整型保存阶乘值用长整型保存 Dim e As Double For I = 0 To 10 F = 1 每个阶乘值先置每个阶乘值先置1以便累乘以便累乘 For J = 1 To I F = F * J Next J e = e + 1 / F Next I Print e=; e End Sub!101.! 31! 21! 111e本循环

26、计算本循环计算F= I!多重循环多重循环:循环次数在两重以上的循环结构:循环次数在两重以上的循环结构 例例3.19 计算计算将将1角钱兑换成零钱有多少种方案角钱兑换成零钱有多少种方案 Private Sub Form_Click() Dim I, J, K, S As Integer S = 0 统计兑换统计兑换1角钱的方案数角钱的方案数 For I = 0 To 10 1分钱个数分钱个数 For J = 0 To 10 Step 2 2分钱个数分钱个数 For K = 0 To 10 Step 5 5分钱个数分钱个数 If I + J + K = 10 Then S = S + 1 Next K Next J Next I MsgBox 1角钱兑换成零钱的方案有角钱兑换成零钱的方案有 & S & 种种, , 兑换零钱兑换

温馨提示

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

评论

0/150

提交评论