09秋理科VB考前辅导2.docx
- 文档编号:23087324
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:14
- 大小:18.02KB
09秋理科VB考前辅导2.docx
《09秋理科VB考前辅导2.docx》由会员分享,可在线阅读,更多相关《09秋理科VB考前辅导2.docx(14页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 09 理科 VB 考前 辅导