VB课件第5章 循环结构程序设计Word格式.docx

上传人:b****2 文档编号:436409 上传时间:2023-04-28 格式:DOCX 页数:22 大小:152.15KB
下载 相关 举报
VB课件第5章 循环结构程序设计Word格式.docx_第1页
第1页 / 共22页
VB课件第5章 循环结构程序设计Word格式.docx_第2页
第2页 / 共22页
VB课件第5章 循环结构程序设计Word格式.docx_第3页
第3页 / 共22页
VB课件第5章 循环结构程序设计Word格式.docx_第4页
第4页 / 共22页
VB课件第5章 循环结构程序设计Word格式.docx_第5页
第5页 / 共22页
VB课件第5章 循环结构程序设计Word格式.docx_第6页
第6页 / 共22页
VB课件第5章 循环结构程序设计Word格式.docx_第7页
第7页 / 共22页
VB课件第5章 循环结构程序设计Word格式.docx_第8页
第8页 / 共22页
VB课件第5章 循环结构程序设计Word格式.docx_第9页
第9页 / 共22页
VB课件第5章 循环结构程序设计Word格式.docx_第10页
第10页 / 共22页
VB课件第5章 循环结构程序设计Word格式.docx_第11页
第11页 / 共22页
VB课件第5章 循环结构程序设计Word格式.docx_第12页
第12页 / 共22页
VB课件第5章 循环结构程序设计Word格式.docx_第13页
第13页 / 共22页
VB课件第5章 循环结构程序设计Word格式.docx_第14页
第14页 / 共22页
VB课件第5章 循环结构程序设计Word格式.docx_第15页
第15页 / 共22页
VB课件第5章 循环结构程序设计Word格式.docx_第16页
第16页 / 共22页
VB课件第5章 循环结构程序设计Word格式.docx_第17页
第17页 / 共22页
VB课件第5章 循环结构程序设计Word格式.docx_第18页
第18页 / 共22页
VB课件第5章 循环结构程序设计Word格式.docx_第19页
第19页 / 共22页
VB课件第5章 循环结构程序设计Word格式.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

VB课件第5章 循环结构程序设计Word格式.docx

《VB课件第5章 循环结构程序设计Word格式.docx》由会员分享,可在线阅读,更多相关《VB课件第5章 循环结构程序设计Word格式.docx(22页珍藏版)》请在冰点文库上搜索。

VB课件第5章 循环结构程序设计Word格式.docx

Whilex<

s=s+x

x=x+1

 

------------------------------------------------------------------------------------

例5_1_1b计算

s=s*x

例5_1_2从键盘上输入一串字符(每次输入一个字符),以“!

”结束,并对输入字符中的字母个数和数字个数进行统计。

分析:

需要输入的字符个数没有指定,停止计数的条件是输入字符为“!

”,所以用while…wend语句是合适的。

程序中,变量ch接受键盘输入的字符,变量T1,T2分别用于统计字母,数字的个数。

PrivateSubcommand1_click()

Dimch$,T1%,T2%

Cls

T1=0:

T2=0

Whilech<

>

"

!

"

