书签 分享 收藏 举报 版权申诉 / 102
上传文档赚钱

类型第05章循环结构程序设计课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:3860538
  • 上传时间:2022-10-19
  • 格式:PPT
  • 页数:102
  • 大小:350.27KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第05章循环结构程序设计课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    05 循环 结构 程序设计 课件
    资源描述:

    1、Visual Basic 第五章 循环结构程序设计四种基本结构结构化程序设计方法的四种基本结构:顺序顺序 分支分支 循环循环 过程(函数和子程序)过程(函数和子程序)仅使用四种基本的控制结构来编写程序。仅使用四种基本的控制结构来编写程序。每种控制结构只有一个入口和一个出口。每种控制结构只有一个入口和一个出口。循环结构 在实际工作中,经常遇到一些操作过程并不复杂,但又需要反复进行相同处理的问题,比如,统计本单位所有人员的工资,求全班同学各科的平均成绩等等。解决这些问题从逻辑上说并不复杂,但如果单纯用顺序结构来处理,那将得到一个非常乏味和冗长的程序。循环结构n ForNext 语句。语句。n Wh

    2、ileWend 语句。语句。n DoLoop 语句。语句。For循环语句语法:语法:For 循环变量初值循环变量初值 to 终值终值 Step 步长步长 语句块语句块Exit For循环体 语句块语句块 Next 循环变量循环变量其中:其中:循环变量,必须为数值型变量。初值、终值、步长,均为数值型表达式。省略Step子句则步长为1。For语句、Next语句中的循环变量必须相同。功能:功能:For:循环变量置初值、确定终值和步长。循环变量置初值、确定终值和步长。判断是进入循环还是跳过循环。判断是进入循环还是跳过循环。Next:实现循环变量:实现循环变量“增值增值”。判断是继续循环还是跳出循环。判

    3、断是继续循环还是跳出循环。循环终止条件:循环终止条件:循环变量的值沿变化方向沿变化方向“超过超过”终值终值。For循环语句For循环的流程图循环变量赋初值、循环变量赋初值、计算终值、步长。计算终值、步长。执行循环体执行循环体 循环变量超过终值?循环变量超过终值?循环变量增值循环变量增值For语句Next语句是是是是否否否否循环变量超过终值?循环变量超过终值?看几个简单的例子例例1:Dim i As IntegerFor i=1 To 5Print i,Next i注意:注意:在 For 语句中没有 Step 子句,缺省的步长是 1。循环变量 i 的变化方向是从小到大,“超过”终值指的是大于终值

    4、。让我们走一走程序让我们走一走程序 看几个简单的例子例例2:Dim i As IntegerFor i=5 To 1 Step -2Print i,Next i注意:步长不是 1,For 语句中不能省略 Step 子句。循环变量 i 的变化方向是从大到小,“超过”终值指的是小于终值。让我们走一走程序让我们走一走程序 看几个简单的例子例例3:Dim i As IntegerFor i=1 To 5 Step -3Print i,Next i循环体一次也不执行循环体一次也不执行!循环次数的计算 在For循环中,循环体的循环次数由初值、终值和步长三个表达式的值确定,计算公式为:循环次数循环次数=In

    5、t(终值终值-初值初值)/步长步长)+1 For循环主要用于循环次数已知循环次数已知或可以用一个表达用一个表达式计算式计算出来的题目中。循环变量的用法 循环变量的两个主要作用:用于控制循环的次数;用于控制循环的次数;用作数组元素的下标。用作数组元素的下标。先看一个例子:Dim i As IntegerFor i=1 TO 5Print i,i=i +1Next i让我们走一走 程序 一个原则在For循环的循环体中只引用循环变量的值;只引用循环变量的值;不改变循环变量的值。不改变循环变量的值。求 S=1+2+10题目分析:累加类型的题目,使用累加结构的赋值语句。程序如下:Dim s As Int

    6、eger,i As Integers=0For i=1 To 10s=s+iNext iPrint “S=”;s求 T=1*2*10题目分析:累乘类型的题目,使用累乘结构的赋值语句。程序如下:Dim t As Double,i As Integert=1For i=1 To 10t=t*iNext iPrint “T=”;tExit For 语句语法:语法:Exit For 功能:功能:退出当前循环。Exit For 语句一般与 If 语句一起使用。For i=If 逻辑表达式逻辑表达式 then Exit For Next i例题:例题:将1100间各奇数(1、3、5、7)顺序累加,直到其和

    7、大于100时为止。Dim s As Integer,i As Integers=0For i=1 To 100 Step 2s=s+iIf s 100 then Exit ForNext iPrint “S=”;sExit For 语句WhileWend语句语法:语法:While 逻辑表达式逻辑表达式循环体循环体Wend功能:功能:如果逻辑表达式的值为 True,则执行循环体,一直执行到 Wend 语句。然后再回到 While 语句,并再一次检查逻辑表达式的值,如果 还是为 True,则重复执行。如果不为 True,执行Wend语句的下一句。例题:例题:将1100间各奇数(1、3、5、7)顺序

    8、累加,直到其和大于100时为止。Dim s As Integer,i As Integers=0i=1While s 100 then Exit Doi=i+2LoopPrint “S=“;sDoLoop语句让我们走一走 程序DoLoop语句的三种主要用法:2、当型、当型Do循环循环Do While 逻辑表达式逻辑表达式循环体循环体Loop注意:注意:当型Do循环是前测试型,循环体有可能一次也不执行。DoLoop语句DoLoop语句例题:例题:将1100间各奇数(1、3、5、7)顺序累加,直到其和大于100时为止。Dim s As Integer,i As Integers=0:i=1Do W

    9、hile s 100Print “S=“;s让我们走一走程序循环的五种结构n For If 型循环型循环n While Wend 型循环型循环n Do If 型循环型循环n 当型当型 Do 循环循环n 直到型直到型 Do 循环循环For If 型循环For 循环变量初值循环变量初值 to 终值终值 Step 步长步长 If 逻辑表达式逻辑表达式 Then Exit For Next 循环变量循环变量WhileWend 型循环While 逻辑表达式逻辑表达式WendDo If 型循环DoIf 逻辑表达式逻辑表达式 Then Exit DoLoop当型 Do 循环Do While 逻辑表达式逻辑表

    10、达式Loop直到型 Do 循环DoLoop Until 逻辑表达式逻辑表达式循环的嵌套 在一个循环体内又包含了一个完整的循环,这样的结构称为多重循环或循环的嵌套。在程序设计时,许多问题要用二重或多重循环才能解决。For循环、循环、While循环、循环、Do循环循环都可以互相嵌套。都可以互相嵌套。多重循环的执行过程是外循环执行一次,内循环执行一遍,在内循环结束后,再进行下一次外循环,如此反复,直到外循环结束。循环嵌套的规则只许嵌套,不许交叉;只许嵌套,不许交叉;只许转出,不许转入。只许转出,不许转入。For ii=1 To 10 For jj=1 To 20 Next ii Next jj Fo

    11、r ii=1 To 10 For ii=1 To 20 Next ii Next ii For ii=1 To 10 For jj=1 To 20 Next jj Next ii For ii=1 To 10 Next ii For ii=1 To 10 Next ii 循环嵌套的规则 一个简单的二重循环Dim i As Integer,j As IntegerFor i=1 To 4 Print,For j=1 To 4 Print i;j,Next j Print Next i 一个简单的二重循环打印九九乘法表打印九九乘法表Private Sub Form_Click()()Dim i A

    12、s Integer,j As Integer,str As StringPrint:Print:Print Print Tab(40);九九乘法表九九乘法表“:PrintFor i=1 To 9Print Tab(6);For j=1 To 9 str=i&j&=&i*j Print Tab(j 1)*9+6);str;Next j:PrintNext iEnd Sub有一个问题81次!次!记住:记住:内循环的执行次数内循环的执行次数外循环的循环次数内循环的循环次数外循环的循环次数内循环的循环次数内循环总共执行了多少次?内循环总共执行了多少次?1、Go To 语句语句 形式形式:Go To 标

    13、号|行号 作用:无条件地转移到标号或行号指定的语句。标号是一个标识符,行号是一个整数。2、Exit 语句语句 多种形式:Exit For、Exit Do、Exit Sub、Exit Function 等。作用:退出某种控制结构的执行。3、End 语句语句 多种形式:End、End If、End Select、End With、End Type、End Sub、End Function 等。作用:End 结束一个程序的运行;其余表示某个结构的结束,与对应的结构语句配对出现。其他辅助控制语句With语句语法:语法:With 对象名对象名 语句块语句块 End With功能:功能:对某个对象执行一系

    14、列的操作,而不用重复对象名称。With Label1.Height=200Label1.Height=200.Width=200Label1.Width=200.FontSize=22Label1.FontSize=22.Caption=MyLabelLabel1.Caption=MyLabelEnd With循环习题课程序设计三剑客 穷举法穷举法 递推法递推法 迭代法迭代法穷举法穷举法的基本思路:穷举法的基本思路:穷举所有可能出现的情况,逐一进行测试,判断其是否满足给定的条件。穷举法实现的关键:穷举法实现的关键:建立正确的穷举,一般用循环来实现。注意:注意:1、有意义的选项,一项不能少一项不

    15、能少。2、尽量排除无意义的选项,以减少循环的次数。递推法递推法的基本思路:递推法的基本思路:利用已知的一项或多项数据,推算出新的数据项。然后,再利用这个新的数据项推算出下一个数据项。重复此过程,直到推算出最后结果时为止。递推法实现的关键:递推法实现的关键:确定递推初值;确定递推初值;建立递推公式。建立递推公式。递归法递归的概念:递归的概念:递归定义递归定义 对象利用自己定义自己。递归调用递归调用 过程或函数自己调用自己。递归调用又分为:直接递归调用直接递归调用 过程或函数直接调用自己。间接递归调用间接递归调用 过程或函数通过其它过程或函数调用自己。注意:注意:递归调用一般要用 if 语句来进行

    16、控制,使递归过程到某一条件满足时结束。递归法的基本思路:递归法的基本思路:递归法类似于数学证明中的反推法,一般是从结果出发,归纳出后一结果与前一结果的关系,寻找其规律性。递归法实现的关键:递归法实现的关键:建立递归函数;建立递归函数;确定递归终止条件。确定递归终止条件。递归法题型:累加题目:求题目:求 S=1+2+3+10。程序如下:Dim s As Integer,i As Integers=0For i=1 To 10s=s+iNext iPrint “S=”;s题型:累加题目:求题目:求 S=1+2+2+3 +18+19+19+20。程序如下:Dim s As Integer,i As

    17、Integers=0For i=1 To 19s=s+i+(i+1)Next iPrint “S=”;s题型:累加题目:求题目:求1001991.4131211S程序如下:Dim s As Double,i As Integer,t AS Integers=0:t=-1For i=1 To 100t=t*-1s=s+t/iNext iPrint “S=”;s题型:累乘题目:求题目:求 T=1*2*3*10。程序如下:Dim t As Double,i As Integert=1For i=1 To 10t=t*iNext iPrint “T=”;t题型:累乘1110.433221T题目:题目:

    18、程序如下:Dim t As Double,i As Integert=1For i=1 To 10t=t*i/(i+1)Next iPrint “T=”;t题型:累加累乘程序的基本架构:程序的基本架构:s=0:t=For i=程序段,将程序段,将 t 置为下一项的值置为下一项的值s=s+tNext iPrint “S=”;s题型:累加累乘题目:求题目:求 S=1!+2!+3!+10!。程序如下:Dim s As Long,t As LongDim i As Integer,j As Integers=0For i=1 To 10t=1For j=1 To it=t*jNext js=s+tNe

    19、xt iPrint S=;s题型:累加累乘题目:求题目:求 S=1!+2!+3!+10!。使用递推法来做:使用递推法来做:1、确定递推初值、确定递推初值T 12、建立递推公式、建立递推公式N项(项(N1)项)项n题型:累加累乘题目:求题目:求 S=1!+2!+3!+10!。程序如下:Dim s As Long,t As Long,i As Integers=1:t=1 For i=2 To 10 t=t*i s=s+t Next i Print S=;s例题:求例题:求 S=20+21+22+2n,n=63。递推初值:20=1。递推公式:n项项=(n-1)项项*2。Dim s As Doubl

    20、e,t As Double,i As Integers=1 :t=1For i=1 To 63t=2i/t*2s=s+tNext iPrint S=;s题型:累加累乘 题型:判断m能否被n整除注意 VB 中两个独特的算术运算符:Mod取余取余整除整除例如:10 Mod 3运算结果 110 3运算结果 3判断判断 m 能否被能否被 n 整除的方法:整除的方法:m Mod n 0 题型:判断m能否被n整除例题:例题:求出 100 以内所有能被 3 和 4 同时整除的数。程序如下:Dim i As Integer For i=1 To 100 If i Mod 3=0 And i Mod 4=0 T

    21、hen Print i;Next i例题:例题:求20002050年之间的所有闰年。闰年的条件是:(1)能被4整除,但不能被100整除的年份是闰年;(2)能被100整除,又能被400整除的年份是闰年。程序如下:程序如下:Dim i As IntegerFor i=2000 To 2050If i Mod 4=0 And i Mod 1000 Then Print i;If i Mod 100=0 And i Mod 400=0 Then Print i;Next i 题型:判断m能否被n整除 VB的取子串函数语法:语法:Left(串表达式串表达式,n)函数值功能:功能:取字符串左边 n 个字符

    22、。示例:示例:Left(“ABCDEFG”,3)“ABC”语法:语法:Mid(串表达式串表达式,n1,n2)功能:功能:在字符串中从 n1 开始向右取 n2 个字符。示例:示例:Mid(“ABCDEFG”,2,3)“BCD”语法:语法:Right(串表达式串表达式,n)功能:功能:取字符串右边 n 个字符。示例:示例:Right(“ABCDEFG”,3)“EFG”题型:打印图形 题型:打印图形Private Sub Form_Click()Dim s As String*8,i As Integer s=*Print:Print For i=1 To 8 Print Tab(10+i);s N

    23、ext iEnd Sub 题型:打印图形分析:1)首先确定图形中心线位置第20个字符处。2)将第 n 行的起始打印位置,表示为行号 n 的函数,起始打印位置=F(21-n)。3)将第 n 行打印星号的个数,表示为行号 n 的函数,星号个数=F(2*n-1)。4)可先将一个有十五个星号的字符串赋给串变量 S,打印时取其子串输出。题型:打印图形程序如下:Private Sub Form_Click()Dim s As String,i As Integer s=*For i=1 To 8 Print Tab(21 i);Left(s,2*i 1)Next iEnd Sub 题型:打印图形 题型:打

    24、印图形程序如下:Private Sub Form_Click()Dim s As String,i As Integer s=0123456789 Print:Print For i=1 To 10 Print Tab(21-i);String(2*i-1,Mid(s,i,1)Next iEnd Sub 题型:打印图形 题型:打印图形程序如下:Private Sub Form_Click()Dim i As Integer Print:Print For i=1 To 10 Print Tab(21-i);String(2*i-1,Chr(47+i)Next iEnd SubVB中的取整函数语

    25、法:语法:Int(数值表达式)Fix(数值表达式)Round(数值表达式,小数点右边应保留的位数)功能功能:1)如果数值表达式的值为正,Int 和 Fix 都会删除其小数部份而返回剩下的整数。2)如果数值表达式的值为负,则 Int 返回小于或等于其值的第一个负整数,而 Fix 则会返回大于或等于其值的第一个负整数。3)Round将数值表达式的值四舍五入到 n 位小数。例如:例如:Int(3.4)3Fix(3.4)3Int(-3.4)-4Fix(-3.4)-3Round(-3.3456,1)-3.3Round(-3.3456,2)-3.35VB中的取整函数034-3-4题型:分拆数字例题:例题:

    26、求0999之间所有的“水仙花”数。例如:例如:153=13+53+33。Dim i As Integer,a As Integer,b As Integer,c As IntegerFor i=0 To 999a=Int(i/100)b=Int(i-a*100)/10)c=i-a*100-b*10If i=a*a*a+b*b*b+c*c*c Then Print i;Next i题型:分拆数字思考题思考题 求1100之间所有的“同构数”。“同构数”是这样一种数:它出现在它的平方数的右端。例如:5的平方是25,5是25中右端的数,5就是同构数。25也是一个同构数,它的平方是625。题型:数列例题

    27、:例题:求裴波那契数列 1,1,2,3,5,8,的前20项。递推初始条件:F1=1,F2=1。递推公式:Fn=Fn-2+Fn-1。递推过程:a=1b=1c=2a=1b=2c=3a=2b=3c=5例题:例题:求裴波那契数列 1,1,2,3,5,8,的前20项。Dim a As Integer,b As Integer,c As Integer a=1 :b=1 Print a;b;For i=3 To 20 c=a+b Print c;a=b :b=c Next i题型:数列例题:例题:求e,直到前后两项之差小于104为止。Dim e As Double,m1 As Double,m2 As D

    28、ouble,n As Integere=2:m2=1:n=1Don=n+1m1=m2m2=m1/ne=e+m2Loop Until m1-m2 0.0001Print e=;e!1.!31!21!111ne 题型:级数例题:例题:求 S=20+21+22+2n,n=63。递推初值:20=1。递推公式:n项项=(n-1)项项*2。Dim s As Double,t As Double,i As Integers=1 :t=1For i=1 To 63t=t*2s=s+tNext iPrint S=;s第一步:求出通项公式求出通项公式。第二步:求出第求出第 n 项与项与 n-1 项之比项之比 k。

    29、第三步:建立递推公式:建立递推公式:n 项项=k*(n-1)项项。题型:级数例题:例题:求 Sin(x)=x/1 x3/3!+x5/5!x7/7!+,n=20。第一步,通项公式。第n项=第二步,第n项与n-1项之比。k=第三步,递推公式。n项=(n-1)项)!12()1(121nxnn)12)(22()1(2nnx)12)(22()1(2nnx 题型:级数Dim SinX As Double,x As Double,t As DoubleDim i As Integer x=InputBox(“X=”,“输入框输入框)SinX=x :t=x For i=2 To 20 t=t*(-1)*x*x

    30、/(2*i-2)/(2*i-1)SinX=SinX+t Next i Print x=;x,Sin(x)=;SinX 题型:级数随机函数Rnd函数函数语法:语法:Rnd功能:功能:Rnd函数返回均匀分布在 0,1)区间上的随机数,类型为Single。(0 Rnd 1)Randomize语句语句语法:语法:Randomize功能:功能:利用系统计时器的值初始化随机数生成器。随机函数Dim i As Integer Print:Print For i=1 To 50 If i Mod 5=0 Then Print Round(Rnd,4)Else Print Round(Rnd,4),End If

    31、 Next i随机函数 两次运行程序得到的随机数,其序列是相同的。随机函数Dim i As Integer Print:PrintRandomize随机函数初始化语句随机函数初始化语句 For i=1 To 50 If i Mod 5=0 Then Print Round(Rnd,4)Else Print Round(Rnd,4),End If Next i随机函数 第一次运行程序得到的随机数:第二次运行程序得到的随机数:随机函数使用以下公式可产生均匀分布在某个区间上的随机整数:Int(UpperBound-LowerBound+1)*Rnd+LowerBound)这里,UpperBound

    32、是随机数范围的上限,而 LowerBound 是随机数范围的下限。例如:0,10Int(11*Rnd)100,120Int(21*Rnd+100)10,99Int(90*Rnd+10)随机函数随机函数题目:利用随机函数求。(辅助图形:1/4 单位圆)1,10,0随机函数1/4 单位圆的面积:R*R*/41*1*/4单位正方形的面积:1*11另外:落在圆内的点数落在圆内的点数m,总点数,总点数n因此:4*m/n随机函数Dim m As Long,n As Long,i As Long Dim x As Single,y As Single n=InputBox(N=,输入对话框输入对话框):m=

    33、0 For i=1 To n x=Rnd:y=Rnd If x*x+y*y n;(2)m 除以 n 得余数 r;(3)若 r=0,则 n 为最大公约数,结束;否则执行(4);(4)m n,n r,再重复执行(2)。求最小公倍数的算法:求最小公倍数的算法:原始的 m 和 n 的乘积除以最大公约数,就得到它们的最小公倍数。最大公约数和最小公倍数MNR1293MNR930 最大公约数和最小公倍数Private Sub Command计算计算_Click()Dim m As Integer,n As Integer,r As Integer m=TextM.Text n=TextN.Text If m

    34、 n Then r=m m=n n=r End If 最大公约数和最小公倍数 r=m Mod n Do While(r 0)m=n n=r r=m Mod n Loop Label最大公约数最大公约数.Caption=最大公约数最大公约数=&n r=n:m=TextM.Text :n=TextN.Text Label最小公倍数最小公倍数.Caption=最小公倍数最小公倍数=&m*n/rEnd Sub 最大公约数和最小公倍数百钱买百鸡例题:例题:鸡翁一、值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?For x=0 To 100 For y=0 To 100 For z=0 To 100 If x+y+z=100 And 5*x+3*y+z/3=100 Then Print x,y,z End If Dim x As Integer,y As Integer,z As Integer Print cock,hen,chick For x=0 To 19 For y=0 To 33 z=100-x-y If 5*x+3*y+z/3=100 Then Print x,y,z End If Next y Next x百钱买百鸡

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第05章循环结构程序设计课件.ppt
    链接地址:https://www.163wenku.com/p-3860538.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库