VB程序知识点总结 |
|
|
VB知识点总结
1.判断一个数a为偶数
amod2=0ora/2=int(a/2)
2.判断一个数为奇数
Amod2=1ora/2<>int(a/2)
3.判断一个数a能被b整除
Amodb=0
如amod3=0表示a能被3整除
4.定义一个数组a(n)(数组中含有n+1个元素)注:a为数组名,可变
Eg:生成n个元素的随机数
Fori=0ton-1(fori=1ton)‘循环次数控制个数
A(i)=val(inputbox(“输入n个数”))
a(I)=int(rnd100)’产生100以内随机数
Nexti
如生成7个随机数可表示为fori=0to6或fori=1to7
5.阶乘n!
S=1
Fori=1ton
S=si
Nexti
6.累加1+2+3….+n
S=0
Fori=1ton
S=s+i
Nexti
7.其他情况相加通项an
S=a1+a2+a3…..+an
Dims,a,Iasinteger
S=0
a=通项初始值
ForI=1ton
a=通项公式(通常是与I之间的关系)
S=s+a
Nexti
例如:s=12+23+34….+99100
S=0
A=1
fori=1to99
a=i(i+1)
s=s+a
nexti
8.do…loop语句增长率的问题、
已知2005年产量p为1000万吨,以后每年以5%的速度增长,问多少年后翻一番?
◆年数n和产量p的初始值
如本题:p=1000‘初始值
N=0‘计数变量
‘(r=0.05)
Do
P=p(1+0.05)‘或(p=p(1+r))
N=n+1‘计数
Loopwhilep<=2000(untilp>2000)‘终值
Printn;“年”
9.找出三个数中的最小(最大)值
dimx,min,Iasinteger
min(或max)=val(inputbox(“输入三个数“))‘默认第一个数为最小值
fori=1to2‘余下n-1个数
x=val(inputbox(“输入三个数“))
ifxmax
min=x
nexti
text2.text=min
10.dimI,xasinteger
X=0
Fori=1to100
IfImod3=0then
X=x+i
Nexti
Text1.text=x
11?.A.求时,分,秒(60进制)
dima,b,c,dasinteger
a=val(text1.text)
b=a\3600
c=(a-b3600)\60
d=(a-b3600)mod60(或amod60)
B.求,百,十,个(十进制)
dima,b,c,dasinteger
a=val(text1.text)
b=a\100
c=(a-b100)\10
d=(a-b100)mod10(或amod10)
12?.产生m行,n列平行四边形
Fori=1tom‘(fori=mto1step-1)or(fori=m-1to0step-1)
Printtab(m-j);
Forj=1ton
Print“”;
Nextj
Print‘换行
Nexti
13?.多分支结构
a.If…then…../Elseif…./Elseif…(若干个)Else…/Endif
b.Selectcase条件/Caseis.../CaseIs…/…/Elsecase/Endselect
14.属性的引用
Form1.caption=text1.text/label1.caption=”欢迎学习vb”
Form1.backcolor=&fhh&Orform1.backcolor=vbred
15?.穷举法
鸡兔同笼,百鸡百钱,百元换百张,查找水仙花数,求解密码。For….next语句逐个查找
如百鸡百钱(同百元百张)
Fori=1to20
Forj=1to33
K=100-i-j
Ifi5+j3+k/3=100then
Print“公鸡”;I;”只”;”母鸡”;”j;”只”;”小鸡”;k;”只”
Endif
Nextj
Nexti
16?.冒泡法
对n个数冒泡法按升序排列
(1)前to后
Fori=1ton-1
Forj=i+1ton
Ifa(i)>a(j)then‘从前往后,前一个数跟后一个数比较,大数往后移
交换
Endif
Nextj
Nexti
(2)后to前
ForI=1ton-1
Forj=ntoi+1
Ifa(j) 交换
Endif
Nextj
Nexti
17.递归①斐波那契数列、②累乘、③累加
n>2f(n-1)+f(n-2)
N=1orn=21
a.斐波那契数列f{
PrivateFunctionfib(nasinteger)asInteger
ifn=1orn=2then
fib=1
else
fib=fib(n-1)+fib(n-2)
endif
Endfunction‘以上为function子程序
privatesubform_click()
print“fib=”;fib(n)
Endsub‘此部分为sub主程序
b.递归法求阶乘n!
n=11
n>1n(n-1)!
N!{
PrivateFunctionrec(nasinteger)asinteger
Ifn=1then
Rec=1
Else
Rec=nrec(n-1)
Endfunction‘以上为function子程序
Privatesubform_click()
Print“s=”;rec(n)
Endsub‘此部分为sub主程序
c.求和S=1+2+3+…+n
N=11
n>1n+s(n-1)
S{
privatefunctionrec(nasinteger)asinteger
Ifn=1then
Rec=1
Else
Rec=n+rec(n-1)
Endif
Endfunction‘以上为function子程序
Privatesubform_click()
Print“s=”;rec(n)
Endsub‘此部分为sub主程序
17其他问题
A格里高利公式
编程求π的近似值,直到最后一项的绝对值小于10-4为止.
公式:π/4=1-1/3+1/5-1/7+…(-1)n-1(1/2n-1)
T=1:N=1:S=1:pi=0
Dountilabs(t)<0.0001
pi=pi+s/n
N=n+2
S=-S
t=1/n
Loop
Print“π=”;4pi
B编程求1/1+1/2+2/3+…+21/34….前十项之和
A=0:B=0:K=0:S=0:S1=0
Fork=1to10
S=s+a/b
S1=a
A=b
B=s1+a
NextI
二进制转换为十进制:
例如:1001101=126+025+024+123+122+021+120
|
|
|
|
|
|
|
|