预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共39页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

程序设计语言的三种基本结构流程图: 循环结构 2.条件型循环(未知循环次数)一:For循环语句:计数型 (一般用于循环次数已知)Exitfor:当遇到该语句,退出循环,执行该循环的下一条语句。For循环流程图例:思考1:计算下列循环语句的次数。例4.9改变循环控制变量对循环的影响 PrivateSubCommand1_Click() j=0 Fori=1To20Step2 i=i+3 “有无此句结果有什么不同? j=j+1 Print"第";j;"次循环i=";i Nexti Print"退出循环后i=";i EndSub★:常用算法:累加,连乘例:连乘求自然数1-30的乘积(即30的阶乘)思考?若把循环体前面置各变量初值的语句放在循环体内,程序运行时会产生什么情况?二:Do…Loop循环语句:条件型 (用于控制循环次数未知)【说明】:DoWhile…Loop流程图例4.11:我国有13.2亿人口,按出生率为0.5%的增长率,多少年后超过20亿?例:迭代法求a的立方根。X=a1/3 迭代公式:Xn+1=1/3(2Xn+a/Xn2) 当‖Xn+1-Xn‖<e(一个很小的数)则Xn+1为a1/3的近似值。 迭代思想:是一个反复用新值取代旧值的过程。例4.12演示:求两自然数m,n的最大公约数和最小公倍数。求m=14,n=6的最大公约数和最小公倍数。方法二:辗转相减法求最大公约数例4.14:求自然对数e的近似值,要求其误差小于0.00001,近似公式为: e=1+1/1!+1/2!+1/3!+…+1/n!+… 该例题涉及两个问题: (1)用循环结构求级数和的问题。本例根据某项值的精度来控制循环的结束与否。 (2)累加:e=e+t (循环体外对累加和的变量清零e=0) (3)连乘:n=n*i (循环体外对连乘积变量置1n=1)(三)循环的嵌套例4.13演示:打印九九乘法表。打印上三角或下三角程序如何改动思考:语句形式四常见错误 1.不循环或死循环的问题 主要是循环条件、循环初值、循环终值、循环步长的设置有问题。 例如: ForI=10to20step–1 ForI=20to10 Dowhilefalse ForI=10to20step0 Dowhile1 2.循环结构中缺少配对的结束语句 For少配对的Next,do语句没有loop结束3.循环嵌套时,内外循环交叉,与IF块结构交叉 运行时显示“无效的Next控制变量引用” 例如:例如 ForI=1to4forI=1to4 Forj=1to5if表达式then ….…. NextInexti Nextjendif 4.累加、连乘时,存放累加、连乘结果的变量赋初值问题 (1)一重循环 在一重循环中,存放累加、连乘结果的变量初值设置应在循环语句前。(2)多重循环 这要视具体问题分别对待。 5大数相乘产生“溢出”问题 见实验P301-4.3★:常用算法:求素数★:常用算法:穷举法【分析】 设母鸡、公鸡、小鸡各为x、y、z只,根据题目要求,列出方程为: x+y+y=100 3x+2y+0.5z=100 三个未知数,两个方程,此题有若干个解。 解决此类问题采用“试凑法”,把每一种情况都考虑到。 方法一:最简单三个未知数利用三重循环来实现 方法二:从三个未知数的关系,利用两重循环来实现。★:常用算法:递推法【分析】:这是一个“递推”问题,先从最后一天推出倒数第二天的桃子,再从倒数第二天的桃子推出倒数第三天的桃子……。设第n天的桃子为xn,那么它是前一天的桃子数的xn-1的一半减1,即 xn=xn-1/2–1或者:xn-1=(xn+1)*2★:常用算法:求最大或最小值