收藏 分享(赏)

第6章 循环结构.ppt

上传人:tkhy51908 文档编号:8010109 上传时间:2019-06-04 格式:PPT 页数:34 大小:223KB
下载 相关 举报
第6章  循环结构.ppt_第1页
第1页 / 共34页
第6章  循环结构.ppt_第2页
第2页 / 共34页
第6章  循环结构.ppt_第3页
第3页 / 共34页
第6章  循环结构.ppt_第4页
第4页 / 共34页
第6章  循环结构.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、,计算机应用教研室,第06章 循环结构,主讲教师:董小艳 联系电话:87092417,计算机基础与操作,2,引例: 1. 编程计算1+2+3+4+5+6+7+8+9+10的值。2. 编程计算1+2+3+100的值。,Dim s As Integer s = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 Print s,很显然,用上道题的方法来求解这道题,编写程序将会非常的麻烦。,计算机基础与操作,3,主要内容,6.1 For-next 循环结构6.2 Do while循环结构6.3 循环的嵌套6.4 算法举例6.5 DO循环的其它结构,计算机基础与操作,4,6.

2、1 for-next 语句,1.格式For 循环变量=初值 To 终值 Step 步长语句序列()Next 循环变量2.说明 循环变量必须是数值型,且最好为整型数。 当步长为正时,初值必须小于终值,当步长为负时,初值必须大于终值,循环才能进行。当步长为1时,“Step 1”可以省略。 正常退出循环的情况下,ForNext循环的循环次数可以用公式算出来,For i = 1 To 10 step 1Print i Next i,For i = 1 To 10 Step 1Print i Next i,For i = 10 To 1 Step -1Print i Next i,计算机基础与操作,5,

3、例1 求S=1+2+3+100分析:这是求100个数的累和问题,可用S=S+X句型,让这个句型重复100次,让x的取值分别为、2、3100。重复语句是s=s+x, 将其作为循环体,控制循环变量取值为1 到100即可实现求100个数累和,x = 1 s = s + x x = 2 s = s + x x = 3 s = s + x . x = 100 s = s + x,计算机基础与操作,6,例2 求S=1+1/2+1/3+1/100分析:这也是求累和问题,可套用S=S+X句型,让S=S+X重复100次,让i取值1到100即可实现求和。这里的X=1/i求S=12345100S=1+(2)(4)(

4、100)分析:这也是求100个数的累和问题,可用S=S+X句型,让这个句型重复100次,让x的取值分别为,即可完成求100个数的累和。课堂练习:求S=1 1/100,计算机基础与操作,7,例3 求100!分析:求N!是求累乘操作,可通过多次重复乘操作完成,这里我们让N取值分别为1 到 N,重复P=P*I操作即可完成.思考:求P=1*3*5*。*(2*N1),i = 1: p = 1:p = p * i i = 2: p = p * i i = 3: p = p * i . i = 100: p = p * I,计算机基础与操作,8,例4 求1!+2!+3!+。+100!分析:这是一个求累和问题

5、,可用到句型S=S+X,其中每一项又是一个阶乘,求每一项可用句型P=P*I句型。也就是说,重复的句型为:P=P*I S=S+P,计算机基础与操作,9,例5 求下列数列的前n项和2/1, 3/2, 5/3,8/5,13/8,分析: 求累和可用s=s+x句型,可发现该数列有如下规律xn=1/xn-1+1,利用该规律可计算出xn的值,计算机基础与操作,10,例6 找出1-1000之间的同构数如果一个数出现在其平方数的右端,则称其为同构数。例如5和25以及376都为同构数分析:对1到9可取出其平方数的右边一位数与这个数比较,若相等则为同构数。10到99之间可取出平方数的右边两位数与这个数比较,如果相等

