VB-第5章-选择循环_第1页
VB-第5章-选择循环_第2页
VB-第5章-选择循环_第3页
VB-第5章-选择循环_第4页
VB-第5章-选择循环_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

第五章VB的基础结构世界会向那些有目标和远见的人让路

第五章VB的基础结构世界会向那些有目标和远见的人让路复习:三种基本结构

基本算法结构顺序结构分支结构2编辑ppt复习:三种基本结构

基本算法结构顺序结构分支结构2编辑pp当型循环直到型循环基本算法结构3编辑ppt当型循环直到型循环基本算法结构3编辑ppt选择结构1循环结构2示例3本章内容4编辑ppt选择结构1循环结构2示例3本章内容4编辑ppt第一节选择结构勇于开始,才能找到成功的路。

第一节选择结构勇于开始,才能找到成功的路。主要内容选择结构一、If-else语句双分支单分支多分支二、SelectCase语句多分支6编辑ppt主要内容选择结构一、If-else语句6编辑ppt一、If-else语句语句形式1:

If

<表达式>

Then

<语句块1>

Else

<语句块2>

EndIf双分支结构Ifx>0thenPrint“x是正数”ElsePrint“x是负数”EndifPrint“测试完毕”演示7编辑ppt一、If-else语句语句形式1:

一、If-else语句语句形式2:

If

<表达式>

Then<语句块1>else<语句块2>双分支结构Ifx>0thenPrint“x是正数”elseprint“x是负数”演示8编辑ppt一、If-else语句语句形式2:

一、If-else语句语句形式1:

If

<表达式>

Then

<语句块1>

endIf单分支结构Ifx>0thenPrint“x是正数”EndifPrint“测试完毕”演示9编辑ppt一、If-else语句语句形式1:

一、If-else语句语句形式2:

If

<表达式>

Then<语句块1>单分支结构Ifx>0ThenPrint“x是正数”演示说明:表达式一般为关系表达式、逻辑表达式,也可以为算术表达式,非0为True,0为False;语句块可以是一句或多句,若用2)表示,则只能是一句语句,若多句,语句间需用冒号分隔,而且必须在一行上书写。10编辑ppt一、If-else语句语句形式2:

举例例:已知两个数x和y,比较它们的大小,并交换,使得x大于y:方法一:if

x<y

then

t=x

x=y

y=t

endif

方法二:

if

x<y

then

t=x:x=y:y=t注意:将两个变量中的数进行交换时,必须借助于第三个变量才能实现。11编辑ppt举例例:已知两个数x和y,比较它们的大小,并交换,使得x大一、If-else语句语句形式2:

If

<表达式1>

Then

<语句块1>

ElseIf

<表达式2>

Then

<语句块2>

……

[Else语句块n+1]

EndIf

多分支结构1)不管有几个分支,程序执行了一个分支后,其余分支不再执行;

2)ElseIf

不能写成Else

If

3)当多分支中有多个表达式同时满足,则只执行第一个与之匹配的语句块elseifelseifelseif12编辑ppt一、If-else语句语句形式2:

一、If-else语句语句形式:

If

<表达式1>

Then

If

<表达式11>

Then

……

EndIf

……

EndIf

If语句的嵌套1)对于嵌套结构,为了增强程序的可读性,应该采用缩进形式书写;

2)If语句形式若不在一行上书写,必须与EndIf配对,多个if嵌套,EndIf与它最接近的If配对。指if或else后面的语句块中又包含If语句。13编辑ppt一、If-else语句语句形式:If语句的嵌套1)对于嵌套结2.SelectCase语句(情况语句)是多分支语句的又一种形式,语句形式:SelectCase

变量或表达式

Case

表达式列表1

语句块1

Case

表达式列表2

语句块2

……

[CaseElse

语句块n+1]

EndSelect14编辑ppt2.SelectCase语句(情况语句)是多分支语说明:1)变量或表达式可以是数值型或字符串表达式2)表达式列表i可以是表达式、一组用逗号分隔的枚举值、表达式1to表达式2、Is关系运算符表达式;如:case

1to10

‘表示测试的表达式在1到10范围内case

“a”,“w”,“e”,“t”

‘表示测试的表达式为枚举值case

2,4,6,8,is>10‘表示测试的值为2,4,6,8或大于103)并不是所有的多分支结构都可以用情况语句代替的。15编辑ppt说明:1)变量或表达式可以是数值型或字符串表达式2)表达式列示例源程序PrivateSubCommand1_Click()DimxAsIntegerx=Val(Text1.Text)

