配色: 字号:
VB程序知识点总结
2012-01-28 | 阅:  转:  |  分享 
  
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





















































献花(0)
+1
(本文系拼搏、努力...首藏)