6、则为同构数100到999之间可取出平方数的右边三位数与这个数比较,若相等则为同构数,计算机基础与操作,11,例 用pset方法实现画一条纵坐标为500横坐标范围为500到1000的一条线分析:画线可通过重复画点实现,重复操作可通过循环实现思考:画五色线课堂练习: 输出100到200之间能被3整除的数, 要求每行输出10个提示: 判断能被3整除可用 i mod 3=0表示,可用j表示能被3整除的个数,如果j能被10整除,就换行,换行可通过空print语句。,计算机基础与操作,12,6.2 Do while Loop循环结构,1.格式 Do while (条件)语句序列(循环体)Loop 2.说明

7、(1)条件为循环执行条件,可以是关系表达式、布尔表达式或数值表达式。如果以数值表达式作为条件,则非0为真,0为假。语句序列为执行循环的循环体(2)在循环体中必须有一条语句改变循环变量的值,使得在某一时刻循环变量不满足条件而退出循环。,i = 1 Do While i = 100s = s + i Loop,计算机基础与操作,13,例1. S=1+2+3+100分析:这是求100个数的累和问题,可用累和句型s=s+x,要控制x既i取值为1、2、3100,可通过给i赋初值为1,设置条件i=100,且i= i+1实现S=1+1/2+1/3+。+1/N这是求累和问题,可套用S=S+X句型,这里的X=1

8、/i,要控制i取值为1、2、3n可通过赋初值为1,循环条件为I=,且i=i+1实现S=12345100S=1+(2)3+(4)5+(100),计算机基础与操作,14,例2 求!分析:求!既是求到这个数的累乘,需用到求累乘句型,让这个句型重复N次,让i取值分别为1到N即可完成求N个数的累乘。可通过给i赋初值为1,设置循环条件为i=n且i=i+1实现求 1!+2!+3!+。+100!分析:这是一个求累和问题,可用到句型S=S+X,其中每一项又是一个阶乘,求每一项可用句型P=P*I句型。也就是说,重复的句型为:P=P*I S=S+P,计算机基础与操作,15,例3 如果我国人口以每年平均1.5%的速度

9、增长,问多少年后我国人口达到或超过18亿,设现在我国人口为13亿。分析:用计算机解此问题的方法是在13亿的基础上连续累乘(1+0.015),当大于或等于18亿时停止,统计乘了多少次即可,因此就要用到乘法模型“p=p*i”和统计要用计数语句n=n+1。,计算机基础与操作,16,例4 s=11*22*33*nn,求s不大于400000时最大的n分析:这是一个求累乘操作,可用句型s=s*n设置循环条件为s=400000,循环终止后n-1即为所求课堂练习:设p=1*2*3*n ,求p不大于400000时的最大的n,计算机基础与操作,17,例5 求自然对数的近似值,要求误差小于10-4,近似公式为分析:

10、这是一个求累和问题,可用s=s+x句型完成其中每一项为阶乘分之一,可用f=f/i句型求得,计算机基础与操作,18,6.3 嵌套,循环可嵌套,.如一个 FOR语句可套用一个FOR语句, 如一个DO语句可套用一个DO语句, 如一个 FOR语句可套用一个DO语句注意: 内外嵌套不能交叉,外层要完全包含内层。 在循环嵌套中,内外循环的循环变量不能同名。,FOR I=1 to 5FOR J=1 to 5 NEXT I NEXT J,For i = 1 To 10For i = 1 To 5Next i Next i,计算机基础与操作,19,例 打印九九乘法表,如果要输出 11=1如果要输出 11=1 1

11、2=2 13=3 .19=9如果要输出 11=1 12=2 13=3 .19=921=2 22=4 23=6 .29=1891=9 92=18 93=27 .99=81,计算机基础与操作,20,例 输出如下图形000000000000000000000000000000.000000000000分析:每一行0的个数是行数的2倍,且每一行都比它前面一行输出起点向前措一位,计算机基础与操作,21,例 求出所有小于等于100的自然对数自然对数是指两个自然数的和与差都是平方数。例8和17称自然对数。 分析:假设用m和n代表两个要判断的数(假设m大于n),则其和为s=m+n,d=m-n,只要sqr(s)