SelectCasexCaseIs<1Text2.Text="这是小于1的数"Case1To10Text2.Text="这是1到10之间的数"CaseElseText2.Text="这是大于10的数"

EndSelectEndSub运行16编辑ppt示例源程序PrivateSubCommand1_Clic第二节循环结构世界会向那些有目标和远见的人让路

第二节循环结构世界会向那些有目标和远见的人让路主要内容循环结构一、Do-Loop循环语句当型先判断后执行先执行后判断直到型先判断后执行先执行后判断二、For循环语句18编辑ppt主要内容循环结构一、Do-Loop循环语句18编辑ppt循环者:重复执行某些操作也!TrueFalse循环语句当型循环:形式1当型循环:形式219编辑ppt循环者:重复执行某些操作也!TrueFalse循环语句当型循这两种循环的区别:

当型循环,条件为真时,执行循环体

直到型循环,条件为假时,执行循环TrueFalse直到型循环:形式1直到型循环:形式220编辑ppt这两种循环的区别:

当型循环,条件为真时,执行循环体

直到型一、Do-Loop循环形式1:DoWhilee

语句块

[Exit

Do]

语句块

Loop

语句块While循环1通常用于:不知道循环次数的条件型循环演示实质:当条件满足时进入,重复执行循环体,直到条件不满足时退出。21编辑ppt一、Do-Loop循环形式1:While循环1通常用于:不实现从1到10的累加和DimiAsInteger,sumAsIntegeri=1:sum=0

DoWhile(i<=10)‘循环条件是:i<=10是执行循环体

sum=sum+i‘对要求的结果累加运算

i=i+1‘改变循环条件,目的为了跳出循环!

LoopPrintsum演示22编辑ppt实现从1到10的累加和DimiAsInteger,一、Do-Loop循环形式1:Do

语句块

[Exit

Do]

语句块

Loop

Whilee

语句块While循环2DimiAsInteger,sumAsintegeri=1:sum=0Dosum=sum+ii=i+1LoopWhile(i<=10)Printsum演示这种与第一种形式的区别是:先执行一次循环体,再去判断条件e是否成立。TrueFalse23编辑ppt一、Do-Loop循环形式1:While循环2Dimi执行次数的比较:

DimiAsInteger,sumAsLongDo

Printisum=sum+ii=i+1LoopWhile(i<=10)PrintsumDimiAsInteger,sumAsLongDoWhile(i<=10)

Printisum=sum+ii=i+1LoopPrintsumDimiAsInteger,sumAsLongDo

Printisum=sum+ii=i+1LoopWhile(i<0)PrintsumDimiAsInteger,sumAsLongDoWhile(i<0)

Printisum=sum+ii=i+1LoopPrintsum24编辑ppt执行次数的比较:DimiAsInteger,sum一、Do-Loop循环形式1:Do

语句块

[Exit

Do]

语句块

Loop

Untile

语句块Until循环1Dountilee实质:当条件e为假时执行循环体区别:就是三先执行再判断,四是先判断再执行。形式1:DoUntile

语句块

[Exit

Do]

语句块

Loop

语句块Until循环2TrueFalse25编辑ppt一、Do-Loop循环形式1:Until循环1Dount例:用dountil实现1到10的累加形式三DimiAsInteger,sumAsLong

Dosum=sum+ii=i+1LoopUntil(i>10)’当i=11时就跳出循环了Printsum形式四DimiAsInteger,sumAsLong

DoUntil(i>10)’当i=11时就跳出循环了sum=sum+ii=i+1

LoopPrintsum26编辑ppt例:用dountil实现1到10的累加形式三形式四26编总结循环结构当型循环直到型循环先执行,后判断先判断,后执行先执行,后判断先判断,后执行27编辑ppt总结循环结构当型循环直到型循环先执行,后判断先判断,后执行先1、输入两个自然数M,N2、求M除以N的余数R3、用N代换M4、用R代换N5、若R<>0,则重复执行2,3,4,否则转向6。6、输出M,M即为M,N的最大公约数真欧几里德算法——求两个自然数的最大公约数28编辑ppt1、输入两个自然数M,N真欧几里德算法——求两个自然数的最大循环程序分析1、PrivateSubCommand1_Click()

DimxAsInteger,nAsIntegerx=1n=0

DoWhilex<20x=x*3n=n+1

LoopPrintx;nEndSub2、PrivateSubCommand6_Click()DimiAsInteger,aAsInteger

DoWhilei<20

