计算机具有速度快精度高的特点特别适于进行重复性的ppt课件.ppt_第1页
计算机具有速度快精度高的特点特别适于进行重复性的ppt课件.ppt_第2页
计算机具有速度快精度高的特点特别适于进行重复性的ppt课件.ppt_第3页
计算机具有速度快精度高的特点特别适于进行重复性的ppt课件.ppt_第4页
计算机具有速度快精度高的特点特别适于进行重复性的ppt课件.ppt_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

第5章 循环结构设计 计算机具有速度快 精度高的特点 特别适于进行重复性的工作 重复次数越多越能显示它的威力 所以 使用计算机时 应尽量把问题归纳为简单而有规则的重复运算和操作 以充分发挥计算机的特长 采用循环程序可以解决一些按一定规则重复执行的问题 例如 统计一个班几十名学生 甚至全校几千名学生的学期成绩 如求平均分 不及格人数等本章主要内容循环语句 For Next Do Loop While Wend 循环出口语句 Exit 多重循环 列表框与组合框 程序举例 第5章循环结构设计 循环是指在指定的条件下多次重复执行一组语句 被重复执行的一组语句称为循环体VB提供的循环语句有Do LoopFor NextWhile WendForEach Next最常用的是For Next和Do Loop语句 5 1 1For Next循环语句按指定次数执行循环体例5 1在窗体上显示2至10各偶数的平方数 采用Print直接在窗体上输出结果 程序代码 PrivateSubForm Load DimkAsIntegerShowFork 2To10Step2Printk kNextkEndSub 程序运行结果 4163664100 5 1循环语句 说明 上述程序 循环变量k的初值 终值和步长值分别为2 10和2 即从2开始 每次加2 到10为止 控制循环5次 每次循环都将循环体 Printk k 执行一次格式 For循环变量 初值To终值 Step步长值 循环体 Next循环变量功能 本语句指定循环变量取一系列数值 并且对循环变量的每一个值把循环体执行一次初值 终值和步长值都是数值表达式 步长值可以是正数 称为递增循环 也可以是负数 称为递减循环 若步长值为1 则Step1可以省略 1 求出初值 终值和步长值 并保存起来 2 将初值赋给循环变量 3 判断循环变量值是否超过终值 步长值为正时 指大于终值 步长值为负时 指小于终值 超过终值时 退出循环 执行Next之后的语句 4 执行循环体 5 遇到Next语句时 修改循环变量值 即把循环变量的当前值加上步长值再赋给循环变量 6 转到 3 去判断循环条件 例5 1的执行过程 For Next语句的执行步骤 采用Print直接在窗体上输出结果 程序代码 PrivateSubForm Load Shows 0Fork 1To8s s kNextkPrint s sEndSub程序运行结果如下 s 36 语句s s k 循环体语句 的执行过程 例5 2求S 1 2 3 8 采用Print直接在窗体上输出结果 程序代码 PrivateSubForm Load Showt 1Forc 1To8t t cNextcPrint T tEndSub程序运行结果是 T 40320 语句t t c也称乘法器 先将t置1 不能置0 在循环程序中 常用累加器和累乘器来完成各种计算任务 例5 3求T 8 1 2 3 8 采用Print直接在窗体上输出结果 程序代码如下 PrivateSubForm Load ShowDimpiAsSingle cAsInteger sAsIntegerpi 0s 1 s表示加或减运算Forc 1To10000Step2pi pi s cs s 交替改变加 减号NextcPrint pi 4EndSub程序运行结果是 3 141397 例5 4用 4 1 1 3 1 5 1 7 级数求 的近似值 取前5000项来进行计算 下面采用 穷举法 来解此题 其做法是 从所有可能解中 逐个进行试验 若满足条件 就得到一个解 否则不是 直到条件满足或判别出无解为止 令母鸡为x只 小鸡为y只 根据题意可知y 100 x开始先让x初值为1 以后逐次加1 求x为何值时 条件3x y 3 100成立 如果当x达到30时还不能使条件成立 则可以断定此题无解 例5 5用100元买100只鸡 母鸡3元1只 小鸡1元3只 问各应买多少只 采用Print直接在窗体上输出结果 程序代码 PrivateSubForm Load DimxAsInteger yAsIntegerShowForx 1To30y 100 xIf3 x y 3 100ThenPrint 母鸡只数为 x Print 小鸡只数为 yEndIfNextxEndSub运行结果 母鸡只数为 25小鸡只数为 75 For Next循环主要是用在知道循环次数的情况下 若事先不知道循环次数 可以使用当型循环Do LoopDo Loop两种格式 前测型循环结构和后测型循环结构 两者区别在于判断条件的先后次序不同 5 1 2Do Loop循环语句 格式 Do While Until 条件 循环体Loop DoWhile Loop语句的功能 当条件成立 为真 时 执行循环体 当条件不成立 为假时 终止循环 DoUntil Loop 直到型循环 语句的功能 当条件不成立 为假 时 执行循环体 直到条件成立 为真 时 终止循环 1 前测型Do Loop循环 采用DoWhile Loop语句采用Print直接在窗体上输出结果 程序代码 PrivateSubForm Load DimnAsInteger sAsLongShown 1 s 0DoWhilen 100s s n nn n 1LoopPrint s sEndSub程序运行结果 S 338350 例5 6求S 12 22 1002 采用Print直接在窗体上输出结果 程序代码 PrivateSubForm Load ShowDimpiAsSingle nAsLong sAsIntegerpi 0 n 1 s 1DoWhilen 0 00001pi pi s ns sn n 2LoopPrint pi 4EndSub程序运行结果 3 141575 例5 7用 4 1 1 3 1 5 1 7 级数 求 的近似值 当最后一项的绝对值小于10 5时 停止计算 语句格式如下 Do 循环体 Loop While Until 条件 功能 先执行循环体 然后判断条件 根据条件决定是否继续执行循环 注意 本语句执行循环的最少次数为1 而前测型Do Loop语句的最少次数为0 即一次都不执行循环 2 后测型Do Loop循环 For Next前测型S 0s 0 k 1Fork 1to8DoWhilek 8s s ks s kNextkk k 1PrintsLoopPrintss 0 k 1dos s kk k 1LoopWhilek 8Prints 三种循环语句比较示例 求和s 1 2 3 8 后测型 辗转相除法 算法 求出m n余数p 若p 0 n即为最大公约数 若p非0 则把原来的分母n作为新的分子m 把余数p作为新的分母n继续求解 设计步骤如下 1 创建应用程序的用户界面和设置对象属性 例5 8输入两个正整数 求它们的最大公约数 编写的 计算 按钮Click事件过程代码如下 PrivateSubCommand1 Click DimmAsInteger nAsInteger pAsIntegerm Val Text1 Text n Val Text2 Text Ifm0Text3 Text mEndSub若输入的m和n的值为85和68 则运行结果如上图 语句格式While条件 循环体Wend 功能 当条件成立 为真 时 执行循环体 当条件不成立 为假 时 终止循环 本语句与上述DoWhile Loop循环语句相似 5 1 3While Wend循环语句 用于提前退出循环格式 Exit For Do 功能 直接从For循环或Do循环中退出 当程序运行时遇到Exit语句时 就不再执行循环体中的任何语句而直接退出 转到循环语句 Next Loop 的下面继续执行 5 1 4循环出口语句 例5 8的循环语句可改为Dop mModnIfp 0ThenExitDoEndIfm nn pLoopWhilep0Text3 Text n 把每次输入的数累加 当输入 1时结束程序的运行 1 创建应用程序的用户界面和设置对象属性 2 编写程序代码PrivateSubForm Load ShowSum 0DoWhileTrue 条件为真 循环无终止进行下去x Val InputBox 请输入要加入的数 1表示结束 输入数据 Ifx 1ThenExitDoEndIfSum Sum xText1 Text SumLoopMsgBox 累加运算结束 EndSub以 1作为 终止循环标志 例5 9设计一个 加法器 程序 多重循环是指循环体内含有循环语句的循环例5 10多重循环程序示例程序运行结果PrivateSubForm Load 15Show16Fori 1To3 外循环17Forj 5To7 内循环25Printi j26Nextj27Nexti35EndSub36 37注意内 外循环层次要分清 不能交叉 5 2多重循环 本例可采用两重循环来实现 外循环控制输出7行 内循环控制每行输出要求的字符数 在进入内循环之前 使用PrintTab 来对起始输出位置定位 退出内循环后 使用Print来控制换行 例5 11编一程序 输出下列所示的图形 采用Print直接在窗体上输出结果 程序代码如下 PrivateSubForm Load ShowFori 1To7PrintTab 10 i Forj 1To2 i 1PrintChr i 48 NextjPrintNextiEndSubPrintChr i 48 与Printi有所不同 1 分析 设一元硬币为a枚 二元硬币为b枚 五元硬币为c枚 可列出方程 a b c 10a 2b 5c 25 采用两重循环 外循环变量a从0 10 内循环变量b从0 10 2 创建应用程序的用户界面 例5 12取一元 二元 五元的硬币共十枚 付给25元钱 有多少种不同的取法 3 编写程序代码程序通过Print方法把处理结果输出在标签的下方PrivateSubForm Load ShowCurrentX 0 CurrentY 1500 确定开始显示的坐标Print 五元 二元 一元 n 0 记录解的组数Fora 0To10Forb 0To10c 10 b aIfa 2 b 5 c 25Andc 0Thenn n 1Print n c b aEndIfNextb aEndSub 列表框和组合框都能为用户提供若干个选项 供用户从中任意选择两种控件的特点是为用户提供大量的选项但又占用很少的屏幕空间 操作简单方便 5 3列表框与组合框 1 列表框的用途 列表框 ListBox 用于列出可供用户选择的项目列表 用户可从中选择一个或多个选项 自动出现滚动条表项索引2 常用属性 1 Name属性 2 List属性 该属性是一个字符型数组 用于存放列表框的表项数组的下标从0开始图5 5中 List1 List 0 的值为 教授 List1 List 1 的值为 副教授 5 3 1列表框 3 ItemData属性 为每个表项设置一个对应的数值 4 ListCount属性 返回列表框中表项的数目 5 ListIndex属性 返回已选定表项的顺序号 索引 若未选定任何项 则ListIndex的值为 1 6 Text属性 存放当前选定表项的文本内容 7 Selected属性 逻辑值 表示列表框中某一表项是否被选中 8 Sorted属性 设置列表框中各表项在运行时是否按字母顺序排列 9 MultiSelect属性 设置是否允许同时选择多个表项 假设列表框List1中有四个表项 并已选定第2项 则有 List1 List 0 的值为 教授 个数List1 ListCount为4List1 ListIndex为1List1 Text的值为 副教授 List1 Selected 1 为TrueList1 Selected 0 为False采用以下方法 可为列表框List1赋值 1 在属性窗口中设置 2 利用AddItem赋值 3 利用List属性赋值List1 AddItem 教授 List1 List 0 教授 List1 AddItem 副教授 List1 List 1 副教授 List1 AddItem 讲师 List1 List 2 讲师 List1 AddItem 助教 List1 List 3 助教 3 事件可接收Click DblClick等事件4 方法 1 AddItem方法 用于把一个列表项加入列表框格式 对象 AddItem列表项 索引 举例 List1 AddItem 海南省 28其中 索引 值不能大于表项数 ListCount 2 Clear方法 用于清除列表框中的所有项目 3 RemoveItem方法 用于删除指定的列表项格式 对象 AddItem列表项 索引 5 列表框表项的输出 1 用鼠标单击列表框内某一表项 则该表项值存放在Text属性中 例如 x List1 Text 把表项值存放在x变量中 2 指定索引号来取表项的内容 例如 List1 ListIndex 3 x List1 Text 3 直接从数组List 中读取 例如 x List1 List 5 1 分析 判别条件为 nMod3 0 And nMod8 0 2 创建应用程序的用户界面和设置对象属性 例5 13设计一个程序 找出100 800范围内所有能同时被3和8整除的自然数 3 编写程序代码 编写的 显示 按钮Click事件过程代码 PrivateSubCommand1 Click List1 ClearForn 100To800If nMod3 0 And nMod8 0 ThenList1 AddItemnEndIfNextnEndSub 1 创建应用程序的用户界面和设置对象属性用户先在左列表框 List1 选择一个或多个选修课 当单击 显示 按钮时 在右列表框 List2 中将显示出用户选中的所有课程 单击 清除 按钮时 将清除右列表框中的内容 2 编写程序代码 例5 14设计一个选课程序 PrivateSubForm Load List1 AddItem 电子商务 List1 AddItem 网页制作 List1 AddItem Internet简明教程 List1 AddItem 计算机网络基础 List1 AddItem 多媒体技术 EndSubPrivateSubCommand1 Click 显示 按钮单击事件List2 Clear 清除列表框的内容Fori 0ToList1 ListCount 1 逐项判断IfList1 Selected i Then 真时为选定List2 AddItemList1 List i EndIfNextiEndSubPrivateSubCommand2 Click 清除 按钮单击事件List2 ClearEndSub 允许从已有的选项中进行选择 还允许输入列表中不包括的内容列表框和文本框的组合具有列表框和文本框的大部分属性和方法 独有的一些属性 1 Style属性 该属性取值为0 1或2 分别决定了组合框的三种不同类型下拉组合框 DropdownCombo 简单组合框 SimpleCombo 下拉列表框 DropdownList 5 3 2组合框 2 Text属性 该属性是用户所选定项目的文本或直接从文本框输入的文本 1 创建应用程序的用户界面 2 设置对象属性组合框的Style属性为0 TabIndex 键序 为0 两个标签 四个命令按钮 一个文本框Text1 用来显示当前的选修课总课程数 例5 15编制程序 把一批课程名放入组合框中 再对组合框进行项目显示 添加 删除 全部删除等操作 3 编写程序代码PrivateSubForm Load Combo1 AddItem 电子商务 Combo1 AddItem 网页制作 Combo1 AddItem Internet简明教程 Combo1 AddItem 计算机网络基础 Combo1 AddItem 多媒体技术 Combo1 Text 置空值Text1 Text Combo1 ListCount 表项个数EndSubPrivateSubCommand1 Click 添加 IfLen Combo1 Text 0ThenCombo1 AddItemCombo1 TextText1 Text Combo1 ListCountEndIfCombo1 Text Combo1 SetFocusEndSub PrivateSubCommand2 Click 删除 DimindAsIntegerind Combo1 ListIndexIfind 1Then 1表示无表项Combo1 RemoveItemind 删除已选定的表项Text1 Text Combo1 ListCountEndIfEndSubPrivateSubCommand3 Click 全清 Combo1 ClearText1 Text Combo1 ListCountEndSubPrivateSubCommand4 Click EndEndSub 两重循环 采用Print直接在窗体上输出结果PrivateSubForm Load ShowFontSize 15 设置字号PrintTab 12 九九乘法表 输出标题FontSize 12Print 输出空行Fork 0To9PrintTab k 4 k 输出第一行数字NextkPrint 换行Forj 1To9 外循环Printj Fork 1Toj 内循环PrintTab k 4 j k 输出乘积NextkPrint 换行NextjEndSub 5 4程序举例例5 16打印 九九乘法表 打印 九九乘法表 1 分析 模仿十进制整数转换成二进制数的方法 即 除2取余 采用逐次 除n取余 法 n为2 8或16 即用n不断去除要转换的十进制数 直至商为0为止 将每次所得的余数逆序排列 以最后余数为最前位 即得到所转换的n进制数 2 创建应用程序的用户界面和设置对象属性 例5 17输入一个十进制整数 将其转换成二进制数 八进制数或十六进制数 列表框的名称为List1 其List属性设置了三个表项 二进制 八进制和十六进制 ItemData属性设置了相应的值 2 8和16 3 编写程序代码 功能要求 用户在文本框Text1中输入要转换的十进制数 选择转换进制 单击 转换 按钮 Command1 后 则在文本框Text2中输出转换结果 换码表 Ch变量 的作用 PrivateSubCommand1 Click 转换 按钮单击事件过程DimyAsString xAsLong sAsIntegerDimChAsString nAsIntegerCh 0123456789ABCDEF 换码表IfList1 ListIndex 1Thenn 2 未选 则以二进制转换Elsen List1 ItemData List1 ListIndex EndIfy x Val Text1 Text Ifx 0ThenText2 Text ExitSubEndIfDoWhilex 0s xModn 取余数x Int x n 求商y Mid Ch s 1 1 y 换码 反序加入LoopText2 Text yEndSub PrivateSubCommand2 Click 结束UnloadMeEndSub 示例 142 10 8E 16 例如 10 2 524 2 2 2 376 2 2 19解题的步骤 程序代码 PrivateSubForm Load Shows InputBox 请输入一个正整数 x Val s PrintPrintx Fori 2ToxDoWhile xModi 0 求相同因子x x iPrinti Ifx1ThenPrint LoopNextiEndSub 示例 20 2 2 5 例5 18把一个正整数写成若干个素数相乘的形式 1 框架的用途 作为容器放置其他控件对象 将这些控件对象分成可标识的控件组 框架内的所有控件将随框架一起移动 显示和消失 2 常用属性 Name属性和Caption属性3 事件 可以响应Click和Dblclick事件 在应用程序中一般不需要编写有关框架的事件过程 补充1 框架 Frame 例控制文本的字体 字号及颜色 设计步骤如下 1 创建应用程序的用户界面和设置对象属性在窗体上设置3个框架Frame1 Frame2和Frame3 2 编写程序代码 功能要求 在三个框架中分别选择字体 字号和颜色 单击 确定 按钮后 文本框中的文本相应属性会发生变化PrivateSubForm Load Option1 Value TrueOption3 Value TrueOption5 Value TrueText1 FontName 宋体 Text1 FontSize 16Text1 ForeColor RGB 0 0 255 EndSub PrivateSubCommand1 Click IfOption1 ValueThenText1 FontName 宋体 ElseText1 FontName 幼圆 EndIfIfOption3 ValueThenText1 FontSize 16ElseText1 FontSize 20EndIfIfOption5 ValueThenText1 ForeColor RGB 0 0 255 ElseText1 ForeColor RGB 255 0 0 EndIfEndSub 补充2滚动条 1 滚动条的用途 为不能自动支持滚动的应用程序和控件提供滚动功能 也可作为数据输入的工具 水平滚动条 HScrollBar 和垂直滚动条 VScrollBar 最小值 Min 最大值 Max 移动滚动块时 代表的值随之改变2 常用属性 1 Min Max属性 Min属性的默认值为0 Max属性的默认值为32767 2 Value属性 设置滚动块在滚动条中的位置值 3 SmallChange最小变动值属性 4 LargeChange最大变动值属性 3 事件滚动条控件可以识别10个事件 其中最常用的是Scroll和Change事件 1 Scroll事件 当用鼠标拖动滚动块时 即触发Scroll事件 2 Change事件 当改变Value属性值时 即触发Change事件当释放滚动块 单击滚动条内空白处或滚动箭头时 Change事件就会发生 例设计一个调色板应用程序 建立三个水平滚动条作为红 绿 蓝三种基本颜色的输入工具 合成的颜色显示在右边的标签中 图10 17 用其背景颜色属性BackColor值的改变实现合成颜色的调色 说明 根据调色原理 基本颜色有红 绿 蓝三种 选择这三种颜色的不同比例 可以合成所需要的任意颜色 1 创建应用程序的用户界面和设置对象属性三个水平滚动条名称从上至下分别为HScroll1 HScroll2 HScroll3其Max属性均设置为255 Min属性均设置为0 SmallChange属性设置为1 LargeChange属性设置为10 Va

温馨提示

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

评论

0/150

提交评论