12、=int(sqr(s) sqr(d)=int(sqr(d)则这两个数即为自然对数例 画实心矩形分析:一层for循环可画一条线,二层循环可画一个矩形思考:画五色矩形,计算机基础与操作,22,6.4 算法举例,1.求最大数和最小数键盘键入10个数,找出其中最大值分析:用inputbox输入这组数,引入一个变量max存放最大数,假定第一个数最大,将它赋值给max。让max与其余的数比较,如发现有比它大的就把这个数赋值给max,保证max放的是两两比较的较大数。重复这个操作直到max与所有的数比较完,则max放的就是这一组数的最大数。课堂练习 键盘键入10个数,找出其中最小数提示: 引入变量min存放

13、最小数,假定第一个数最小,将它赋值给min,让min与其余的数比较,如发现有比它小就把这个较小数赋值min,保证min里放的是这两两比较的较小数。重复这个操作直到min与所有数比较完,则min放的就是这一组数的最小数,计算机基础与操作,23,2.判断一个数是不是素数。素数是除了1和它本身以外不能被任何数整除分析:设这个数为m,我们让2m1每一个数都整除它,如果所有的数都不能被它整除,则为素数。否则,只要发现有一个数能被它整除,则为非素数。这里我们可以用一个标志变量FLAG设为布尔型,FLAG为TRUE,表示它是素数,FLAG为FALSE,表示它为非素数。这里重复操作为判断整除操作,重复次数为m

14、-2次。,计算机基础与操作,24,3. 求两个数的最大公约数和最小公倍数。分析:求最大公约数可用辗转相除法。这种方法用自然语言描述如下:(24,38)1)输入、,2)以为被除数,为除数,求得余数为3)若0 ,将赋给M,将赋给,继续用除以,直到R=0为止4)这时的N即为所求最小公倍数为两个数的乘积除以最大公约数,计算机基础与操作,25,4.求数列求数列一般给出初始几项(或最后几项),再给出推导公式(或规律)。斐波那契(Fibonaccii)数列。已知一个数列的前两项均为1,从第三项开始,每一项为其前两项之和,求这个数列的前20项,计算机基础与操作,26,6.5 Do 语句其他结构,1.Do lo

15、op 格式:Do语句组Loop注意:这是一种无条件的循环结构,在这个结构中必须加入exit do 语句,否则会出现死循环。,计算机基础与操作,27,例 求s=1+2+3+100分析:这是求100个数的累和问题,可用累和句型s=s+x,要控制x既i取值为1、2、3100,可通过给i赋初值为1,并i=i+1,且在循环加入if i100 then exit do,这样就可以求前100个数的累和。,计算机基础与操作,28,2. Doloop while格式: Do语句组Loop while 特点:先执行一次循环体,再判断循环条件,条件成立继续执行循环体,否则退出循环,计算机基础与操作,29,例 求s=

16、1+2+3+100 分析:这是求100个数的累和问题,可用累和句型s=s+x,要控制x既i取值为1、2、3100,可通过给i赋初值为1,循环条件为i=100,且i=i+1,这样就可以求出前100个数的累和,计算机基础与操作,30,3. Do until loop 格式:Do until 语句组Loop 特点:这里的条件循环退出的条件,先判断循环条件,条件不成立,执行循环,条件成立退出循环,计算机基础与操作,31,例 求s=1+2+3+100 分析:这是求100个数的累和问题,可用累和句型s=s+x,要控制x既i取值为1、2、3100,可通过给i赋初值为1,循环条件为i100,且i=i+1,这样

17、就可以求出前100个数的累和,计算机基础与操作,32,4. Do loop until 格式:Do 语句组Loop until 特点:先执行循环体,后判断条件,条件不成立执行循环,条件成立退出循环。,计算机基础与操作,33,例 求s=1+2+3+100 分析:这是求100个数的累和问题,可用累和句型s=s+x,要控制x既i取值为1、2、3100,可通过给i赋初值为1,循环条件为i100,且i=i+1,这样就可以求出前100个数的累和,计算机基础与操作,34,实习报告题目:第6章 循环结构实习目的:见实习指导书实习内容:自定,必须包括程序代码,实验数据,预测结果,实习结果,调试痕迹(红笔标识)实习总结、收获、体会:,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报