DoWhileTrueIfiMod10=0ThenExitDoElsei=i-1EndIf

Loopi=i+11:a=a+i

LoopPrintaEndSub29编辑ppt循环程序分析1、PrivateSubCommand1_C循环程序分析PrivateSubCommand1_Click()DimsAsInteger,dAsStringDimkAsInteger,pAsStrings=29

DoUntils<=5p=sMod5d=d&ps=s\5

Loopd=d&sPrintsPrintdEndSub30编辑ppt循环程序分析PrivateSubCommand1_Cli例:我国现有人口13亿,按人口年增长率0.8%计算,多少年后我国人口超过26亿。

计算公式26=13(1+0.008)n

31编辑ppt例:我国现有人口13亿,按人口年增长率0.8%计算,多少年后二、For-Next循环形式:For

循环变量=初值To终值

[Step

步长]

语句块

[ExitFor]

语句块Next

循环变量For循环适用于:知道循环次数的计数型循环。1)循环变量必须为数值型;2)步长一般为正,初值小于终值;若为负,初值大于终值;缺省步长为1;3)退出循环后,循环变量的值保持退出时的值;4)在循环体内对循环变量可多次引用,但不要对其赋值,否则影响结果5)循环次数=int((终值-初值)/步长+1)32编辑ppt二、For-Next循环形式:For循环适用于:知道循环次计算初值,终值,步长变量超过终值?循环变量=初值循环体变量=变量+步长falsetrue33编辑ppt计算初值,终值,步长变量超过终值?循环变量=初值循环体变量=特别注意:但循环变量v若在循环体内被改变,则循环次数有可能发生变化。

Fori=1To10Step2Printi;

NextiPrint"i=";i

Fori=1To10Step2i=i+1Printi;

NextiPrint"i=";i分析:循环变量为:i,初值为1,终值为10,步长为2(也就是说每循环一次i的值自动加2)。结果:13579i=11说明循环了5次,i的值最后为11(大于10了)跳出循环。34编辑ppt特别注意:Fori=1To10Step2求1~10这十个数的和与乘积(教材P70)DimIasInteger,sumasIntegerSum=0ForI=1to10sum=sum+I

ifI<10thenprintI;”+”;

elseprintI;”=“;

EndifNextIPrintsumDimiAsInteger,sumAsLong

Do

While(i<=10)sum=sum+ii=i+1

LoopPrintsum35编辑ppt求1~10这十个数的和与乘积(教材P70)DimIasFor循环程序分析PrivateSubCommand1_Click()a=10b=4

Forj=1To5Step2a=a+5b=b+4

NextjPrinta;bEndSub251636编辑pptFor循环程序分析PrivateSubCommand1_PrivateSubCommand1_Click()DimsumAsInteger,iAsInteger

Fori=7To4Step-1

SelectCaseiCase4,7sum=sum+iCase3,5sum=sum+2CaseElsesum=sum+1EndSelect

NextiPrint"sum=";sumEndSubSum=1437编辑pptPrivateSubCommand1_Click()SuPrivateSubCommand1_Click()DimiAsInteger,nAsInteger

Fori=0To50i=i+3n=n+1

Ifi>10ThenExitFor

NextiPrintnEndSub338编辑pptPrivateSubCommand1_Click()33教材例子从由字母数字组成的字符串中找出所有大写字母并逆序输出的程序演示如何完成呢?39编辑ppt教材例子从由字母数字组成的字符串中找出所有大写字母并逆序输出DimsAsString,dAsString,tAsStringDimiAsIntegerText1.SetFocuss=Text1.Text

Fori=1ToLen(s)

IfMid(s,i,1)>="A"AndMid(s,i,1)<="Z"Thent=t&Mid(s,i,1)

EndIf

Nexti

Fori=Len(t)To1Step-1d=d&Mid(t,i,1)

NextiText2.Text=d40编辑pptDimsAsString,dAsStri实验作业:For循环专项练习1、求1-10这十个数的累加2、求1-10这十个数的累乘3、求1-100中偶数之和4、求1-100中奇数之积5、求1+1/2+1/3+1/4+……1/106、求1-1/2+1/3-1/4+……-1/107、利用循环输出”a“-“z”8、求1-10这十个数的阶乘之和41编辑ppt实验作业:For循环专项练习1、求1-10这十个数的累加415.2循环嵌套Do-loop循环和For-Next循环都可以在大循环中套小循环但不能互相交叉。例子:九九乘法表(演示)Fori=1to9

Forj=1toi

printI;”*”;j;”=“;i*jNextj