ch=InputBox("

请输入一个字符:

Ifch>

="

a"

Andch<

z"

Orch>

A"

Z"

Then

'

ifLcase(ch)>

="

andLcase(ch)<

T1=T1+1

ElseIfch>

0"

9"

T2=T2+1

EndIf

Wend

Print"

字母个数:

T1

数字个数:

T2

EndSub

5、说明

1.While…Wend循环语句先对“条件”进行测试,然后才决定是否执行循环体。

如果进入循环体之前,“条件”为False,则一次也不执行循环。

因此,进入循环体之前应正确设置循环条件。

2.循环体内应该有修改循环条件的语句,使得循环能正常执行和终止。

否则,会出现死循环,这是程序设计中容易出现的错误,应当尽量避免。

一旦出现“死循环”现象,可按下“Ctrl+Break”键强行退出。

2、Do…Loop语句

Do循环有两种:

1、先判断后执行

DoWhile|Until条件

...

Loop

2、先执行后判断

Do

LoopWhile|Until条件

一、先判断条件形式

1.格式:

Do[While|Until<

]

语句块>

Loop

2.功能:

While当条件为True时循环。

Until当条件首次为True时退出。

3.举例

例5_2_1用Dowhile……Loop改写例5_1_1

n=val(inputbox(“inputn”))

k=1

Dowhilek<

=n

s=s*2

k=k+1

Loop

print“s=”;

s

可以看出,DoWhile……Loop和While…….Wend语句功能相同。

例5_2_2输入一个正整数(≥3),判断其是否为一素数。

所谓素数是指除了1和该数本身外,不能被任何整数整除的数。

可以依次用2~X-1作除数去除X(X>

=3),若X不能被其中任何一个数整除,则X为素数。

PrivateSubCommand1_Click()

Dimx&

Cls

x=InputBox("

输入一个整数X,(X>

=3)"

i=2

flag=True

DoWhilei<

=x–1‘理论证明判断至

即可,即SQR(x)

IfxModi=0Thenflag=False

i=i+1

IfflagThen

Printx&

是一个素数。

Else

不是一个素数。

EndIf

EndSub

例5_2_3计算S=1+2+3+……100

分析:

Xi+1=XI+1

PrivateSubForm_Activate()

Dims&

x&

DoWhilex<

=100‘也可以用DoUntilx>

100

s=s+x

x=x+1

例5_2_4求SIN(x)的级数展开的值。

其中:

xx3x5x7

Y=sinx=─-─+─-─+…………

1!

3!

5!

7!

有以下关系:

Pn=Pn-1

(n=2,……)

P1=X

Dimy#,x#,p#,n%

x0=Val(InputBox("

输入角度值X"

))

输入N的值"

x=x0*3.14159265359/180‘将角度值转换为弧度值

p=x

y=p

p=p*(-x*x/((2*i-1)*(2*i-2)))

y=y+p

i=i+1

sin("

&

x0&

)="

y

例5_2_5打印图形,如下:

*

***

*****

*******

*********

FontSize=30

i=1

=5

PrintTab(10-i);

String(2*i-1,"

*"

例5_2_6打印图形,如下:

一江春水向东流

江春水向东流

春水向东流

水向东流

向东流

东流

FontSize=20

A="

一江春水向东流"

b=Len(A)

DoWhileb>

0‘也可用语句DoUntilb<

=0

PrintTab(20-2*b);

Right(A,b)

函数Left、right、mid、len把一个汉字或全角字符中非字母和

‘数字的字符视为一个字符位,

'

但是函数Tab、Space仍把一个汉字作为两个字符位

b=b-1

二、后判断条件形式

Do

Loop[While|Until<

2.功能:

至少执行一次循环。

Until当条件为True时退出。

3.举例

例5_2_7[例5_2_3计算S=1+2+3+……100]

程序:

LoopWhilex<

=100

例5_2_8输入有效数字位数,利用下韦达公式(法国数学家1593年)计算圆周率π的近似值

π=

分母通项公式为:

Pn=

前n项的乘积为:

Yn=2Yn-1/Pn(n=2,3,….)

P1=0,Y1=2

(使用迭代法,且精确至|Yn-Yn-1|<

ε)

Dimp#,y#,s#,m%

m=InputBox("

输入有效数字位数"

p=0:

y=2

s=y

p=Sqr(2+p)

y=2*y/p

LoopUntilAbs(y-s)<

10^-m

f=String(m,"

#"

有效位数到"

m&

位的π的近似值是:

_

vbCrLf&

Format(y,"

0."

f)

例5_2_9求两个正整数M和N的最大公约数。

(龚P91例4.12)

采用“辗转相除法”的思想。

(南宋秦九韶)

(1)先将M,N中的较大数→a,较小数→b

(2)用大数a除以小数b,余数为R;

(3)若R=0,则b就是它们的最大公约数;

若R≠0,则a←b,b←R,重复上

(2)(3)过程,直至R=0

(4)最后得到的a就是最大公约数。

Dima,b,r,m&

n&

M="

N="

Ifm<

nThent=m:

m=n:

n=t‘该句可省略

a=m:

b=n

r=aModb

a=b

b=r

Loopuntilr=0

Printm;

和"

n;

的最大公约数是:

a

3For…Next语句

For循环也称计数循环。

常用于循环次数已知的程序结构中。

1、格式:

 For<

循环变量>

=<

初值>

To<

终值>

[Step<

步长>

]

  [<

循环体>

  Next[<

2、说明:

(1).For格式中有多个参量,这些参量的含义如下:

·

循环变量:

亦称"

控制变量"

它是一个数值变量,但不能是下标变量或记录元素。

初值:

循环变量的初值,它是一个数值表达式。

终值:

循环变量的终值,它也是一个数值表达式。

步长:

循环变量的增量,是一个数值表达式。

其值可以是正数(递增循环)或负数(递减循环),但不能为0。

如果步长为1,则可略去不写。

循环体:

在For语句和Next语句之间的语句序列,可以是一个或多个语句。

Next:

循环终结语句,在Next后面的"

循环变量"

与For语句中的"

循环变量"

必须相同。

(2).For循环语句的执行过程是:

首先把"

初值"

赋给"

接着检查"

的值是否超过终值,如果超过就跳出循环,执行Next后继语句;

否则执行"

循环体"

然后把"

循环变量+步长"

的值赋给"

重复上述过程。

  这里所说的"

超过"

有两种含义,即大于或小于。

当步长为正值时,检查循环变量是否大于终值;

当步长为负值时,判断循环变量的值是否小于终值。

3、举例

例5_3_1[例5_2_3计算S=1+2+3+……100]

例5_3_2[例5_2_5打印三角形图形]

例5_3_3求斐波那契数列的前40项值。

即:

1,1,2,3,5,8,13,……

Dimf&

f1&

f2&

f1=1

f2=1

Printf1,f2,

Fori=3To40

f=f1+f2

f1=f2

f2=f

Printf,

IfiMod5=0ThenPrint

Nexti

例5_3_4.梯形法求定积分I=

y=f(x)

x

ab

求定积分从几何概念上求f(x)下的面积,将[a,b]均分为n等份,则有n+1个分点:

a=x0<

x1<

…<

xn=b;

每两个邻点间距:

h=(b-a)/n;

每个点的函数值为:

y0=f(a)

y1=f(a+h)

…………

yn-1=f(a+(n-1)h)

yn=f(b)

把每个小分段都看成小梯形,分别算出它们的面积,然后相加,就近似求得积分I。

hn-1f(a)+f(b)n-1

I≈━━∑(yi+yi+1)=h[━━━━━+∑f(a+ih)]

2i=02i=1

试编写求半径为1的园面积。

I=

4

dX的程序。

Dimn&

a%,b%,k&

i#,h!

n=Val(InputBox("

n="

b=1

a=0

h=(b-a)/n

i=(Sqr(1-a*a)+Sqr(1-b*b))/2

Fork=1Ton-1

x=a+k*h

i=i+Sqr(1-x*x)

Nextk

i=4*i*h

i="

i

4、多重循环与循环的退出

一、多重循环

在一个循环体中嵌套另一个循环结构,称为多重循环。

VB没有具体规定嵌套层数。

但是要注意嵌套时,不能交叉嵌套。

举例

例5_4计算S=

Dimn#,m#,i#,j#,s#

m="

Fori=1Ton

Forj=1Tom

s=s+i*j

Nextj,i

Prints

例5_4_1“水仙花数”是指一个3位数,其各位数的立方和等于该数。

例如:

153=13+53+33,求100到999之间的所有水仙花数。

Fori=1To9

Forj=0To9

Fork=0To9

p1=i*100+j*10+k

p2=i^3+j^3+k^3

Ifp1=p2ThenPrinti;

j;

k

Nextk

Nextj

例5_4_2编写输出九九乘法口诀表程序。

(龚P92例4.13)

Forx=1To9

PrintTab((x-1)*10+2);

Fory=xTo9

n=x&

y&

x*y

PrintFormat(n,"

@@@@@@@@@@"

);

Nexty

Print

Nextx

例5_4_3(例5_3_2[例5_2_5打印三角形图形])

例5_4_6(龚P98例4.16)百元买百鸡问题。

假定公鸡每只2元,母鸡每只3元,小鸡每只5角。

现有一百元钱买一百只鸡,编程列出所有方案。

设母鸡、公鸡、小鸡各为X、Y、Z。

根据题意,有:

X+Y+Z=100

3*X+2*Y+Z/2=100

X<

34

Y<

=50

(枚举法)

y&

z&

母鸡"

"

公鸡"

小鸡"

Forx=0To33

Fory=0To50

z=100-x-y

If3*x+2*y+z/2=100Then

Printx,y,z

二、循环的退出

除了当条件满足时退出循环外,VB还提供了“ExitDo”和“ExitFor”两个语句,可以根据需要,在循环体中退出循环。

1、格式:

Exitdo

ExitFor

2、举例

例5_4_4显示3~100之间的所有素数。

(素数:

只能被1或其本身整除的自然数)

PrivateSubForm_Activate()

Forx=3To100Step2

flag=True

Forn=2ToSqr(x)

IfxModn=0Thenflag=False:

Nextn

IfflagThenPrintx

例5_4_5判断回文数(例如:

121,1221,12321等)

Dima$,w%,flag%

a=Text1

w=Len(a)

Fori=1Tow\2

IfMid(a,i,1)<

Mid(a,w-i+1,1)Then

flag=False

Text2=a&

是回文数"

不是回文数"

PrivateSubCommand2_Click()

End

各种循环语句的比较

语句形式

特点

循环条件

终止条件

循环次数

While…Wend

先判断

True

False

≥0

DoWhile…loop

DoUntil…Loop

Do…LoopWhile

后判断

≥1

Do…loopUntil

For…Next

循环变量

递增:

≤终值

递减:

≥终值

终值

<

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2