《VB编程题经典案例.docx》由会员分享,可在线阅读,更多相关《VB编程题经典案例.docx(5页珍藏版)》请在优知文库上搜索。
1、VB经典案例1输入3个数,输出最大的数X=val(textl)y=val(text2)z=val(text3)ifx=ythenifx=zthenprintxelseprintzendifelseify=zthenprintyendif2有一元二次方程:a2+bX+c=0,依次输入a,b,c,判断此方程是否有实根a=val(textl)b=val(texc=val(text3)Ifb*b-4*a*c=Othenprint”有实根elseprint“无实根”endif3输入一个成绩,假设大于等于60,那么用消息框显示“恭喜!成绩通过!“,假设小于60,那么弹出消息框显示“抱歉!成绩没有通过!N=
2、val(text1)ifn=60thenmsgbox恭喜!成绩通过!”ekemsgbox“抱歉!成绩没有通过!endif4输入一年份,判断它是否为闰年,并显示有关信息(判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除)y=val(text1)ifymod4=0andymod100=0thenprintuy是闰年”elsePrinty不是闰年endif5输入学生的百分制成绩,转换输出为五级制成绩,90100分转换为优秀,8089转换为良好,7079转换为中等,6069转换为及格,060转换为不及格。Ifmark=90thengrade=优elseIfmark=80theng
3、rade=良elseIfmark=70thengrade=中elseIfmark=60thengrade=及格elsegrade=不及格6随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产生246,输出是642。n=int(rnd*900+100)dimx%,a%,b%,c%a=xmod10b=int(xmod100)/10)c=int(x100)printx;a*100+b*10+c7输入两个整数,求它们的最大公约数。Functiongcd%(byvalm%,byvaln%)ifmnthent=m:m=n:n=tR=mmodndowhile(r0)m=n:n=r:r=m
4、odnloopgcd=nendfunction8编程求200-400范围内5的倍数或7的倍数之和。dims%,i%s=0Fori=200to400ifimod5=0orimod7=0thens=s+iendifnextiprints9计算100300之间所有能被3和7整除的数之和dims%,i%s=0fori=100to300Ifimod3=0andimod7=0thens=s+iendifnextiprints=&s10分别统计IJOO中,满足3的倍数、7的倍数的数各有多少。Dimnl%,n2%,i%nl=0:n2=0Fori=lto100ifimod3=0thennl=nl+lifimod
5、7=0thenn2=n2+1nextiprintnl,n2H某次歌曲大奖赛,有7个评委。如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算方法,求出该参赛者的平均得分。Dima(6)asintegeri%,max%,min%,sum%a(O)=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)fori=1to6ifmina(i)thenmin=a(i)Ifmaxa(i)thenmax=a(i)sum=sum+a(i)nextiprint“
6、平均分”;(sum-min-max)512输入一串字符,统计其中字母A出现的次数。dims$,i%,n%s=textln=0fori=ltolen(s)c=mid(s,i,l)Ifc=AORc=athenn=n+lnextiprintn13我国目前有13亿人口,按人口年增长率0.8%计算,多少年后我国人口将超过26亿。x=13n=0dowhilex26x=x*1.008n=n+1loopPrint年数为:;n;人数为:;Xm=log(2)log(1.008)ifint(m)mthenm=int(m)+lprintm14小猴有桃假设干,第一天吃掉一半多一个;第二天吃剩下桃子的一半多一个;以后每天
7、都吃尚存桃子的一半多一个,到第7天只剩一个,问小猴原有桃多少Dimn%,i%x=lfori=6to1step-1x=2*(x+l)printxnexti15求100以内的素数Dimm%,i%,tagasbooleanform=3to100step2tag=truefori=2tom-1ifmmodi=0Thentag=falsenextiIftag=truethenprintm&z/是素数”elseprintm&不是素数Endifnextm16百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元,编程求解购鸡案。DimX%,y%,z%,n%n=0Print母鸡,公鸡,小鸡,forX=0
8、to33fory=0to50Z=100-x-yn=n+lif3*x+2*y+0.5*z=100thenprintx,y,znextynextx17编程求斐波那契数列前U项。(斐波那契数列:F(0)=f(l)=l,F(n)=F(n-l)+F(n-2)n=2)Dimx()asintegerdimi%n=16redimx(n-l)x(0)=l(l)=lfori=2ton-1X(i)=x(i-l)+x(i-2)nextifori=0ton-1printx(i),if(i+l)mod5=0thenprintnext18将输入的字符串以反序显示。例如:输入“ASDFGT,显示“TGFDSADimi,a,b
9、,nasstringn=inputbox(输入字符)i=len(n)fora=1toi/2b=mid(n,a,l)Mid(n,a,1)=mid(n,i+l-a,l)mid(n,i+l-a,l)=bnextaprintn19随机产生10个30,100内的整数,求最大值及所对应的下标Dima(0to9)asintegeri%,max%,imax%fori=0to9a(i)=int(rnd*71+30)printa(i);nextimax=a(0)imax=0fori=1to9Ifa(i)maxthenmax=a(i):imax=inextiprintmax=;max/imax=;imax20随机产
10、生10个30,100内的整数,求最大值、最小值和平均值。Dima(0to9)asintegeri%,max%,min%,aver!fori=0to9a(i)=int(rnd*71+30)Nextimin=a(0)max=a(0)aver=a(0)fori=lto9ifa(i)maxthenmax=a(i)Ifa(i)minthenmain=a(i)aver=aver+a(i)nextifori=0to9printa(i);nextiprintPrintfcmax=w;max,min=z,;min,ttaver=z,;aver/1021随机产生10个30,100内的整数,求最小值及所对应的下标。
11、Dima(0to9)asintegeri%,min%,imin%fori=0to9a(i)=int(rnd*71+30)printa(i);nextimin=a(0)imin=0fori=1to9Ifa(i)maxthenmax=a(i)Ifa(i)minthenMin=a(i)aver=aver+a(i)nextiprintprintumax=w;max,min=vaver=;aver/1024利用随机函数生成一个44的矩阵的二维矩阵,范围是20,50内的整数,输出该矩阵所有数据之和Dima(2,3),sum%fori=0to3forj=0to3a(i,j)=int(rnd*31+20)ne
12、xtinextjFori=0to3forj=0to3printa(i,j);nextjprintnextifori=0to3forj=0to3Sum=sum+a(i,j)nextjnextiprint“sum=zz;sum25有序数组a(),编程插入X(X的值为14)。数组a中的元素分别为12,6,4,89,75,63,100,20,31)oDima(),i%,k%,x%,n%a=array(l2,6,4,89,75,63/00,20,31)n=ubound(a)x=val(textl)fork=0tonifxa(k)thenexitfornextkredimpreservea(n+l)for
13、i=ntokstep-1a(i+l)=a(i)nextia(k)=xfori=0ton+1printa(i);nexti26编写一函数,计算DoUble类型一维数组所有元素的平均值。Functionavg(a()asdoubledimi%,s#m%,n%s=0m=Lbound(a)jn=ubound(a)fori=mtons=s+a(i)nextiAvg=s(n-m+l)endfunction27用函数过程求表达式ll2+l3+l4.+ln的和。Functionsum(n%)assingledimi%s!S=Ofori=ltonS=s+linextisum=sendfunction28编一子过程Pr。CMin,求一维数组a中的最小值,子过程的形参自己确定。Dima(lto10),amin,i%fori=lto10a(i)=-int(rnd*IOl+300)printa(i);nextiCalls(a(),amin)printprint*最小值;aminendsubsubs(b(),min)dimi%min=b(1)Fori=2to9ifb(i)minthenmin=b(i)nexti29编一