printNexti42编辑ppt5.2循环嵌套Do-loop循环和For-Next循环都百鸡问题《张邱建算经》(公元五世纪)内的一道题,称为“百鸡问题。”题云:“今有鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。凡百钱,买鸡百只,问鸡翁、母、雏各几何”如何减少循环次数43编辑ppt百鸡问题《张邱建算经》(公元五世纪)内的一道题,称为“百鸡问教材示例(随机数的问题)Privatesubcommand1_click()DimintranumAsInteger,IAsInteger,jasInteger,aAsIntegerRandomize

Fori=1to1000Intranum=Int(100*Rnd)+1A=0

Forj=1to10000A=a+1

NextjText1.Text=CStr(intranum)Text1.Refresh

NextIText1.Text=CStr(intranum)EndSubInt((上限-下限+1)*Rnd+下限)44编辑ppt教材示例(随机数的问题)Privatesubcomman第三节程序示例世界会向那些有目标和远见的人让路

第三节程序示例世界会向那些有目标和远见的人让路分析下列程序的输出结果DimiAsInteger

Fori=1To6IfiMod3=0ThenPrint"*";ElsePrint"#";EndIf

Nexti第一题DimiAsInteger

Fori=1To6IfiMod3ThenPrint"*";ElsePrint"#";EndIf

Nexti##*##***#**#46编辑ppt分析下列程序的输出结果DimiAsInteger第一DimiAsInteger,jAsInteger

Forj=1To5

Fori=1To

6

IfiMod3=0Then

Print"*";Else

Print"#";EndIf

NextiPrintNextj##*##*##*##*##*##*##*##*##*##*第二题外层多了For..j循环47编辑pptDimiAsInteger,jAsIntege第三题PrivateSubCommand1_Click()DimmAsInteger,nAsInteger,kAsIntegern=-3

Form=6To1Stepnm=m+1n=n-mk=k+1

NextmPrintk;PrintnEndSub3-1848编辑ppt第三题PrivateSubCommand1_Click(PrivateSubCommand1_Click()DimsAsString,iAsIntegerConstchAsString="0123456789."s="2L0A09U.0SI3V.24"

Fori=1ToLen(s)

IfInStr(ch,Mid(s,i,1))=0Then

st1=Mid(s,i,1)&st1Else

st2=st2&Mid(s,i,1)EndIfNextiPrintst1:Printst2EndSubVISUAL2009.03.24第四题49编辑pptPrivateSubCommand1_Click()VI第五题PrivateSubForm_click()DimaAsInteger,bAsIntegera=1:b=0

DoWhilea<=5b=b+a*aa=a+1

LoopPrinta,bEndSub65550编辑ppt第五题PrivateSubForm_click()6第六题PrivateSubForm_click()DimchAsString,IAsIntegerch="DEF"

ForI=1ToLen(ch)ch=Mid(ch,2*I-1,1)&Left(ch,Len(ch))Printch

NextIEndSubDDEFEDDEFFEDDEF51编辑ppt第六题PrivateSubForm_click()DDE复习上次课学而时习之,不亦说乎复习上次课学而时习之,不亦说乎复习:For-Next循环形式:For

循环变量=初值To终值

[Step

步长]

语句块

[ExitFor]

语句块Next

循环变量For循环1)循环变量必须为数值型;2)步长一般为正,初值小于终值;若为负,初值大于终值;缺省步长为1;3)退出循环后,循环变量的值保持退出时的值;4)循环变量的改变会影响循环次数,而初值,终值,步长的改变不会影响循环次数5)循环次数=int((终值-初值)/步长+1)6)内外循环变量不能重名7)要完全嵌套,不能交叉。53编辑ppt复习:For-Next循环形式:For循环1)循环变量必1.下列程序的循环结构执行后,I的输出值是()Fori=1to10step2y=y+iNextiPrintIA:25B:10C:11D:因为y的初值不知道,所以不确定C54编辑ppt1.下列程序的循环结构执行后,I的输出值是()C54编辑p2.若x=-5.执行ifxthenx=0elsex=1的结果是()A:实时错误B:编译错误C:x=1D:x=0D55编辑ppt2.若x=-5.执行ifxthenx=0elsex3、改错题(求累加和):PrivateSubForm_Click()Dimsum%,i%

fori=3to100step3

sum=0sum=sum+i

nextiprintsumEndSub结论:在一重循环中,存放累加、累乘结果的变量初值应在循环语句前。正确解:PrivateSubForm_Click()Dimsum%,i%

sum=0fori=3to100step3sum=sum+i

