09秋理科VB考前辅导2.docx

上传人:b****1 文档编号:23087324 上传时间:2023-04-30 格式:DOCX 页数:14 大小:18.02KB
下载 相关 举报
09秋理科VB考前辅导2.docx_第1页
第1页 / 共14页
09秋理科VB考前辅导2.docx_第2页
第2页 / 共14页
09秋理科VB考前辅导2.docx_第3页
第3页 / 共14页
09秋理科VB考前辅导2.docx_第4页
第4页 / 共14页
09秋理科VB考前辅导2.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

09秋理科VB考前辅导2.docx

《09秋理科VB考前辅导2.docx》由会员分享,可在线阅读,更多相关《09秋理科VB考前辅导2.docx(14页珍藏版)》请在冰豆网上搜索。

09秋理科VB考前辅导2.docx

09秋理科VB考前辅导2

Select语句格式:

Selectcase<测试表达式>

Case<情况表达式1>

语句块1

Case<情况表达式2>

语句块2

caseelse

语句块3

endselect

要点:

1)语句执行机制

例如:

设输入的数据分别为14,3,125,21时,标签框Label1.Caption的值分别是多少?

PrivateSubForm_Click()

DimaAsInteger

a=Val(InputBox(“请输入数据”))

SelectCaseaMod5

CaseIs<4

w=a+10

CaseIs<2

w=a*2

CaseElse

w=a-10

EndSelect

Label1.Caption=“w=”&w

EndSub

实例讲解:

将P83练习2用SelectCase语句来实现

2)注意情况表达式的写法

情况表达式的三种表示方式

Ø单值法

Ø关系比较要用IS来代替测试表达式

Ø区间表达法

注意:

不能使用or或and等逻辑运算符,只能使用“,”符号。

实例讲解:

电脑随机产生1到99的数

一等奖:

88

二等奖:

小于5或大于95

三等奖:

45到55

安慰奖:

其它数字

OnErrorGoTo语句

应用实例:

PrivatesubForm_Click()

OnErrorGoToL1

N=val(text1.text)

Print1/n

Exitsub

L1:

MsgBox“除数不为零!

Endsub

实例讲解:

privatesubform_click()

OnErrorGotoErr1

Pic1.picture=loadPicture(file1.path+file1.fileName)

Exitsub

Err1:

Pic1.picture=loadPicture(file1.path+”\”+file1.fileName)

endsub

循环控制结构之FOR/NEXT语句:

for<控制变量>=<初值>to<终值>[step<步长>]

<循环体>

next<控制变量>

例如:

Fork=1to10

s=s+k

Nextk

Prints,k

s=0

fork=10to1-1

s=s+k

nextk

prints,k

s=0

fork=4to1

s=s+k

nextk

prints,k

应用举例1:

输入一个正整数n,求n阶乘.

程序调试07

OptionExplicit

PublicSubeat()

'该过程是用于计算猴子共摘了多少个桃子。

'(小猴在一天摘了若干个桃子,当天吃掉了一半多一个;

'第二天吃了剩下的一半多一个;

'以后每天都吃尚存的一半零一个,到第7天早上要吃时只剩下一个了),

'并将结果输出来。

Dimn%,i%,x%

x=1

fori=6to---1----step----2----

-----3----

Nexti

Form1.Print"共有";x;"个桃子"

EndSub

应用举例2:

y=1+x/2+x^2/3+x^3/4….x^12/13(另:

p83练习4)

多项式相加问题(已知多少项的问题)

关键操作:

<和变量>=<和变量>+<单项>

程序调试06

PublicSubsum()

'该过程是用于计算并输出f=1-1/(2*3)+1/(3*4)-1/(4*5)+……+1/(19*20)。

DimfAsSingle

DimiAsInteger

DimsignAsInteger

-----1------

f=1

-----2------

f=f+sign/(i*(i+1))

------3-------

Nexti

Form1.Print"f=";f

EndSub

EXITFOR子句的使用:

例如:

s=0

fork=1to10

s=s+k

’ifk>5thenexitfor

nextk

prints,k

应用举例1:

判断一个数n是不是质数

应用举例2:

找出100到200之间所有的质数

循环控制结构之While/Wend语句:

While<条件>

<循环体>

Wend

x=1:

s=0

whilex<5

s=s+x:

x=x+1

WEND

printx,s

循环控制结构之do/loop语句:

Do{while|until}<条件>

<循环体>

loop

例1:

X=1:

s=0

dowhilex<5

s=s+x:

x=x+1

loop

printx,s

例2:

X=1:

s=0

dountilx<5

s=s+x:

x=x+1

loop

printx,s

Do

<循环体>

loop{while|until}<条件>

 

例1:

X=1:

s=0

do

s=s+x:

x=x+1

loopwhilex<5

printx,s

例2:

X=1:

s=0

do

s=s+x:

x=x+1

loopuntilx>5

printx,s

应用举例:

