《Visual Basic语言程序设计教程(第二版)》课件第8章 循环.ppt

上传人(卖家):momomo 文档编号:7333410 上传时间:2023-11-28 格式:PPT 页数:43 大小:1.22MB
下载 相关 举报
《Visual Basic语言程序设计教程(第二版)》课件第8章 循环.ppt_第1页
第1页 / 共43页
《Visual Basic语言程序设计教程(第二版)》课件第8章 循环.ppt_第2页
第2页 / 共43页
《Visual Basic语言程序设计教程(第二版)》课件第8章 循环.ppt_第3页
第3页 / 共43页
《Visual Basic语言程序设计教程(第二版)》课件第8章 循环.ppt_第4页
第4页 / 共43页
《Visual Basic语言程序设计教程(第二版)》课件第8章 循环.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

1、概概 述述v 单击窗体,要求在窗体上显示单击窗体,要求在窗体上显示6 6行星号行星号&分析:分析:要求显示的信息是每行是由要求显示的信息是每行是由1616个星号所个星号所构成的字符串,所以可以通过连续构成的字符串,所以可以通过连续6 6次次调用窗体的调用窗体的PrintPrint方法实现图形的显示方法实现图形的显示Private Sub Form_Click()Private Sub Form_Click()Print Print*Print Print*Print Print*Print Print*Print Print*Print Print*End SubEnd Subs若要求显示若要

2、求显示10行或更多行这行或更多行这样的信息样的信息s若打印信息的行数要求是由若打印信息的行数要求是由用户决定用户决定J专门用于进行重复操作的语专门用于进行重复操作的语句结构句结构 概概 述述v所谓循环结构,表示在执行语句时,需要对其中的某个所谓循环结构,表示在执行语句时,需要对其中的某个或某部分语句重复执行多次。对于此类情况可以利用各或某部分语句重复执行多次。对于此类情况可以利用各种循环结构来实现。种循环结构来实现。v循环结构可以分为循环结构可以分为ForFor循环、循环、Do Do 循环和循环和WhileWhile循环语句循环语句结构。结构。8.1 Do 循环循环 前测型循环前测型循环结构结