nextiprintsumEndSub56编辑ppt3、改错题(求累加和):结论:在一重循环中,存放累加、累乘结4、改错题:期末30位同学参加三门课程的考试,求每个同学的三门课程的平均成绩。aver=0

fori=1to30

forj=1to3m=inputbox(“输入第”&j&”门课的成绩”)aver=aver+mNextjaver=aver/3PrintaverNexti57编辑ppt4、改错题:期末30位同学参加三门课程的考试,求每个同学的三正确代码:aver=0放在内外循环之间fori=1to30

aver=0

forj=1to3m=inputbox(“输入第”&j&”门课的成绩”)aver=aver+mNextjaver=aver/3PrintaverNexti结论:在多重循环中,存放累加、累乘结果的变量初值放在外循环语句前,还是在内循环语句前,要视具体问题分析对待。58编辑ppt正确代码:aver=0放在内外循环之间结论:在多重循环中,复习题5.要退出For…Next循环,可使用的语句是()。A.ExitB.ExitForC.EndDoD.ExitDo6.以下程序的循环次数是

。PrivateSubCommand1_Click()Forj=8To35Step3Printj;NextjEndSubA、10 B、9C、27 D、2859编辑ppt复习题5.要退出For…Next循环,可使用的语句是(7.循环结构Fori=1To10step1.5的执行次数是()A、7B、8C、9D、1060编辑ppt7.循环结构Fori=1To10step1.5的第七题PrivateSubForm_click()DimpAsInteger,IAsIntegerp=1

ForI=1To5p=p+(2*I-1)/(2*I+1)

Ifp>=20ThenExitFor

NextIPrintI,pEndSub65课后习题1.(3):注意p的数据类型61编辑ppt第七题PrivateSubForm_click()6第八题PrivateSubForm_click()DimpAsInteger,IAsInteger,nAsIntegerp=2:n=20

ForI=1TonSteppp=p+2n=n-3I=I+1

Ifp>=10ThenExitFor

NextIPrintI,p,nEndSub11108课后习题1.(4):终值、步长为不断变化的变量62编辑ppt第八题PrivateSubForm_click()11程序填空:统计随机产生的十个两位正整数中偶数与奇数的个数,并求出偶数与奇数各自的总和OptionExplicitPrivateSubForm_Click()DimxAsInteger,s1AsInteger,s2AsIntegerDimn1AsInteger,n2AsInteger,iAsIntegerRandomize

Fori=1To10________________Printx;If________________Thenn2=n2+1s2=s2+xElse__________________s1=s1+xEndIf

NextiPrintPrint"奇数个数=";n1;"偶数个数=";n2;EndSubXmod2=0n1=n1+1x=Int(Rnd*90+10)63编辑ppt程序填空:统计随机产生的十个两位正整数中偶数与奇数的个数,并第十题:统计字符串中“O”的个数PrivateSubCommand1_Click()a="THEREISABOOKONTHEDESK"m=(1)

Fori=1Tomb=(2)

Ifb="O"Then

(3)

NextiPrintnumEndSubLen(a)Mid(a,i,1)num=num+164编辑ppt第十题:统计字符串中“O”的个数PrivateSubCo对于大于或等于3的正整数,判断它是不是一个素数。素数定义:除了1和该数本身之外,不能被其他任何整数整除的数。判断方法一:将n(被判断数)作为被除数,将2到(n-1)各个整数轮流作为除数,如果都不能被整除,则n为素数。算法:步骤1:输入n的值。步骤2:使2→i(i作为除数)。步骤3:n被i除,得余数r。步骤4:如果r=0,表示n能被I整除,则打印n“不是素数”,算法结束;否则执行步骤5。步骤5:i+1→i。步骤6:如果i≤n-1,返回步骤3;否则打印n是“是素数”,然后结束。第十一题(重中之重)65编辑ppt对于大于或等于3的正整数,判断它是不是一个素数。判断方法一素数代码X=Text1.textFori=2tox-1Ifxmodi=0thenExitForNextIIfi=xthen printx&“是素数”Else printx&“不是素数”Endifi=1toxIfxmodI=0thenprintx&“不是素数”i=x-1或者i=i+166编辑ppt素数代码X=Text1.texti=1toxIfxm判断一个数是否为素数判断方法二:算法改进:只要判断到n/2甚至n的开方即可。67编辑ppt判断一个数是否为素数判断方法二:67编辑ppt第十二题水仙花数水仙花数153=1

温馨提示

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

评论

0/150

提交评论