《选择分支与循环》PPT课件.ppt

上传人:sh****n 文档编号:8696820 上传时间:2020-03-31 格式:PPT 页数:44 大小:539.31KB
返回 下载 相关 举报
《选择分支与循环》PPT课件.ppt_第1页
第1页 / 共44页
《选择分支与循环》PPT课件.ppt_第2页
第2页 / 共44页
《选择分支与循环》PPT课件.ppt_第3页
第3页 / 共44页
点击查看更多>>
资源描述
1 第5章选择分支与循环 2 本章主要内容 5 1分支结构与分支结构语句5 2循环结构与循环结构语句5 3程序示例 3 5 1分支结构与分支结构语句 分支结构是程序的基本算法结构之一 VB提供了实现分支结构的相关语句 If Then Else EndIf结构语句Select Case EndSelect结构语句 4 If Then Else EndIf结构语句 该结构语句的一般形式该结构的变形1该结构的变形2 例5 1 已知三角形三个边的长度 设计求此三角形面积的程序 例5 2 一个有多个分支的示例程序 5 If结构语句的一般形式 IfeThen A组语句 Else B组语句 EndIf 6 If结构的变形1 7 If结构的变形2 8 例5 1 已知三角形三个边的长度 设计求此三角形面积的程序 算法流程图程序代码 当a b c且a c b且b c a时 三角形存在 其面积式中 p a b c 2 9 例5 1 算法流程图 10 11 例5 2 一个有多个分支的示例程序 程序代码 12 例5 2 程序代码 PrivateSubCommand1 Click DimxAsIntegerx Val Text1 Text Ifx 1ThenText2 Text 这是小于1的数 ElseIfx 10ThenText2 Text 这是1到10之间的数 ElseText2 Text 这是大于10的数 EndIfEndSub 13 Select Case EndSelect结构语句 本结构语句提供了实现多分支结构的另一种方法 它的一般形式是 SelectCaseeCasec1A组语句Casec2B组语句 CaseElsen组语句EndSelect e称为测试表达式 可以是算术表达式或字符表达式 c1 c2 是测试项 1 具体取值 如 3 5 7 2等 当测试表达式是算术表达式时 2 连续的数据范围 如 8To20 B To H 等 3 满足某个判决条件 如 Is 20 Is P 等 例5 2的程序代码也可使用本结构语句实现 14 例5 2的程序代码使用本结构语句实现 PrivateSubCommand1 Click DimxAsIntegerx Val text1 Text SelectCasexCaseIs 1Text2 text 这是小于1的数 Case1To10Text2 Text 这是1到10之间的数 CaseElseText2 Text 这是大于10的数 EndSelectEndSub 15 5 2循环结构与循环结构语句 循环结构也是程序的基本算法结构 所谓循环 就是重复地执行某些操作 当型循环和直到型循的不同执行方式Do Loop循环结构语句For Next循环结构语句循环嵌套 16 当型循环和直到型循的不同执行方式 当型循环的不同执行方式直到型循环的不同执行方式 17 1 Do Loop循环结构语句 Do Loop循环结构语句的四种形式ExitDo语句 例5 3 求两个自然数的最大公约数程序 1 DoWhilee2 Do ExitDo ExitDo LoopLoopWhilee3 DoUntile4 Do ExitDo ExitDo LoopLoopUntile 18 ExitDo语句 循环体中 可以包括一条或多条ExitDo语句 如果程序执行到ExitDo语句时 就会直接退出循环 转而执行Loop语句的下一条语句 ExitDo语句最常用的形式是与If Then语句相结合 即 IfeThenExitDoExitDo在执行循环体时 如果条件e被满足 则执行ExitDo语句 直接退出循环 19 例5 3 求两个自然数的最大公约数程序 本问题的算法采用欧几里德算法求解由于输入的数据M和N要求是自然数 所以在程序中应加入对数据的合法性进行检验的部分 考虑到程序的应用范围 数据类型可选用长整型 本例中使用了求余 数 运算符Mod 使用Mod运算符时 切记应在它的前后各加一个空格 程序代码 20 例5 3 程序代码 21 2 For Next循环结构语句 如果事先已知循环次数 则可使用For Next循环结构语句 它的一般形式是 For Next循环结构语句的执行方式注意 例5 4 例5 5 Forv e1Toe2 Stepe3 ExitFor Nextv v是循环控制变量 应为整型或单精度型 e1 e2和e3是控制循环的参数 e1为初值 e2为终值 e3为步长 当e3 1时 Stepe3部分可省略 22 For Next循环结构语句的执行方式 计算e1 e2和e3的值 给v赋初值 判断v的值是否超过e2 即当e3 0时 判断是否v e2 当e3 0时 判断是否v e2 如果未超过 则执行循环体 如果超过了 则退出循环 执行Next语句 v增加一个步长 即执行v v e3 然后转而执行判断操作 23 注意 循环参数e1 e2和e3中包含的变量如果在循环体内被改变 不会影响循环的执行次数 但循环控制变量若在循环体内被重新赋值 则循环次数有可能发生变化 十进制整数可准确转换为二进制数形式 而带小数点的十进制数在转换为单 双 精度数时则多半存在数制转换误差 若使用非整型数做循环控制变量和循环参数 那么循环次数就有可能发生意想不到的变化 当循环变量为整型 而循环参数为带小数点的实数时 系统将其转换为与循环变量相同的整数型 24 例5 4 求1到10这十个数的和与连乘积 求若干个数之和或连乘积 可采用 累加 或 累乘 法 累加法是设置一个存放和数的变量 称为 累加器 初始值为0 累加过程通过循环实现 累乘的算法设置的是 累乘器 初始值为1 在循环体内 乘数应与累乘器相乘 在求乘积时 应注意乘积的大小 设置适当的数据类型 程序代码 25 例5 5 大写字母逆序输出的程序 从一个字符串中找出符合要求的字符是采取对字符串的每一个字符逐个筛选的方法实现的 本例利用Mid函数可以从字符串中提取出单个字符 利用循环控制处理过程 循环的终值使用Len函数 对于符合要求的字符采用连接运算组成新字符串 逆序输出则是通过从后往前逐个提取字符再连接 程序代码 26 3 循环嵌套 无论是Do Loop循环 还是For Next循环 都可以在大循环中套小循环 必须注意 小循环一定要完整地被包含在大循环之内 而不得相互交叉 PrivateSubForm Click Fori 1To9Forj 1To9Printi j i j NextjPrintNextiEndSub执行本程序 窗体上将显示九九乘法表 例5 6 一个模拟摇奖的程序 27 例5 6 一个模拟摇奖的程序 题目 设有100个人中签 要从中找出中奖人 由机器自动随机产生1000个1 100间的数据 第1000个随机数据即为中奖人的号码 分析 问题的关键是如何产生1 100之间的随机整数 VB提供了一个可以产生0 1之间均匀分布的随机数的随机函数Rnd x 为了生成某个范围内的随机整数 可用以下公式 Int ub lb 1 Rnd lb 这里 ub lb分别是随机整数范围的上下限 程序代码 28 随机函数Rnd x 其中 可选的x参数是Single或任何有效的数值表达式如果使用参数且参数x0 则得到随机序列的下一个随机数 参数x 0 则返回上一次生成的随机数 不使用x的结果与x 0相同 对最初给定的种子都会生成相同的数列 因为每一次调用Rnd函数都用数列中的前一个数作为下一个数的种子 调用Rnd之前 可先使用无参数的Randomize语句初始化随机数生成器 该生成器具有从系统计时器获得到的种子 29 5 3程序示例 例5 7 一个简易函数计算器程序 例5 8 个人收入调节税应用程序 例5 9 找出水仙花数 例5 10 利用牛顿迭代法求方程根 例5 11 原码转换成反码的程序 30 例5 7 一个简易函数计算器程序 为了保证 计算器 在各种操作状况下都正常工作 程序需要考虑在用户没有在文本框中输入数据或输入的数据超出函数的定义域时的出错处理 程序中使用的IsNumeric 函数用于检测自变量s是否是一个可转换成数值的数字串 如果是 则返回逻辑值True 否则返回False 程序代码 31 例5 8 个人收入调节税应用程序 按月收入额计个人收入调节税的计税公式式中 income为纳税人的月收入 程序代码 32 例5 9 找出所有三位水仙花数 利用 穷举法 在三位数中查找具有 水仙花数 特征的数题中在判断一个数是否是 水仙花数 时采用了两种方法 一种是将三位数循环变量的各位数字拆开 然后进行比较 一种是采用三重循环 用三个循环变量来构成一个三位数 然后进行比较程序代码 1 程序代码 2 33 例5 10 利用牛顿迭代法求方程根 利用牛顿迭代法求方程xex 1 0在x0 0 5附近的一个根 要求精确到10 7牛顿迭代法算法说明程序代码 34 牛顿迭代法算法说明 牛顿迭代法是求解一元超越方程的常用算法 设要求解的方程为f x 0 并已知一个不够精确的初始根x0 则有 上式称为牛顿迭代公式 式中 f x 是f x 的导函数 利用迭代公式 可以依次求出x1 x2 x3 当 xn 1 xn 时的xn 1即为要求的根 xn 1 xn f xn f xn n 0 1 2 3 35 例5 11 原码转换成反码的程序 Mid函数的功能除可提取字符串的指定位置的字符之外 也可以如同一个变量一样用在赋值语句中 其功能是用指定的字符替换字符串中指定位置的内容 本示例使用了Mid函数的这一功能 程序代码 36 例5 4 37 例5 5 38 例5 6 39 例5 7 40 例5 8 41 例5 9方法一 OptionExplicitPrivateSubCommand1 Click DimIAsInteger aAsInteger bAsInteger cAsInteger stAsStringForI 100To999a I 100b IMod100 10c IMod10IfI a 3 b 3 c 3Thenst I a 3 b 3 c 3 List1 AddItemstEndIfNextIEndSub 42 例5 9方法二 OptionExplicitPrivateSubCommand1 Click DimIAsInteger aAsInteger bAsInteger cAsInteger stAsStringFora 1To9Forb 0To9Forc 0To9I a 100 b 10 cIfI a 3 b 3 c 3Thenst I a 3 b 3 c 3 List1 AddItemstEndIfNextcNextbNextaEndSub 43 例5 10 OptionExplicitPrivateSubcmd1 Click DimxAsSingle x1AsSingle EpsAsSinglex InputBox 输入初始值x 牛顿迭代法 Eps InputBox 输入允许误差Eps 牛顿迭代法 Dox1 xx x1 x1 Exp x1 1 Exp x1 x1 1 LoopUntilAbs x x1 EpsText1 Text Str x EndSubPrivateSubcmd2 Click EndEndSub 44 例5 11
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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