循环结构程序设计课件_第1页
循环结构程序设计课件_第2页
循环结构程序设计课件_第3页
循环结构程序设计课件_第4页
循环结构程序设计课件_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VisualBasic程序设计第5章循环结构程序设计1第5章循环结构程序设计5.1循环结构程序设计的概念5.2Do…Loop语句5.3For…Next语句

5.4列表框与组合框5.5算法举例2循环程序设计的概念ch5-5.1循环是指在指定的条件下多次重复执行一组语句。被重复执行的一组语句称为循环体VB最常用的是For...Next和Do...Loop语句3前测型Do...Loop循环ch5-5.2.1格式:

Do[{While|Until}条件]

循环体

LoopDoWhile...Loop:当条件成立(为真)时,执行循环体;当条件不成立(为假时),终止循环

DoUntil...Loop(直到型循环):当条件不成立(为假)时,执行循环体,直到条件成立(为真)时,终止循环4前测型Do...Loop循环ch5-5.2.1【例5.1】求1到n的和。…

DoWhilei<=ni=i+1Sum=Sum+i

Loop

5前测型Do...Loop循环ch5-5.2.1【例5.2】求S=12+22+…+1002PrivateSubForm_Click()DimnAsInteger,sAsLongn=1:s=0

Do

While

s=s+n*n

n=n+1

LoopPrint"s=";sEndSubn<=100s=s+n*nn=n+1??6前测型Do...Loop循环ch5-5.2.1【例5.3】用DoWhile...Loop循环计算1到200的奇数和。PrivateSubCommand1_Click()DimSumAsInteger,iAsIntegerSum=0i=1

DoWhilei<=200

Sum=Sum+i

i=i+2

LoopPrint"1+3+5+...+199="&SumEndSubi<=200Sum=Sum+ii=i+27前测型Do...Loop循环ch5-5.2.1【例5.4】判断一个数是否是素数。

n=Val(Text1.Text):s=False:i=2

DoWhilei<=n^0.5AndNotsIfnModi=0Thens=TrueElsei=i+1EndIf

LoopIfNotsThenLabel1.Caption=n&"是素数!"ElseLabel1.Caption=n&"不是素数!"EndIf8后测型Do...Loop循环ch5-5.2.2语句格式如下:

Do

循环体

Loop[{While|Until}条件]

注意,本语句执行循环的最少次数为1,而前测型Do...Loop语句的最少次数为0(即一次都不执行循环)9后测型Do...Loop循环ch5-5.2.2【例5.5】

输入两个正整数,求它们的最大公约数“辗转相除法”算法:求出m/n余数p,若p=0,n即为最大公约数;若p非0,则把原来的分母n作为新的分子m,把余数p作为新的分母n继续求解10后测型Do...Loop循环ch5-5.2.2PrivateSubCommand1_Click()m=Val(Text1.Text):n=Val(Text2.Text)Dop=mModnm=nn=pLoopWhilep<>0Text3.Text=mEndSub11实例精解1.假定有如下事件过程:PrivateSubForm_Click()Dimxasinteger,nasintegerx=1n=0Dowhilex<28 x=x*3 n=n+1LoopPrintx,nEndSub程序运行后,单击窗体,输出结果是——。(2005.9)A)814B)563C)281D)243512实例精解2.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:PrivateSubCommand1_Click()DimnumAsIntegernum=1DoUntilnum>6 Printnum; num=num+2.4LoopEndSub程序运行后,单击命令按钮,则窗体上显示的内容是——。(2003.9)A)13.45.8B)135C)147D)无数据输出13For...Next循环语句ch5-5.3For循环的语法格式如下:For循环变量

=初值

To终值

[Step步长][循环体]Next[循环变量]14For...Next循环语句ch5-5.3步长:默认值为1。若步长为正数,应设初值≤终值;若步长为负数,应设初值≥终值,否则循环体不会被执行。步长不应为0,否则程序将陷入无限循环(死循环)。15For...Next循环语句ch5-5.3【例5.6】在窗体上显示2至10各偶数的平方数

PrivateSubForm_Click()DimkAsInteger

Fork=2To10Step2Printk*k

NextkEndSub16For...Next循环语句ch5-5.3【例5.7】用For循环结构显示1000以内的所有能被37整除的自然数PrivateSubCommand1_Click() DimnAsInteger,aAsString

Forn=37To1000Step37 a=a&n&vbCrLf

NextnEndSub17For...Next循环语句ch5-5.3【例5.8】求S=1+2+3+…+8PrivateSubForm_Click()s=0

Fork=1To8s=s+k

NextkPrint"s=";sEndSub18For...Next循环语句ch5-5.3【例5.9】求T=8!=1×2×3×…×8PrivateSubForm_Click()t=?

For

c=1To8t=t*c

NextcPrint"T=";tEndSubc=1To819For...Next循环语句ch5-5.3【例5.10】用π/4=1-1/3+1/5-1/7+……级数求π的近似值

(取前5000项进行计算)PrivateSubForm_Click()DimpiAsSingle,cAsInteger,sAsIntegerpi=0:s=1

For

c=1To10000Step2

pi=pi+s/cs=-s

