第四章 结构程序设计(第三讲)——循环_第1页
第四章 结构程序设计(第三讲)——循环_第2页
第四章 结构程序设计(第三讲)——循环_第3页
第四章 结构程序设计(第三讲)——循环_第4页
第四章 结构程序设计(第三讲)——循环_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

上节内容回顾 1 单分支语句格式1 用一行 IfThen格式2 用多行 IFThen语句块EndIf 例如 如果成绩X小于60分 则输出 要补考 采用格式1 ifx 60thenprint 要补考 采用格式2 ifx 60thenprint 要补考 endif 2 双分支结构 格式1 IfThenELseEndIf格式2 IfThenElse 例如 判断通过文本框输入的数据X是 正数 还是 非正数 可以这样理解 如果X大于0 则输出 正数 否则 输出 非正数 采用格式1 ifx 0thenprint 正数 elseprint 非正数 endif采用格式2 ifx 0thenprint 正数 elseprint 非正数 应用举例 例9 任意输入3个数 按照从大到小的顺序输出 处理过程 界面设计 根据界面给出算法步骤 1 从文本框中获取3个数据 分别给A B C 2 如果A小于B 则交换A B 3 如果A小于C 则交换A C 4 如果B小于C 则交换B C 5 将A B C显示在要显示结果的文本框中 PrivateSubCommand2 Click Dima b c d a Val Text1 Text b Val Text2 Text c Val Text3 Text Ifa bThend a a b b dIfa cThend aa cc dEndIfIfb cThend b b c c dText4 Text aText5 Text bText6 Text cEndSub PrivateSubCommand1 Click Text1 Text Text2 Text Text3 Text Text4 Text Text5 Text Text6 Text EndSub 引例 单击窗体 要求在窗体上显示6行星号分析 要求显示的信息是每行是由16个星号所构成的字符串 所以可以通过连续6次调用窗体的Print方法实现图形的显示 PrivateSubForm Click Print Print Print Print Print Print EndSub 若要求显示10行或更多行这样的信息若打印信息的行数要求是由用户决定如何实现呢 第四节循环结构程序设计 问题 1 单击窗体 要求在窗体上显示6行星号分析 可以采用一行一行的输出 当行数不足6行时 继续输出 这样需要一个记行数的变量i 开始时为0 因为没有一行输出 算法步骤 i 0输出一行16个星号 行数增1 当行数小于6时 重复执行 2 3 语句结束 PrivateSubForm Click DimiAsIntegeri 0DoPrint i i 1LoopWhilei 6EndSub 问题 若要求显示10行或更多行这样的信息 循环语句 循环体 循环条件 问题 2 单击窗体 要求在窗体上显示n行星号分析 要求输出的16个星号的行数由用户决定 InputBox PrivateSubForm Click DimiAsIntegerDimnAsIntegern Val InputBox 请输入行数 i 0DoPrint i i 1LoopWhilei nEndSub Do Loop循环结构当型循环 While 直到型循环 Until For Next循环结构语句 循环结构的类型 1Do Loop循环结构 1 1当型循环 While 格式1DoWhile循环条件循环体Loop 格式2Do循环体LoopWhile循环条件 True 循环条件 循环体 False 循环条件 循环体 True False 1 1当型循环 While 格式1DoWhile循环条件循环体Loop 单击窗体 要求在窗体上显示6行星号 当i小于6时 重复执行 PrivateSubForm Click DimiAsIntegeri 0DoWhilei 6Print i i 1LoopEndSub 1 1当型循环 While 格式2Do循环体LoopWhile循环条件 单击窗体 要求在窗体上显示6行星号 重复执行循环体 当i小于6时 PrivateSubForm Click DimiAsIntegeri 0DoPrint i i 1LoopWhilei 6EndSub 1 2直到型循环 Until 格式1DoUntil循环条件循环体Loop 格式2Do循环体LoopUntil循环条件 False 循环条件 循环体 True 循环条件 循环体 False True 1 2直到型循环 Until 格式1DoUntil循环条件循环体Loop 单击窗体 要求在窗体上显示6行星号PrivateSubForm Click DimiAsIntegeri 0DoWhilei 6Print i i 1LoopEndSub DoUntili 6 当i大于等于6时 不再循环 1 2直到型循环 Until 格式2Do循环体LoopUntil循环条件 单击窗体 要求在窗体上显示6行星号PrivateSubForm Click DimiAsIntegeri 0DoPrint i i 1LoopUntili 6EndSub 重复执行 直到当i大于等于6时 不再循环 例题1 设计一个小程序 能够实现接收若干的专家的考评打分 输入 1表示打分结束 最后计算出平均考评分分析 要求出专家的平均考评分Average 所以先得求出专家的考评总分Total 然后再除以考评分个数Num 而考评总分的计算 就是要将每个专家的考评打分Mark依次累加专家的打分并非一次性给出 而是在程序运行时 由用户依次输入 因此要进行考评总分的计算 必须先接收一个用户输入的专家打分 只要该专家打分不为 1 表示结束输入 就进行累加这个考评打分 然后再继续接收下一个用户输入的专家打分 重复若干次 直到用户输入的数据为 1为止 界面设计 由于要接收的数据无法预知其个数 所以不适合利用文本框来接收数据 所以采用输入函数InputBox 结合循环实现利用窗体的单击事件完成计算 并在窗体上而显示结果 输入一个专家打分Mark 总分累加Total Total Mark 输出平均考评分Average 开始 结束 False True 总考评分清零Total 0 Mark 1 输入下一个专家打分Mark Average Total Num 考评分个数清零Num 0 考评分个数累加Num Num 1 PrivateSubForm Click DimTotalAsInteger DimNum Mark Total 0Num 0Mark Val InputBox 输入专家打分 DoWhileMark 1Total Total MarkNum Num 1Mark Val InputBox 输入专家打分 LoopAverage Total NumPrint 平均考评分 AverageEndSub 2For Next循环结构语句 格式For循环控制变量 初值To终值 Step步长 循环体Next循环控制变量 循环变量 初值 循环体 循环变量 循环变量 步长 循环变量超过终值 True False 例题2 For循环实现 单击窗体 要求在窗体上显示6行星号分析 循环体 Print 循环变量I表示输出行 从1变化到6 即循环变量I的初值为1 终值为6 步长为1 循环次数为6 PrivateSubForm Click DimIAsIntegerForI 1To6Print NextIEndSub 例题3 求1 2 3 n分析 求多项数据之和 首先得设置一个累加器sum 存放累加结果 根据一般人们求和的步骤 多个数据累加的过程如下 sum0 0sum1 sum0 1sum2 sum1 2sum3 sum2 3 sumn sumn 1 n 归纳 求多项数据之和 整个累加过程一直在重复执行sum sum i 一共重复n次 其中累加项i的变化规律为 i i 1 i的初值为1 终值为n 即当i的值超过n结束累加操作 求1 2 3 n程序代码设计 循环体是sum sum i 而累加项i的变化恰好与累加次数一致 所以可以利用累加项i来控制循环次数 即将i兼用做循环变量 初值为1 终值为n 步长为1 PrivateSubForm Click DimsumAsInteger iAsIntegern Val InputBox 请输入累加的终值n sum 0Fori 1Tonsum sum iNextiPrint 1 n sumEndSub 求1 n之间所有的偶数之和 还可以利用DO LOOP循环实现 例4 打印九九乘法表 Fori 1To9Forj 1To9se iNextjPicture1 PrintNexti 例题5 利用循环实现数字金字塔输出分析 一共要输出指定塔高n行信息 每行信息都是有规律的 先重复输出若干个空格 然后重复输出若干个对应行号的数字字符 其中输出空格的数量和数字字符的数量都是有规律的 第1行 1个数字 1 n 1个空格 第2行 3个数字 2 n 2个空格 依次类推 可以找到规律 第i行 先输出n i个空格 然后输出2i 1个数字字符 i 程序代码设计设置循环变量I控制输出信息的行数 1 n 循环体就是有规律的输出一行信息 而每一行信息 又可以通过两个并列的循环实现 一个控制每行前导空格的输出 一个控制每行数字字符的输出 利用循环实现数字金字塔输出 Fori 1Ton 输入的数字金字塔的塔高n 1 9 Forj 1Ton iPrint 输出空格NextjForj 1To2 i 1PrintCStr i 输出数字字符NextjPrint 换行NextI说明 本题也可以利用String函数来简化问题的实现 例题5 电脑模拟摇奖 由计算机自动随机产生2000个1 1000000之间的数据 第2000个即为中奖号码分析 使用For Next循环产生2000个6位随机整数 随机整数的产生可以利用Rnd随机函数实现 但为了获得号码不断滚

温馨提示

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

评论

0/150

提交评论