3、构 语法格式:语法格式:True循环条件循环条件循环体循环体False 格式格式1(1(当型当型)Do WhileDo While 循环条件循环条件 循环体循环体 LoopLoopFalse循环条件循环条件循环体循环体True 格式格式2(2(直到型直到型)Do Do UntilUntil 循环条件循环条件 循环体循环体 LoopLoop当型循环是当循环条件为当型循环是当循环条件为TRUE时进入循时进入循环;直到型则是为环;直到型则是为FALSE进入循环。进入循环。8.1 Do 循环循环 后测型循环后测型循环结构结构 语法格式:语法格式:格式格式1(1(当型当型)DoDo循环体循环体Loop

4、WhileLoop While 循环条件循环条件 格式格式2(2(直到型直到型)DoDo 循环体循环体Loop Loop UntilUntil 循环条件循环条件循环条件循环条件循环体循环体TrueFalse循环条件循环条件循环体循环体False True前测型循环是前测型循环是先判断循环条件先判断循环条件,循环体执,循环体执行次数行次数0;后测型循环是后测型循环是先执行循环体先执行循环体,循,循环体执行次数环体执行次数1。8.1 Do 循环循环 前测型前测型当型循环:当型循环:将上面的代码改为将上面的代码改为前测型前测型直到型循环、后直到型循环、后测型测型当当型循环和后型循环和后测型测型直到型

5、循环。直到型循环。Dim i As Integer Dim i As Integer 定义计数器变量定义计数器变量i i来记录目前已输出的行数来记录目前已输出的行数 i=0i=0 Do WhileDo While i 6i 5i 5 Print Print*i=i+1 i=i+1 Loop Loop DoDo Print Print*i=i+1 i=i+1 Loop whileLoop while i 6i 5Until i 5 Val(InputBox(Val(InputBox(请输入行数:请输入行数:)注意:注意:在在循环体中循环体中,至少要有一条语句使得循环趋结束至少要有一条语句使得循环

6、趋结束,使使循环语句在有限的时间内执行完毕,否则将会出现循环语句在有限的时间内执行完毕,否则将会出现“死循环死循环”。&例例:求求S=1+(1+2)+(1+2+3+100)S=1+(1+2)+(1+2+3+100)的值。的值。编写代码:编写代码:Private Sub Command1_Click()Private Sub Command1_Click()Dim s As Long,n As Integer,k As Integer Dim s As Long,n As Integer,k As Integer Label1.Caption=s=1+(1+2)+(1+2+3)+.(1+2+3+

7、.100)=?Label1.Caption=s=1+(1+2)+(1+2+3)+.(1+2+3+.100)=?s=0:n=0:k=1 s=0:n=0:k=1 DoDo n=n+k n=n+k 求求“小和小和”,即求,即求s s中的每一项的和。中的每一项的和。s=s+n s=s+n 求求“大和大和”,即求,即求s s的累加和。的累加和。k=k+1 k=k+1 “大和大和”的项数的项数(亦即亦即“小和小和”中的末项值中的末项值)。Loop While k=100Loop While k=100 Label2.Caption=s=1+(1+2)+(1+2+3).+(1+2+3+.+100)=&s L

8、abel2.Caption=s=1+(1+2)+(1+2+3).+(1+2+3+.+100)=&sEnd SubEnd Sub8.1 Do循环循环UntilUntil8.1 Do 循环循环v 设计采用欧几里德算法求解两个设计采用欧几里德算法求解两个自然数的最大公约数的程序自然数的最大公约数的程序&算法分析:算法分析:“欧几里德算法欧几里德算法”输入两个自然数输入两个自然数m m、n n求求m m除以除以n n的余数的余数r rmnmnnrnr 若若 r 0r 0,则 重 复 执 行,则 重 复 执 行(循环循环),否则转,否则转输出输出m m和和n n的最大公约数的最大公约数m m输入两个自然

9、数输入两个自然数m,nr=m Mod nm=nn=rr0输出最大公约数输出最大公约数m开始开始结束结束FalseTrue8.1 Do 循环循环v 设计采用欧几里德算法求解两个设计采用欧几里德算法求解两个自然数的最大公约数的程序自然数的最大公约数的程序&界面设计:界面设计:利用利用文本框文本框来接收数据和显示来接收数据和显示结果,利用结果,利用命令按钮的单击事命令按钮的单击事件件完成最大公约数的计算。完成最大公约数的计算。False输入两个自然数输入两个自然数m,nr=m Mod nm=nn=rr0输出最大公约数输出最大公约数m开始开始结束结束TruePrivate Sub Command1_C

10、lick()Dim m As Integer,n As Integer,r As Integer m=Val(Text1.Text)n=Val(Text2.Text)End SubPrivate Sub Command2_Click()Text1.Text=Text2.Text=Text3.Text=End SubPrivate Sub Command3_Click()EndEnd SubPrivate Sub Command1_Click()Dim m As Integer,n As Integer,r As Integer m=Val(Text1.Text)n=Val(Text2.Text

11、)Do r=m Mod n m=n n=r Loop While r 0 Text3.Text=mEnd SubPrivate Sub Command2_Click()Text1.Text=Text2.Text=Text3.Text=End SubPrivate Sub Command3_Click()EndEnd Sub8.1 Do 循环循环v 设计一个小程序,能够实现设计一个小程序,能够实现接收若干的专家的考评打分,接收若干的专家的考评打分,输入输入-1-1表示打分结束,最后表示打分结束,最后计算出平均考评分计算出平均考评分&界面设计界面设计 :由于要接收的数据无由于要接收的数据无法预知其

12、个数,所以法预知其个数,所以不适合利用文本框来不适合利用文本框来接收数据,所以采用接收数据,所以采用输入函数输入函数InputBoxInputBox,结合循环实现结合循环实现 利用利用窗体的单击事件窗体的单击事件完成最大公约数的计完成最大公约数的计算,并在窗体上而显算,并在窗体上而显示结果示结果输入一个专家打分输入一个专家打分Mark总分累加总分累加Total=Total+Mark输出平均考评分输出平均考评分Average开始开始结束结束FalseTrue总考评分清零总考评分清零Total=0Mark-1输入下一个专家打分输入下一个专家打分MarkAverage=Total/Num考评分个数清

13、零考评分个数清零Num=0考评分个数累加考评分个数累加Num=Num+1Private Sub Form_Click()Dim Total As Single,mark As Single,average As Single Dim Num As Integer Total=0:Num=0 mark=Val(InputBox(请输入第请输入第&Num+1&个专家评分个专家评分(-1表示结束输入表示结束输入):)Do While mark -1 Total=Total+mark Num=Num+1 mark=Val(InputBox(请输入第请输入第&Num+1&个专家评分个专家评分(-1表示结

14、束输入表示结束输入):)Loop average=Total/Num MsgBox Num&个专家的平均分为:个专家的平均分为:&averageEnd Sub习习 题题1.1.依次在输入依次在输入5 5、4 4、3 3、2 2、1 1、-1,-1,输出结果是?输出结果是?Private Sub Command_ClickPrivate Sub Command_Click()()X=0X=0 Do Until x=-1 Do Until x=-1 a=Val(InputBox a=Val(InputBox(“请输入请输入A A的值的值”))b=Val(InputBox b=Val(InputBo

15、x(“请输入请输入B B的值的值”))x=Val(InputBox x=Val(InputBox(“请输入请输入X X的值的值”))a=a+b+x a=a+b+x print a print a Loop Loop End Sub End Sub习习 题题2.2.依次在输入依次在输入5 5、4 4、3 3、2 2、1 1、-1-1,输出结果为,输出结果为_ Private Sub Command_Click Private Sub Command_Click()()X=0X=0 Do Until x=-1 Do Until x=-1 a=Val(InputBox a=Val(InputBox(

16、“请输入请输入A A的值的值”))b=Val(InputBox b=Val(InputBox(“请输入请输入B B的值的值”))x=Val(InputBox x=Val(InputBox(“请输入请输入X X的值的值”))a=a+b+x a=a+b+x Loop Loop print a print a End Sub End Sub3.3.运行下列程序,单击窗体,则执行结果是()运行下列程序,单击窗体,则执行结果是()Private Sub Form_ClickPrivate Sub Form_Click()()s=0s=0 Do Do s=(s+1)s=(s+1)*(s+2)(s+2)Nu

17、mber=Number+1 Number=Number+1 Loop Until s=30 Loop Until s=30 Print Number Print Number;s s End Sub End SubA)0 1 B)30 30 C)4 30 D)3 182A)0 1 B)30 30 C)4 30 D)3 182习习 题题4.4.运行下列程序,单击窗体,则执行结果是()运行下列程序,单击窗体,则执行结果是()Private Sub Form_ClickPrivate Sub Form_Click()()b=1b=1 a=2 a=2 Do While b 10 Do While b

18、111 Loop While a 111 Print a Print a End Sub End Sub6.6.运行下列程序,单击窗体,则执行结果是运行下列程序,单击窗体,则执行结果是_ Private Sub Form_Click Private Sub Form_Click()()s=0s=0 i=1 i=1 Do While i=100 Do While i=100 If(i 5)If(i 5)*5=i Then 5=i Then s=s+1 s=s+1 i=i+1 i=i+1 End If End If Loop Loop Print s Print s End Sub End Sub

19、 习习 题题7.7.运行下列程序,单击窗体,则执行结果是运行下列程序,单击窗体,则执行结果是_ Private Sub Form_Click Private Sub Form_Click()()s=0s=0 i=1 i=1 Do While i=100 Do While i=100 If(i 5)If(i 5)*5=i Then 5=i Then s=s+1 s=s+1 End If End If i=i+1 i=i+1 Loop Loop Print s Print s End Sub End Sub 习习 题题8.2 While循环循环v语法格式:语法格式:这种结构使用完全类似于这种结构使

20、用完全类似于Do-LoopDo-Loop的当型循环的当型循环(格格式式1)1),表示当循环条件为,表示当循环条件为TrueTrue时,反复执行循环时,反复执行循环体,直到循环条件为体,直到循环条件为FalseFalse为止。为止。例如:求例如:求S=1+S=1+(1+21+2)+(1+2+1001+2+100)的值。)的值。程序代码:程序代码:Private Sub Command_Click()Private Sub Command_Click()Dim s as long,n as Integer,k as Integer Dim s as long,n as Integer,k as I

21、nteger s=0:n=0:k=1 s=0:n=0:k=1 While k=100 While k=100 n=n+k:s=s+n:k=k+1 n=n+k:s=s+n:k=k+1 Wend Wend Label2.Caption=“1+Label2.Caption=“1+(1+21+2)+(1+2+1001+2+100)=”&s=”&sv语法格式如下语法格式如下:For For 循环变量循环变量 =初值初值 to to 终值终值 step step 步长步长 执行语句执行语句 Next Next 循环变量循环变量 8.3 ForNext循环循环Truei 初值初值;为为负数负数时时,终值终值

22、 Max Then Max=grade If grade Max Then Max=grade Next i Next i Print Print Print Print 最高分为最高分为;Max;MaxEnd SubEnd Sub迭代法迭代法v 求多项式的值,直到最后一项求多项式的值,直到最后一项的绝对值小于的绝对值小于1010-6-6&分析:分析:方案方案2 2:通过找出通过找出前后累加项之间的关联前后累加项之间的关联,在,在前一次累加项的基础上递推出后一个累加项,从而实现前一次累加项的基础上递推出后一个累加项,从而实现t t的构造的构造.!87654321!211t41431321431

23、2*!ttnntnnnnnnnntnn23221211212121122121*)(*)(*)()(*)!()(!)(636535436523*!tt迭代法迭代法v 求多项式的值,直到最后一项的绝对值小于10-6Private Sub Form_Click()Private Sub Form_Click()n=1:t=1/2:Sum=t n=1:t=1/2:Sum=t 累加器等变量设置初始值累加器等变量设置初始值 Do Until Abs(t)10 (-6)Do Until Abs(t)10 (-6)累加到最后一项的绝对值小于累加到最后一项的绝对值小于10-610-6 n=n+1 n=n+1

24、第第n n个累加项个累加项 t=-t/(2 t=-t/(2*n-3)/(2 n-3)/(2*n)n)根据前一累加项构造根据前一累加项构造t t Sum=Sum+t Sum=Sum+t 累加累加 LoopLoopEnd Sub.!87654321素数问题素数问题v素数素数就是大家在数学中熟知的质数,即就是大家在数学中熟知的质数,即一个大于一个大于1 1且只且只能被能被1 1和它本身整除的整数和它本身整除的整数v输入一个正整数,判断该正整数是否为素数输入一个正整数,判断该正整数是否为素数&分析:分析:从素数的定义出发:既然素数除了从素数的定义出发:既然素数除了1 1和它本身之外,和它本身之外,不能

25、被任何数整除,那么就把待判断的数不能被任何数整除,那么就把待判断的数X X依次与除依次与除了了1 1和它本身之外的其他所有的数进行除,看是否有和它本身之外的其他所有的数进行除,看是否有整除的情况;若有,表示整除的情况;若有,表示X X不是素数,否则就是素数。不是素数,否则就是素数。除数的范围除数的范围i i从从2 2开始到开始到X-1(X-1(因为一个数不可能能整因为一个数不可能能整除比它自身大的数除比它自身大的数),由于要对这个范围内的每一个,由于要对这个范围内的每一个数都进行相同的重复除操作,所以使用循环数都进行相同的重复除操作,所以使用循环 素数问题素数问题v输入一个正整数,判断该正整数

26、是否为素数输入一个正整数,判断该正整数是否为素数Private Sub Form_Click()Private Sub Form_Click()Dim x As IntegerDim x As Integer x=Val(InputBox(x=Val(InputBox(请输入一个正整数请输入一个正整数:):)For i=2 To Sqr(x)For i=2 To Sqr(x)如果能被某个数据整除,如果能被某个数据整除,x x就不是素数,直接提前结束循环就不是素数,直接提前结束循环 If x Mod i=0 Then Exit ForIf x Mod i=0 Then Exit For Next

27、 i Next i If i=Sqr(x)Then If i=Sqr(x)Then 若若 i=Sqr(x)iSqr(x)iSqr(x),即,即说明说明x x是素数是素数 MsgBox CStr(x)&MsgBox CStr(x)&是素数是素数 End If End IfEnd SubEnd Sub穷举法穷举法v 编写编写“百元买百鸡百元买百鸡”的程序:鸡翁一值钱五;鸡母一值钱的程序:鸡翁一值钱五;鸡母一值钱三;鸡雏三值钱一。百钱买百鸡。请问鸡翁、鸡母、鸡雏三;鸡雏三值钱一。百钱买百鸡。请问鸡翁、鸡母、鸡雏各多少只?各多少只?Private Sub Form_Click()Private Sub Form_Click()Print Print 鸡翁鸡翁,鸡母鸡母,鸡雏鸡雏 For i=1 To 100 For i=1 To 100 For j=1 To 100 For j=1 To 100 k=100-i-j k=100-i-j If 5 If 5*i+3 i+3*j+k/3=100 Then j+k/3=100 Then Print i,j,k Print i,j,k End If End If Next j Next j Next I Next IEnd SubEnd Sub

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

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《Visual Basic语言程序设计教程(第二版)》课件第8章 循环.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

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


163文库-Www.163Wenku.Com |网站地图|