文档库 最新最全的文档下载
当前位置:文档库 › VB编程题经典案例

VB编程题经典案例

VB编程题经典案例
VB编程题经典案例

VB经典案例

1输入3个数,输出最大的数

X=val(text1)

y=val(text2)

z=val(text3)

if x>=y then

if x>=z then print x

else print z

end if

else if y>=z then print y

end if

2有一元二次方程:aX2+bX+c=0,依次输入a,b,c,判断此方程是否有实根

a=val(text1)

b=val(text2)

c=val(text3)

If b*b-4*a*c>=0 then print “有实根”

else print “无实根”

end if

3输入一个成绩,若大于等于60,则用消息框显示“恭喜!成绩通过!”,若小于60,则弹出消息框显示“抱歉!成绩没有通过!”

N=val (text1)

if n>=60 then msgbox”恭喜!成绩通过!”

else msgbox “抱歉!成绩没有通过!”

end if

4输入一年份,判断它是否为闰年,并显示有关信息(判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除)

y=val(text 1)

if y mod 4 =0 and y mod 100 = 0 then print “y是闰年”

else print y “不是闰年?”

end if

5输入学生的百分制成绩,转换输出为五级制成绩,90~100分转换为优秀,80~89转换为良好,70~79转换为中等,60~69转换为及格,0~60转换为不及格。

If mark >=90 then grade= …优?

else If mark >=80 then grade =…良?

else If mark >=70 then grade =…中?

else If mark >=60 then grade =…及格?

else grade=”不及格”

6随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产生246,输出是642。

n=int(r n d *900+100)

dim x%,a%,b%,c%

a=x mod 10

b=int((x mod 100)/10)

c=int(x/100 )

print x;a*100+b*10+c

7 输入两个整数,求它们的最大公约数。

Function gcd %(by val m%,by val n%)

if m

R= m mod n

do while (r< > 0)

m=n : n=r :r= mod n

loop gcd =n

end function

8 编程求200--400范围内5的倍数或7的倍数之和。

dim s%,i%

s=0

For i =200 to 400

if i mod 5 =0 or i mod 7 =0 then s=s+i

end if

next i

print s

9 计算100~300之间所有能被3和7整除的数之和

dim s%,i%

s=0

for i=100 to 300

If i mod 3 =0 and i mod 7 =0 then s=s+i

end if

next i

print “s=” &s

10 分别统计1-100中,满足3的倍数、7的倍数的数各有多少。

Dim n1%,n2% ,i%

n1=0:n2=0

For i=1to 100

if i mod 3=0 then n1=n1+1

if i mod 7=0 then n2=n2+1

next i

print n1,n2

11 某次歌曲大奖赛,有7个评委。如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分。

Dim a(6) as integer i%,max%,min%,sum%

a(0)=val(text1.text) 省略a(6)=val(text7.text)

sum=a(0)+a(1)+a(2)+a(3)+a(4)+a(5)+a(6)

max=a(0)

min=a(0)

for i =1 to 6 if min>a(i) then min=a(i)

If max

sum=sum+a(i)

next i

print “平均分”;(sum-min -max)/5

12 输入一串字符,统计其中字母A出现的次数。

dim s$,i%,n%

s=text1

n=0

for i=1 to len(s)

c=mid(s,i,1)

If c=”A” OR c=”a” then n=n+1

next i

print n

13 我国目前有13亿人口,按人口年增长率0.8%计算,多少年后我国人口将超过26亿。x=13

n=0

do while x<26

x=x*1.008 n=n+1

loop

print “年数为:”;n;”人数为:”;x

m=log(2)/log(1.008)

if int(m)<>m then m= int(m)+1

print m

14 小猴有桃若干,第一天吃掉一半多一个;第二天吃剩下桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天只剩一个,问小猴原有桃多少

Dim n%,i%

x=1

for i=6 to 1 step -1

x =2*(x+1)

print x

next i

15 求100以内的素数

Dim m%,i%,tag as boolean

for m=3 to 100 step 2

tag=true

for i=2 to m-1

if m mod i=0 Then tag=false

next i

If tag=true then print m&”是素数”

else print m&”不是素数”

End if

next m

16 百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元,编程求解购鸡案。Dim x%,y%,z%,n%

n=0

print “母鸡”,”公鸡”,”小鸡?

for x = 0 to 33

for y=0 to 50

Z=100-x-y

n=n+1

if 3*x+2*y+0.5*z=100 then print x,y,z

next y

next x

17 编程求斐波那契数列前11项。(斐波那契数列:F(0)=f(1)=1, F(n)=F(n-1)+F(n-2) n>=2)Dim x( ) as integer dim i%

n=16

redim x(n-1)

x(0)=1

x(1)=1

for i=2 to n-1

X(i)=x(i-1)+x(i-2)

next i

for i=0 to n-1

print x(i),

if (i+1)mod 5=0 then print

next

18 将输入的字符串以反序显示。例如:输入“ASDFGT”,显示“TGFDSA”

Dim i,a,b, n as string

n=inputbox(“输入字符”)