未知多少项求和问题(P63例3-12)

程序调试10

注:

此题题目和第41`题相同,但算法不一样。

OptionExplicit

PublicSubComDiv()

'该过程是求任意两个正整数的最大公约数

DimmAsInteger,nAsInteger'任意两个正整数

DimiAsInteger

DimdivAsInteger'最大公约数

'输入两个正整数,要求m与n都必须大于零

Do

m=Val(InputBox("m="))

n=Val(InputBox("n="))

LoopWhile----1----

'先将两个整数中的较小数假设为最大公约数,再依次往下

'寻找能同时除尽m和n的数即为最大公约数

-----2-----

Ifn

div=n

EndIf

DoWhilemModdiv<>0OrnModdiv<>0

----3-----

Loop

Form1.Printm;"和";n;"的最大公约数是:

";div

EndSub

程序调试12

OptionExplicit

PublicSubDToB()

'该过程是将一个十进制正整数转换成为一个二进制数。

'采用连除2取余数的方法,将一个十进制数转换为二进制数。

DimDecAsInteger

DimBinAsString

DimresAsInteger

DimiAsInteger

Dec=Val(InputBox("x="))'输入一个十进制数

Form1.Print"十进制数:

";Dec

Do

res=-----1------'求出除以2的余数

Bin=Trim(Str(res))&-----2------

Dec=-----3------

LoopWhile----4------

Form1.Print"转换为二进制数为:

";Bin

EndSub

试题讲解2:

do

n=val(inputbox(“pleaseinputn”))

loopuntiln<10andn>0

printn

上述do/loop循环语句的作用是什么?

下面的代码用于确保用户输入的m,n满足如下关系:

m>n>0

do

m=inputbox(“m=”)

n=inputbox(“n=”)

loop_____

A:

untilm>n>0

B:

whilem>nandn>0

C:

whilem<=norn<=0

D:

untilm>norn>0

exitdo子句的作用:

如何将for/next循环改写为do/loop循环?

fork=2toint(sqr(n))

ifnmodk=0thenexitfor

nextk

ifk>int(sqr(n))then

printn;“是质数”

else

printn;“不是质数”

endif

程序调试20

PublicSubprime()

'该过程是输出100到200之间所有的素数,并统计素数的个数

DimiAsInteger:

DimjAsInteger:

DimkAsInteger

DimtAsInteger'统计素数的个数

DimbAsBoolean

Fori=100To200

b=True

k=------1-------

j=Int(Sqr(i))

DoWhilek<=jAndb

IfiModk=0Then

------2------

EndIf

------3------

Loop

if------4-------then

t=t+1

Form1.Printi

EndIf

Nexti

Form1.Print"t=";t

EndSub

多重循环:

三角图形打印

写出点击按钮command1后,显示在窗体上的内容。

privatesubcommand1_click()

dimkasinteger,jasinteger

fork=1to5

printspace(5-k);

forj=1to2*k-1

printchr(asc(“C”)+j);

nextj

print

nextk

endsub

穷举法(求x2+y2+z2=1000的所有整数解)

程序调试18

PublicSubprt()

'该过程是输出由数字组成的如下所示金字塔图案

'9

'888

'77777

'6666666

'555555555

'44444444444

'3333333333333

'222222222222222

'111111*********11

DimiAsInteger,jAsInteger

'********错误1********

Fori=9To1

Form1.PrintSpace(i);

Forj=1To19-2*i

'*********错误2********

Form1.Printi

Nextj

Form1.Print

Nexti

'*********错误3********

EndFunction

 

程序阅读题训练:

程序1:

(教材79程序阅读题1)

PrivatesubForm_Click()

dimaasinteger,sasinteger

a=5:

s=0

dowhilea<=0

s=s+a:

a=a-1

loop

prints;a

endsub

程序2:

privatesubcommand1_click()

dimsasstring

s=inputbox(“x=”)

n=len(s)

ifnmod2=1thenc=mid(s,n\2+1,1)

fork=1tolen(s)\2

c=mid(s,len(s)+1-k,1)+c+mid(s,k,1)

nextk

printc

endsub

单击command1后输入“abc”,窗体上显示的内容是什么?

单击command1后输入“abcd”,窗体上显示的内容是什么?

程序3:

PrivateSubform_click()

DimSAsString

DimkAsInteger,nAsInteger

S="ABCDE"

n=Len(S)

fork=nTo1Step-1

S=S+Mid(S,k,1)

PrintTab(n-k+1);

PrintMid(S,n-k+1,1)

Nextk

PrintRight(S,n)

EndSub

程序4:

(2006秋试题)

PrivatesubForm_Click()

n=inputbox(“n=”)

k=10:

j=1

fori=1ton

printspace(k);string(j,trim(str(i)))

ifi<=n\2then

k=k–1:

j=j+2

else

k=k+1:

j=j-2

endif

nexti

endsub

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

当前位置:首页 > 外语学习 > 日语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1