NextcPrint"π=";pi*4EndSubc=1To10000Step220实例精解1.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:PrivateSubCommand1_Click() Forn=1to20 IfnMod3<>0thenm=m+n\3Nextn PrintnEndSub程序运行后,单击命令按钮,则窗体上显示的内容是A)15B)18C)21D)2421实例精解2.设有如下程序段: x=2 Fori=1to10Step2 x=x+i Next运行以上程序后,x的值是A)26B)27C)38D)5722实例精解3.执行下面的程序段后,变量S的值为_______. S=5 Fori=2.6to4.9Step0.6 S=S+1Nexti923实例精解4.设有如下程序: PrivateSubCommand1_Click() DimsumAsDouble,xAsDouble sum=0 n=0 Fori=1to5 x=n/i n=n+1 sum=sum+x Next EndSub该程序通过For循环计算一个表达式的值,这个表达式是A)1+1/2+2/3+3/4+4/5B)1+1/2+2/3+3/4C)1/2+2/3+3/4+4/5D)1+1/2+1/3+1/4+1/524多重循环多重循环是指循环体内含有循环语句的循环【例5.12】多重循环程序示例PrivateSubCommand1_Click()

Fori=1To3‘外循环

Forj=5To7’内循环

Printi,j

Nextj

Nexti

EndSub25多重循环【例5.13】打印“九九乘法表”。

26多重循环PrivateSubForm_Click()DimstrSAsString,iAsInteger,jAsInteger

ClsPrintvbCr;Tab(41);"九九乘法表"Print""&String$(89,"-")

Fori=1To9

'外循环变量i为乘法表的"行"Forj=1Toi'内循环变量j为乘法表的"列"

strS=i&"×"&j&"="&i*j

PrintTab((j-1)*10+3);strS;

Nextj

Print

Nexti

Print""&String$(89,"-")EndSub27循环出口语句用于提前退出循环格式:Exit{For|Do}

功能:直接从For循环或Do循环中退出

28循环出口语句【例】用“辗转相除法”求两个自然数m和n的最大公约数。Dop=mModnIfp=0Then

ExitDoEndIfm=nn=pLoopWhilep<>0Print“最大公约数是”:n29循环出口语句【例5.14】求100~200之间的素数。

分析:本题的求解可用双重循环实现,外循环遍历100~200之间的所有整数,内循环判断各数是否为素数。30循环出口语句For

n=100To200

'外循环遍历100~200所有整数

flag=True

For

i=2ToInt(Sqr(n))

‘内循环

IfnModi=0Then

‘若n能被i整除,非素数

flag=False

ExitFor'退出内循环

EndIfNextI

IfflagThen

'若

n为素数,显示(每行7个数)

Printn;

j=j+1

IfjMod7=0ThenPrint

EndIf

Next31循环出口语句PrivateSubCommand1_Click()DimmAsInteger,nAsInteger,rAsIntegerm=Val(Text1.Text)n=Val(Text2.Text)

'若数据超出有效范围,退出本过程

Ifm<=0Orn<=0ThenExitSubDo'求最大公约数

r=mModnm=nn=rLoopUntilr=0'r=0时退出循环

'退出循环时,m中存放的是最后的除数,即最大公约数

Label4.Caption="两数的最大公约数

="&mEndSub32实例精解1.阅读下面的程序:PrivateSubForm_Click()DimCheckasboolean,CounterAsIntegerCheck=TrueCounter=5Do DoWhileCounter<20 Counter=Counter+1 IfCounter=10Then Check=False ExitDo EndIf LoopLoopUntilCheck=FalsePrintCounterEndSub程序运行后,单击窗体,输出结果是——。(2005.4)1033列表框ch5-5.4.1列表框(ListBox)用于列出可供用户选择的项目列表,用户可从中选择一个或多个选项。

34列表框常用属性ch5-5.4.1常用属性

(1)List属性:该属性是一个字符型数组,用于存放列表框的表项数组的下标从0开始如图:List1.List(0)的值为“教授”

List1.List(1)的值为“副教授”35列表框常用属性ch5-5.4.1列表框中的项目可以在设计状态下通过属性窗口设定,一个项目为一行,且以组合键Ctrl+回车进行分行36列表框常用属性ch5-5.4.1(2)ListCount属性:返回列表框中表项的数(3)ListIndex属性:返回已选定表项的顺序号(索引)。若未选定任何项,则ListIndex的值为-1(4)Text属性:存放当前选定表项的文本内容(5)Selected属性:逻辑值,表示列表框中某一表项是否被选中列表框名.Selected(Index)=True|False(6)Sorted属性:设置列表框中各表项在运行时是否按字母顺序排列(7)MultiSelect属性:设置是否允许同时选择多个表项37列表框常用属性ch5-5.4.1例如,将列表框List1中的第3项复制到文本框Text1中:

Text1.Text=List1.List(2)例如,以下代码可以显示出所有被选择的项目:Fori=0ToList1.ListCount–1IfList1.Selected(i)=True

ThenPrintList1.List(i)EndIfNextI38列表框常用属性ch5-5.4.1(8)Style属性确定列表框的样式。取值为0(默认值)和1,如下左图所示。(9)Columns属性使用Columns属性可以创建多列列表框。如下右图所示。39列表框事件与方法ch5-5.4.1事件可接收Click、DblClick等事件方法(1)AddItem方法:用于把一个列表项加入列表框格式:[对象.]AddItem

列表项[,索引]举例:List1.AddItem"海南省",28(2)Clear和RemoveItem方法:用于删除列表项40列表框方法ch5-5.4.1

列表框对象.RemoveItem

索引号列表框对象.Clear41列表框举例ch5-5.4.1【例5.15】使用列表框显示城市名称,供用户选择,当单击“确定”按钮时,显示所选择的城市

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论