i=len(n)

for a=1 to i/2

b=mid(n,a,1)

Mid(n,a,1)=mid(n,i+1-a,1)

mid(n,i+1-a,1)=b

next a

print n

19 随机产生10个[30,100]内的整数,求最大值及所对应的下标

Dim a(0 to 9) as integer i% ,max%, imax%

for i=0 to 9

a(i)=int (r n d *71 +30)

print a(i);

next i

max=a(0)

imax=0

for i = 1 to 9

If a(i)> max then max =a(i):imax =i

next i

print “max=”; max,”imax=”;imax

20 随机产生10个[30,100]内的整数,求最大值、最小值和平均值。

Dim a(0 to 9) as integer i% ,max%, min% ,aver!

for i=0 to 9

a(i)=int (r n d *71 +30)

Next i

min=a(0)

max=a(0)

aver=a(0)

for i=1 to 9

if a(i)>max then max=a(i)

If a(i)

aver=aver+a(i)

next i

for i=0 to 9

print a(i);

next i

print

Print “max=”;max,”min=”;min, “aver=”;aver/10

21 随机产生10个[30,100]内的整数,求最小值及所对应的下标。

Dim a(0 to 9) as integer i% ,min%, imin%

for i=0 to 9

a(i)=int (r n d *71 +30)

print a(i);

next i

min=a(0)

imin=0

for i = 1 to 9

If a(i)< min then min=a(i) : imin =i

next i

print “min=”; min,”imin=”;imin

22 随机生成一个整型的二维数组,范围在[10,20]之间,以下三角形式输出该数组。Dim a(4,4) as integer

for i=0 to 4

for j=0 to 4

a(i,j)=int(r nd*11+10)

next j

next i

For i=0 to 4

for i=0 to 4

print a(i,j);

next j

print

next i

23 随机产生10个1~100的正整数放入数组,显示产生的数,求最大值、最小值、平均值。Dim a(1 to 10) as integer,i%,max%,min%,aver%

for i=1 to 10

a(i)=int(r n d*100+1)

next i

Min=a(1)

max=a(1)

aver=a(1)

for i=2 to 10

if a(i)>max then max=a(i)

If a(i)

aver=aver+a(i)

next i

print

print “max=”;max,”min=”;min,”aver=”;aver/10

24 利用随机函数生成一个4×4的矩阵的二维矩阵,范围是[20,50]内的整数,输出该矩阵所有数据之和

Dim a(2,3),sum%

for i=0 to 3

for j=0 to 3

a(i,j)=int(r n d*31+20)

next i

next j

For i =0 to 3

for j=0 to 3

print a(i,j);

next j

print

next i

for i=0 to 3

for j=0 to 3

Sum=sum+a(i,j)

next j

next i

print ”sum=”;sum

25已知有序数组a(),编程插入x(x的值为14)。数组a中的元素分别为{12,6,4,89,75,63,100,20,31}。

Dim a(),i%,k%,x%,n%

a=array(12,6,4,89,75,63,100,20,31)

n=ubound(a)

x=val(text1)

for k=0 to n

if x

next k

redim preserve a(n+1)

for i=n to k step -1

a(i+1)=a(i)

next i

a(k)=x

for i=0 to n+1

print a(i);

next i

26 编写一函数,计算Double类型一维数组所有元素的平均值。

Function avg( a()) as double

dim i%,s# m%,n%

s=0

m=Lbound(a);n=ubound(a)

for i=m to n

s=s+a(i)

next i

Avg=s/(n-m+1)

end function

27用函数过程求表达式1+1/2+1/3+1/4+…+1/n的和。

Function sum (n% ) as single

dim i%s!

S=0

for i=1 to n

S=s+1/i

next i

sum=s

end function

28 编一子过程ProcMin,求一维数组a中的最小值,子过程的形参自己确定。

Dim a(1 to 10),amin,i%

for i=1 to 10

a(i)=-int(r n d*101+300)

print a(i);

next i

Call s(a(),amin)

print

print”最小值”;amin

end sub

sub s(b(),min)

dim i%

min=b(1)

For i=2 to 9

if b(i)

next i

29 编一个函数,求一维数组a中的最大值,函数的形参自己确定。

Function amax(a() as integer)

dim i%,max %

max=a(Lbound(a))

for i =Lbound(a)+ ubound(a)

if a(i)>max then max=a(i)

next i

amax= max

end function

30 编写一个程序,计算并输出区间[100,1000]内所有素数的和。要求:判断素数使用过程(函数或子过程)来实现。然后调用该过程求范围内各素数的和。

Function s%

dim m% ,tag as blooean,i%

M=val(x)

tag=ture

For i =2 to n-1

if n mod i=0 then tag=false

next i

If tag then s=x

end function

Private https://www.wendangku.net/doc/38469325.html,mand1_click()

Dim i%,k%

for i =101 to1000

If s(i) then list1.additem i

Next i

Sum=0

For k=0 to list.listcount-1

sum =sum+val(list1.list(k))

next k

Label1=”[100,1000]内所有素数和为:”&sum

相关文档