




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
强烈要求同学们注意:循环语句的功能介绍和应用的内容是程序设计课程的难点和重点,必须全力以赴注意听讲!下面我们分两节课来讲解。第38讲 循环语句的功能介绍和应用(上)P21P95先复习一下上节课内容:1、VB的立即方式,几个常用函数的使用介绍(演示):打开矩形求解.FRM的立即窗口? Str(10)+Str(5)? Val(“10”)+ Val(“5”)? Fix(6.1), Fix(6.7), Fix(-6.1),Fix(-6.7)Fix(x)的值为截去x的小数部分后的整数部分,而且不四舍五入。S=888? S=; S 两个以上表达式可以用“,”或“;”分隔,用“;”结果是前后紧接在一起;? S=+ Str(S) 和上面结果一样2、补讲2个函数:(1)、输入函数:InputBox(x) 运行时,会弹出一个输入框,函数值是你键盘输入的值,例如在矩形求解.FRM中,语句L = Text1.Text可用:L=InputBox(“L=”, “请输入长度”,30)来代替,演示; 格式:InputBox(“提示字符串”, “输入框名称”,默认值) 从上面演示中,凡是单引号 后面的内容都不运行,单引号 后面的内容仅是注释内容; (5)输出函数:MsgBox(表达式) 弹出一个输出信息框,把表达式的值显示出来,例如在程矩形求解.FRM中,语句Text3.Text = d可用:MsgBox(d)代替,演示; MsgBox(表达式)中的表达式可以是字符串(文本),例如:语句Text4.Text = 有二条相同的边长: 高h=宽w= + Str(L / 4) + cm可用:MsgBox (有二条相同的边长: 高h=宽w= + Str(L / 4) + cm)来代替;演示:当L=100,S=625时,d=0,只有一个根;一、循环结构 执行语句:1、2行复习例2:求S=1+1/2+1/3+1/n示意性程序如下:(S=S+1/k, k=1,2,3,n)条件1 输入n值=1002 S=0 : k=1 3 Y3 如果 kn 转到7 N执行程序段:4、54 S=S+1/k5 k=k+16 转到3 6 转到3 7 S7 输出: S 8 结束二、循环语句功能演示:执行例2:求S=1+1/2+1/3+1/n的例2累加求和程序.FRM;求S=1+1/2+1/3+1/n的例2程序的 VB程序代码如下:n = Val(n)Do While n 1 or n Fix(n) n = InputBox(输入n不是自然数,请重新输入n=?) Text1.Text = n n = Val(n)LoopPrivate Sub Command1_Click() 插入下面程序段,可限制n只能输入自然数: S = 0n = Text1.Text=100For k = 1 To n Step 1 S = S + 1 / kNext k=100+1=101Text2.Text = SEnd SubTrue; 当至少有一个条件为真时; False; 2个条件都为假时;注:逻辑运算符or 是:或者意思,条件表达式1 or 条件逻辑表达式2=逻辑值 (演示:用立即方式验证Fix(x)和or) P71-73 1、 For语句的一般格式: P79For 循环变量=初值 To 终值 Step 步长程序段Next循环变量执行功能流程图如下:循环变量初值,把终值、步长记录下来(一次性保存下来)循环变量超过终值?N Y结束循环执行循环体内程序段循环变量循环变量+步长循环程序功能示例:(执行两种循环语句示例.FRM)(1) S=0For K = 1 To 10 Step 1 (注意:Step 1 可省略) Print K 1,2,3,4,10 S = S+K 0+1+2+3+ 10 Next K 执行:K K+1,K终值10? Print SPrint K=终值+步长 下面讨论For K = 1 To 10 Step 1的其它改变情况:(2) For K = 1 To 10 Step 2 (3) For K = 10 To 1 Step -1 K10+(-1), 9+(-1), 8+(-1),.,直到K=0终值1结束循环。大于终值; 当步长为正时;小于终值; 当步长为负时;这里说明:循环变量超过终值?的“超过”意思: “大于”或“小于”的两种情况流程图参见:课本P78图,并和讲稿上的执行功能流程图对照;(4) For K = 1 To 10 Step 1S = S+1 每次循环把当前的S加1,循环10次:S =1+1+1+1+1+1+1+1+1+1=10Next KPrint S 这里说明:循环体内程序段里当然可以没有循环变量K,这里的K仅是控制循环次数;(5) For K = 1 To 10 Step 1S = S+1K=K-1Next K=k+1=K+1Print S请问上程序执行后,会出现什么情况?(循环变量不变化,死循环下去了,中断死循环,请同时按两键:Ctrl+Break或Ctrl+ C);(提问1:有循环语句,但一次都不循环的话,上程序如何修改,如果步长是负的呢?)(6) a=1: b=10: c=1 (讨论:初值、终值、步长是表达式情况)For K = a+1 To b Step c (先计算初值、终值、步长,后保存,以后不改变了)S = S+Kb=100 (不能再改变初值了)Next KPrint S讨论:若上程序循环体内程序段里包含a、b、c值的改变情况(演示)这里说明:For语句中初值、终值、步长. 是一次性保存下来不变了,不能在循环体内改变初值、终值和步长值.。(注意上面的执行功能流程图)三、For/to循环语句功能练习1、看上讲稿,并运行两种循环语句示例.FRM,按上面的举例修改程序并运行,理解For/to循环语句的功能;2、试完成上面提到的提问1;(请2个同学上来演示?)3、运行例2累加求和程序.FRM,理解For/to循环语句功能; 只记录一次后不变了!第39讲 循环语句的功能介绍和应用(下)P21P95复习For/to循环语句功能,对照流程图,运行两种循环语句示例.FRM;注意:死循环情况和一次都不循环得情况(分步长正负情况);四、Do循环语句的功能介绍 P80在某些情况下,我们事先不能确定For语句中的初值、终值、步长,比如在例2累加求和程序.FRM中,运行演示,我们要限制输入的n 只能输入自然数,否则循环重输,这里我们不知道重输次数?那么这种重输的循环我们就不能用For/to循环语句了,咋办?但我们知道循环重输的条件:n 1 或 n不是整数,这时我们要用Do 语句来解决;Do语句的常用格式: n Fix(n)Do While 条件表达式 程序段Loop执行功能为:当条件表达式= True(成立时),执行执行循环体内程序段,否则(False)终止Do语句循环,其执行功能流程图参见:课本P80图4.3.4。示范程序:在上例2程序中我们要限制输入的n 只能输入自然数,要补充程序段如下:n = Val(n)Do While n 1 or n Fix(n) (只要一个条件成立,说明n不是自然数) n = InputBox(输入n不是自然数,请重新输入n=?) Text1.Text = n n = Val(n)LoopTrue; 当至少有一个条件为真时; False; 2个条件都为假时;注:逻辑运算符or 是:或者意思,条件表达式1 or 条件逻辑表达式2=逻辑值 (演示:用立即方式验证Fix(x)和or) P71-73 上面Do While程序段的功能就限制输入的n 只能输入自然数:演示两种循环语句示例.FRM并查看程序代码 演示:查看上例2累加求和程序.FRM(求S=1+1/2+1/3+1/n)程序代码并运行(提问2:在保持程序功能不变的情况下,你能不能把上面的For循环语句改成Do语句呢?)五、循环语句的应用程序举例(一)、枚举算法介绍:P21/P95像公检法系统审查案件时用的逐一排查嫌疑对象的方法一样,现实世界中有一类问题可以采用搜索的方法,在搜索结果的过程中,把各种可能的情况都考虑到,并对全部可能结果逐一进行判断,过滤掉那些不符合要求的,保留符合要求的结果,这种方法叫做枚举算法(enumerative algorithm)。枚举算法就是按问题本身的性质,一一列举出该问题所有可能的解,并在逐一列举的过程中,检验每个可能解是否是问题的真正解,若是,就采纳这个解,否则就抛弃它。在列举的过程中,既不能遗漏也不应重复。1、枚举算法编程举例1(数字填空题): 枚举算法一般用循环结构来实现,例如:数字填空题如下: 已知: 25?6=37或67的倍数, 求出满足条件的所有?数字; 可知:?=00-99, ?6=(0-99)*10+6, 25?6=25006+(0-99)*10; 所以:设循环变量为j,则j=0-99, 25?6=25006+j*10; 其算法流程图参见:课本P22图2.1.2,其中C=C+1,统计满足条件的5位数个数。 算法流程图动画演示:数字的推算.swf实际参考程序见:枚举算法.FRM(演示)。 说明:在程序中:(1) If n / 37 = Fix(n / 37) Or n / 67 = Fix(n / 67) Then上面的条件成立,则表示n可以被37或67整除, (2) List1.AddItem n 表示把n值显示在列表框List1.AddItem中 List1.AddItem c= + Str(c) 是把结果字符串n或c= + Str(c)按次序显示在列表框(对象)上,一般格式: 列表框对象名. AddItem空格字符串 (使用演示) 列表框对象的功能比文本框对象的优点是能显示多行结果。 再次复习提醒: 列表框List1.AddItem的List1是默认对象名可改名,其属性名AddItem不能改。 注意:列表框对象名. AddItem=字符串,是错误的,不能用=,只能用空格,这和文本框和标签框对象=赋值不同。2、枚举算法编程举例2(求约数倍数.frm): (1)、求约数:如果i是n的约数,则条件:n / i = Fix(n / i)成立;用立即方式验证、理解:100/25=Fix(100/25) 成立; 100/27=Fix(100/27) 不成立;问:100以内的约数是那几个?我们要输入n=100,需要对i=1,2,3,.100进行循环验证:(演示:求约数倍数.frm)。(2)、求m的倍数i:(0n范围内)我们知道:i=m、2*m、3*m、.,k*m是m的倍数(k*m=n),我们可以对k作为循环变量进行循环(步长Step 1,K=1,2,3,4,.),k*m就是是m的倍数;但我们也可直接把i作为循环变量进行循环,这时i=k*m就是是m的倍数(步长Step m):(演示:求约数倍数.frm)。六、循环语句功能练习1、阅读理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高效离婚法律文书协议书定制服务合同
- 2025场地汽车租赁及场地停车管理合同范本
- 2025大酒店营养健康食品供应与研发合作协议范本
- 2025年度体育场馆场地租赁合同终止及更新协议书
- 2025年度电气安装与智能交通系统施工合同
- 2025二手商业地产租赁及买卖一体化协议样本
- 2025东莞“三旧”改造项目安全风险评估合同
- 2025二手房买卖合同补充协议书:房屋租赁权及使用权约定
- 2025版铁路货运物流信息化建设项目合同
- 2025年北京重点民生工程建筑施工合同约定
- GB/T 8982-2009医用及航空呼吸用氧
- GB/T 40565.3-2021液压传动连接快换接头第3部分:螺纹连接通用型
- 九年级历史下册-复习资料提纲
- FZ/T 01137-2016纺织品荧光增白剂的测定
- 高校辅导员培训PPT课件:班干部的选任与培训
- 分镜头脚本设计-课件
- 非参数统计课件
- 冀教版四年级数学下册小数进位加法说课稿
- 深锥沉降槽地面倒装工法
- (精选word)2019《普速铁路线路修理规则》
- 《信念永恒》(朗诵稿)
评论
0/150
提交评论