VB教程第5章教案.ppt

上传人:sh****n 文档编号:6439841 上传时间:2020-02-25 格式:PPT 页数:54 大小:505KB
返回 下载 相关 举报
VB教程第5章教案.ppt_第1页
第1页 / 共54页
VB教程第5章教案.ppt_第2页
第2页 / 共54页
VB教程第5章教案.ppt_第3页
第3页 / 共54页
点击查看更多>>
资源描述
第5章 循环结构程序设计 采用循环程序可以解决一些按一定规则重复执行的问题 例如 统计一个班几十名学生 甚至全校几千名学生的学期成绩 如求平均分 不及格人数等本章主要内容 第5章循环结构程序设计 Do Loop For Next 退出 循环出口语句 Exit 循环语句 多重循环 列表框与组合框 常用算法 程序举例 循环是指在指定的条件下多次重复执行一组语句被重复执行的一组语句称为循环体VB提供的循环语句有For NextDo LoopWhile WendForEach Next最常用的是For Next和Do Loop语句 For Next循环主要是用在知道循环次数的情况下 若事先不知道循环次数 可以使用当型循环Do Loop1 For Next循环语句 计数控制 For循环变量 初值To终值 Step步长值 循环体 Next循环变量2 DoWhile Loop语句 条件控制 Do While Until 条件 循环体Loop 5 1循环语句示例求S 1 2 3 8 s 0Fork 1To8s s kNextkPrint s s程序运行结果如下 s 36 n 1 s 0DoWhilen 8s s nn n 1LoopPrint s s 例5 2 K为循环变量 专设变量n来控制循环 例5 2求S 1 2 3 8 把结果显示在窗体上 s 0 累加器初值为0Fork 1To8s s k 累加器 在原有和的基础上每次加一个数NextPrint s s程序执行结果是 s 36分析 算法 通常采用重复运算来解决问题累加 累乘等如用级数 4 1 1 3 1 5 1 7 来求 设置循环变量使每次运算变量值有所不同控制循环计数控制或条件控制 循环结构程序的实现 求S 1 2 3 8s 0Fork 1To8s s kNextkPrint s s把长式子改为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 例5 3 例5 3T 8 1 2 3 8 把结果显示在网页上 t 1 累乘器初值为 Forc 1To8t t c 累乘器 在原有积的基础上每次乘一个数NextPrint T t程序执行结果是 T 40320分析 采用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项来进行计算 例5 4 Fort 1To3Ift 1Thena 3Ift 2Thena 2Ift 3Thena 1Printa NexttPrinttA 3333B 1234C 3214D 1114 下列程序的运行结果是 想一想 思考题 D Fort 1To3Ift 1Thena 3Ift 2Thena 2Ift 3Thena 1Printa NexttPrinttA 3334B 1234C 3214D 1114 下列程序的运行结果是 想一想 思考题 C 运行下面程序后 循环体执行了 次 i 0 n 1DoWhilei 32i i 1 i 1 n n 1LoopPrintnA 2B 3C 4D 5 请回答问题 想一想 思考题 C s ABCDEFGHIJ c Fork 2ToLen s Step3a Mid s k c c Left a 1 NextkPrintcA BDFB CFIC BEHD BEI 下列程序的运行结果是 想一想 思考题 C 采用DoWhile Loop语句采用Print直接在窗体上输出结果 程序代码 PrivateSubForm Load DimnAsInteger sAsLongShown 1 s 0DoWhilen 100s s n nn n 1LoopPrint s sEndSub程序运行结果 S 338350 例5 5求S 12 22 1002 例5 5 采用Print直接在窗体上输出结果 程序代码 PrivateSubForm Load ShowDimpiAsSingle nAsLong sAsIntegerpi 0 n 1 s 1DoWhilen 0 00001pi pi s ns sn n 2LoopPrint pi 4EndSub程序运行结果 3 141575 例5 6用 4 1 1 3 1 5 1 7 级数 求 的近似值 当最后一项的绝对值小于10 5时 停止计算 例5 6 辗转相除法 算法 求出m n余数p 若p 0 n即为最大公约数 若p非0 则把原来的分母n作为新的分子m 把余数p作为新的分母n继续求解 设计步骤如下 1 创建应用程序的用户界面和设置对象属性 例5 7输入两个正整数 求它们的最大公约数 例5 7 编写的 计算 按钮Click事件过程代码如下 PrivateSubCommand1 Click DimmAsInteger nAsInteger pAsIntegerm Val Text1 Text n Val Text2 Text Ifm0Text3 Text mEndSub若输入的m和n的值为85和68 则运行结果如上图 用于提前退出循环格式 Exit For Do 功能 直接从For循环或Do循环中退出 当程序运行时遇到Exit语句时 就不再执行循环体中的任何语句而直接退出 转到循环语句 Next Loop 的下面继续执行 5 1 4循环出口语句 把每次输入的数累加 当输入 1时结束程序的运行创建应用程序的用户界面和设置对象属性编写程序代码PrivateSubForm Load ShowSum 0DoWhileTrue 条件为真 循环无终止进行下去x Val InputBox 请输入要加入的数 1表示结束 输入数据 Ifx 1ThenExitDoEndIfSum Sum xText1 Text SumLoopMsgBox 累加运算结束 EndSub以 1作为 终止循环标志 例5 8设计一个 加法器 程序 例5 8 多重循环是指循环体内含有循环语句的循环例5 9多重循环程序示例程序运行结果PrivateSubForm Load 15Show16Fori 1To3 外循环17Forj 5To7 内循环25Printi j26Nextj27Nexti35EndSub36 37注意内 外循环层次要分清 不能交叉 5 2多重循环 例5 9 本例可采用两重循环来实现 外循环控制输出7行 内循环控制每行输出要求的字符数 在进入内循环之前 使用PrintTab 来对起始输出位置定位 退出内循环后 使用Print来控制换行 例5 10编一程序 输出下列所示的图形 例5 10 采用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 11取一元 二元 五元的硬币共十枚 付给25元钱 有多少种不同的取法 例5 11 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 执行下列程序段后 变量t的值是 t 0Forx 2To3n 1DoWhilen xt t nn n 1LoopNextxA 8B 9C 10D 11 请回答问题 想一想 思考题 B 请回答问题 想一想 思考题 显示结果为 16 执行下列程序段后 显示的结果是 s 0Form 1To4Step2n 1DoWhilen ms s nn n 1LoopNextmPrints m n 例5 12a 5 3列表框与组合框 列表框和组合框都能为用户提供若干个选项 供用户从中任意选择5 3 1列表框 ListBox List属性 字符型数组 存放列表框的表项数组的下标从0开始 例如 List1 List 0 的值为 教授 List1 List 1 的值为 副教授 ListCount属性 表项数目Text属性 当前选定表项的文本内容ListIndex属性 返回已选定表项的顺序号 索引 若未选定任何项 则ListIndex的值为 1Selected属性 逻辑型数组 表示列表框中某一表项是否被选中 例5 12b 假设列表框List1中有四个表项 并已选定第2项 则有 List1 ListIndex为1List1 Text的值为 副教授 List1 Selected 1 为True 方法 1 AddItem方法 用于把一个列表项加入列表框格式 对象 AddItem列表项 索引 举例 List1 AddItem 海南省 28 2 Clear方法 用于清除列表框中的所有项目 3 RemoveItem方法 用于删除指定的列表项采用以下方法 可为列表框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 助教 列表框表项的输出 1 用鼠标单击列表框内某一表项 则该表项值存放在Text属性中 例如 x List1 Text 把表项值存放在x变量中 2 指定索引号来取表项的内容 例如 List1 ListIndex 3 x List1 Text 3 直接从数组List 中读取 例如 x List1 List 5 1 分析 判别条件为 nMod14 0 And nMod10 8 2 创建应用程序的用户界面和设置对象属性 例5 12设计一程序 找出三位数中能被14整除且个位数为8的自然数 把这些自然数显示在列表框中 其个数显示在标签中 例5 12 3 编写程序代码编写的 显示 按钮Click事件过程代码 PrivateSubCommand1 Click 显示 List1 ClearForn 100To800If nMod14 0 And nMod10 8 ThenList1 AddItemnEndIfNextnLabel1 Caption 符合条件的自然数的个数为 List1 ListCountEndSub 1 创建应用程序的用户界面和设置对象属性用户先在左列表框 List1 选择一个或多个选修课 当单击 显示 按钮时 在右列表框 List2 中将显示出用户选中的所有课程 单击 清除 按钮时 将清除右列表框中的内容 2 编写程序代码 例5 13设计一个选课程序 MultiSelect属性值为2 例5 13 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 创建应用程序的用户界面和设置对象属性窗体上含有Combo1 Combo2 Combo3三个组合框 其Style属性从左至右分别为0 1和2 即除了 内存 容量大小只能从列表中选择外 其余内容既可以从列表中选择 也可以由用户输入 在属性窗口中输入相关数据 例5 14在窗体上设置3个组合框 用于选择微机部分配置 包括CPU 主频 硬盘及内存 图片框 设计界面 运行界面 例5 14 2 编写程序代码PrivateSubForm Load Combo1 Text Combo1 List 0 Combo2 Text Combo2 List 0 Combo3 Text Combo3 List 0 EndSubPrivateSubCommand1 Click 确定 按钮的事件过程Picture1 ClsPicture1 Print 微机的基本配置 Picture1 PrintString 20 Picture1 Print CPU Combo1 TextPicture1 Print 硬盘 GB Combo2 TextPicture1 Print 内存 MB Combo3 TextEndSub 5 4常用算法 算法是对某个问题求解过程的描述 常用的算法有 穷举法 递推法 排序法 查找法 递归法等 1 累加 连乘和计数累加 如s s k 是在原有和的基础上一次一次地每次加一个数 连乘 如t t c 则是在原有积的基础上一次一次地每次乘一个数 计数通常每次增加的值不是一个加数 而是1 例5 15找出100 999三位数中的 水仙花 数 计算其个数 所谓水仙花数 是指各位数字立方和等于该数本身 如153是一个水仙花数 因为153 13 53 33 程序中采用计数方法n n 1 或称 计数器 来记录有多少个 水仙花 数 找水仙花数 PrivateSubForm load DimkAsInteger aAsInteger bAsIntegerDimcAsInteger nAsIntegeShown 0Print 三位数的水仙花数是 Fork 100To999a Int k 100 求百位数b Int k 100 a 10 求十位数c kMod10 求个位数Ifk a 3 b 3 c 3ThenPrintk 输出水仙花数n n 1 对满足条件的数进行计数EndIfNextkPrint 一共有 n 个水仙花数 EndSub 例5 15 2 穷举法 穷举法 也称为 枚举法 它是计算机解题常用的一种方法 其做法是 从所有可能解中 逐个进行试验 若满足条件 就得到一个解 否则不是 直到条件满足或判别出无解为止 例5 16用100元买100只鸡 母鸡3元1只 小鸡1元3只 问各应买多少只 下面采用穷举法来解此题 对于此题 令母鸡为x只 小鸡为y只 根据题意可知y 100 x 开始先让x初值为1 以后逐次加1 求x为何值时 条件3x y 3 100成立 如果当x达到30时还不能使条件成立 则可以断定此题无解 因为买的母鸡数不可能超过30 超过30就不能买到100只鸡 100元买100只鸡 PrivateSubForm Load DimxAsInteger yAsIntegerShowForx 1To30y 100 xIf3 x y 3 100ThenPrint 母鸡只数为 x Print 小鸡只数为 yEndIfNextxEndSub 例5 16 3 递推法 递推法 也称为 迭代法 其基本思想是把一个复杂的计算过程转化为简单过程的多次重复 每次重复都从旧值的基础上递推出新值 并由新值代替旧值 通过InputBox函数输入a值 并以a作为x的初值 要求前后两次求出的x的差的绝对值小于10 5 分析 这是一个 递推 问题 先从a推出第一个x值 即 a a a 2 x 再以该x值 旧值 推出x的新值 即 x a x 2 x 依次向前推 每次以x旧值推出x的新值 即 x a x 2 x 当x旧值与新值之差的绝对值小于10 5时 此时的x新值为所求 例5 17 PrivateSubForm Load DimaAsSingle xn0AsSingle xn1AsSingleShow 用xn0表示旧值 xn1表示新值a Val InputBox 请输入一个正数 xn1 a 以a作为x的初值Doxn0 xn1 确定旧值xn1 xn0 a xn0 2 计算新值LoopWhileAbs xn0 xn1 0 00001 判断Printa 的平方根为 xn1EndSub如果输入的a值为3 程序运行结果是 3的平方根为1 732051 例5 17 5 4程序举例 例5 18打印 九九乘法表 两重循环 采用Print直接在窗体上输出结果 例5 18 打印 九九乘法表 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 1 创建应用程序的用户界面和设置对象属性功能要求 用户在文本框Text1中输入要转换的十进制数 选择转换进制 单击 转换 按钮 Command1 后 则在文本框Text2中输出转换结果 例5 19输入一个十进制整数 将其转换成二进制数 八进制数或十六进制数 例5 19 2 算法 模仿十进制整数转换成二进制数的方法 即 除2取余 采用逐次 除n取余 法 n为2 8或16 即用n不断去除要转换的十进制数 直至商为0为止 将每次所得的余数逆序排列 以最后余数为最前位 即得到所转换的n进制数 示例 6 10 110 2 142 10 8E 16 求余数 142Modn 求商数 Int 142 n 3 把0 15转换为十六进制数 0 F 把数值0 9 10 15转换为字符 0 9 A F 利用 换码表 Ch变量 Ch 0123456789ABCDEF 要把数值s 0 15 转换为十六进制数码 0 F 可采用c Mid Ch s 1 1 即以s 1确定位置 从Ch中取出相应的一个字符 当s 5时 c 5 当s 14时 c E 4 List属性列表框的名称为List1 其List属性设置了三个表项 2进制 8进制和16进制 5 编写程序代码 PrivateSubCommand1 Click 转换 按钮单击事件过程DimyAsString xAsLong sAsIntegerDimChAsString nAsIntegerCh 0123456789ABCDEF 换码表IfList1 ListIndex 1Thenn 2 未选 则以二进制转换Elsen Val List1 List 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 结束EndEndSub 示例 142 10 8E 16 例5 19 1 创建应用程序的用户界面 2 设置对象属性组合框的Style属性为0 TabIndex 键序 为0 两个标签 四个命令按钮 一个文本框Text1 用来显示当前的选修课总课程数 例5 20编制程序 把一批课程名放入组合框中 再对组合框进行项目显示 添加 删除 全部删除等操作 例5 20 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
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!