1、VB必学函数设计1. 打印负数并分别计算正负数只和:有如下10个数: -2,73,82,-76,-1,24,321,-25,89,-20(也可以定位其他数值)打印出其中的每个负数,分别计算并输出正数和负数的和。 程序如下:Sub Form_Click() Dim number AS Integer NegativeSum=0:PostiveSum=0 For i=1 To 10 number=InputBox(Enter data: ) If number10 Then GoTo 100 i=p*r p=p+i t=t+1 GoTo Again 100 Print pEnd Sub 说明:这里
2、的“Again:”是标号,“100”是行号。6. 交换两个列表框的项目 交换两个列表框的项目。其中一个列表框的项目按字母升序排列,另一个列表框的项目按项目加入的先后顺序排列。当双击某个项目时,该项目从列表框中消失,并出现在在另一个列表框中:Private Sub Form_Load() List1.FontSize=14 List2.FontSize=14 List1.AddItem IBM List1.AddItem Compad List1.AddItem HP List1.AddItem FUJI List1.AddItem Digital List1.AddItem 长城 List1.
3、AddItem 联想 List1.AddItem Canon List1.AddItem 四通 List1.AddItem Acer List1.AddItem Nec List1.AddItem NCREnd SubPrivate Sub List1_DbClick() List2.AddItem List1.Text List1.RemoveItem List1.ListIndexEnd SubPrivate Sub List2_DbClick() List1.AddItem List2.Text List2.RemoveItem List2.ListIndexEnd Sub7. 交换图片
4、交换两个图片框中的图形:在窗体上建立三个图片框Picture1、Picture2、Picture3,其中两个在上,一个在下。Private Sub Form_Click() 交换位图 Picture3.Picture=Picture1.Picture Picture1.Picture=Picture2.Picture Picture2.Picture=Picture3.Picture 把第三个图片框设置为空 Picture3.Picture=LoadPicture()End SubPrivate Sub Form_Load 装入位图 Picture1.Picture=LoadPicture _
5、 (C:Documents and SettingsAll UsersDocumentsMy Pictures1.jpg) 可自行改变路径 Picture2.Picture=LoadPicture _ (C:Documents and SettingsAll UsersDocumentsMy Pictures2.jpd) 可自行改变路径End Sub 8. 冒泡排序从键盘上输入10个整数,用冒泡法排序(Bubble Sort)法对这十个数从小到大排序: 在窗体上建立一个命令按钮,并把Caption属性设置为“Click Here to Start” 编写程序如下:Sub Command1_Cl
6、ick() Static number(1 To 10) AS Integer 定义数组number为整形 Msg$=Enter Number for Sort: MsgStile$=Sort Demo For i%=1 To 10 number(i%)=InputBox(Msg$,MsgTile$) Next i% For i%=10 To 2 Step -1 For j%=1 To i%-1 If number(j%)=number(j%+1) Then t=number(j%+1) number(j%+1)=number(j%) number(j%)=t End If Next j% N
7、ext i% For i%=1 To 10 Print number(i%) Next i%End Sub9. 判断09数据类型-奇数或偶数判断字母大小写及09数据类型-奇数或偶数:Sub Form_Click() Dim Msg,UserInput Msg=Please enter a letter or number from 0 though 9. UserInput=InputBox(Msg) If Len(UserInput)0 Then Select Case Asc(UserInput) 返回ASCII码 Case 65 To 90 大写字母 Msg=You entered th
8、e uppercase letter Msg=Msg&Chr(Asc(UserInput)&! Case 97 To 122 小写字母 Msg=You entered the lowercase letter Msg=Msg&Chr(Asc(UserInput)&! Case Else Msg=You did not enter a letter or a number. End Select Else Select Case CDbl(UserInput) 转换为双精度数值 Case 1,3,5,7,9 Msg=UserInput&is an odd number 奇数 Case 0,2,4
9、,6,8 Msg=UserInput&is an odd number 偶数 Case Else 出界 Msg=You entered a number ouside Msg=Msg&the requested range End Select End If MsgBox Msg End Sub 10. 判断100200的所有偶数可以分解为两个素数之和 判断100200的所有偶数可以分解为两个素数之和。Function nf(n As Integer) As Boolean 判断n是否为素数 Dim s As Boolean Dim I As Integer s = False For I =
10、 2 To Int(Sqr(n) 如果能被2 Int(Sqr(n)中任何一个数整除,则不是素数,跳出For循环 If n Mod I = 0 Then Exit For End If Next I If I Int(Sqr(n) Then 如果正常跳出For循环,则I跳出循环For后的值应该是N,所以满足这个条件 s = True 当I是素数时s=true End If nf = s 当I是素数时, nf=true,否则 nf=falseEnd FunctionPrivate Sub form_click() Dim t As Boolean Dim q As Boolean Dim I As
11、 Integer Dim j As Integer Dim a As Integer For I = 100 To 200 Step 2 For j = 2 To I / 2 I一定可分解为一个大于它一半的数和小于它一半的数 t = nf(j) 调用Funtion(函数)nf,判断i是否是素数,把nf的值(true或flase)赋值给变量t If t = True Then 如果t是true 就往下执行,否则就执行到 End if(2)后面的next j语句 q = nf(I - j) 调用Funtion(函数)nf,判断i-j是否是素数,把nf的值(true或flase)赋值给变量q If
12、q = True Then 如果q是true(说明i-j是素数) 就往下执行,否则就跳到 End if(1),继续执行j循环Print j, I - j 当q是true和t是True同时满足时,说明I的确能分解为两个素数,就打出 j 和 I-j 的值 Exit For 跳出j循环,判断下一个偶数 End If (1) End If (2) Next j Next IEnd Sub11. 判断是否为素数判断一个整数(=3)是否为素数: 提示:如果一个(=3的)整数可以将n被2到n(n的平方根)之间的所有整数除,如果都除不尽,则n为素数()质数,否则n为非素数(合数)。 编写程序如下:Sub Fo
13、rm_Click() Dim n As Integer n=InputBox(请输入一个正整数(=3):) k=Int(Spr(n) 取不大于n的平方根的最大整数 i=2 Swit=0 While iint(Sqr(N) Then Print N & 是素数 Else Print N & 不是素数 End If End Sub 用While.Wend循环:Sub Form_Click() Dim I As Integer, N As Integer N = Val(InputBox() I = 2 c = Int(Sqr(N) Do While I c Then Print N & 是素数 E
14、lse Print N & 不是素数 End IfEnd Sub法2:一个数n是素数的条件:不能被2 n-1整除用For.Next语句Sub Form_Click() Dim I as Integer,N As Integer N=val(InputBox() For I=2 to N-1 If N Mod I=0 Then Exit For 如果能被2 N-1中任何一个数整除,则不是素数,跳出For循环 Next I If I = N Then如果正常跳出For循环,则I跳出循环For后的值应该是N,所以满足这个条件 Print N & 是素数 Else Print N & 不是素数 End
15、 IfEnd Sub12. 切换信号灯模拟交通信号灯的切换:在窗体上画出3个图像框和两个命令按钮Command1(切换信号)和Command2(结束程序)。三个图像框分别装有红、绿、蓝三的信号标志的图片。 编写如下事件过程:Private Sub Form_Load() Image2.Visible=Flase Image3.Visible=Flase End Sub Private Sub Command1_Click() If Image1.Visible=True Then Image1.Visible=False Image2.Visible=Ture ElseIf Image2.Vi
16、sible=Ture Then Image2.Visible=False Image3.Visible=True Else Image3.Visible=False Image2.Visible=True End IfEnd SubPrivate Sub Commdan2_Click() EndEnd Sub13. 求N!求N的阶乘N!(N为自然数):程序如下:Sub Form_Click() Dim N As Integer N=InputBox(enter N:) k=1 For i=1 To N k=k*i Next i Print N;N!=;kEnd Sub该程序也可以写成:Sub
17、Form_Click() Dim N As Integer N=InputBox(enter N:) k=1:m=1 For i=1 To N k=k*i:m=m+1 Next i Print N;N!=;kEnd Sub 程序也可以这样写:Private Sub command1_Click() Dim I As Integer, f As Double, n As Integer n = InputBox(输入一个自然数:, 输入提示, ) f = 1 For I = 1 To n Step 1 f = f * I Next I Text1.Text = f End Sub Private
18、 Sub Command2_Click() End End Sub14. 人口达到或超过70亿所需年数假设目前世界人口约为60亿,如果以每年1.4%的速度增长,多少年后世界人口达到60亿或超过60亿? 程序如下: Sub Form_Click() Dim p AS Double Dim r AS Single Dim n AS Integer P=6000000000# r=0.014 n=0 Do Until p=7000000000# p=p*(1+r) n=n+1 Loop Print n;年后世界人口达到;p End Sub上述所用是“Do UntilLoop”循环结构。该程序若改用“
19、DoLoop Until”循环,则程序为: Sub Form_Click() Dim p AS Double Dim r AS Single Dim n AS Integer P=6000000000# r=0.014 n=0 Do p=p*(1+r) n=n+1 Loop Until p=7000000000# Print n;年后世界人口达到;p End Sub15. 输出100300之间的所有素数输出100300间的所有素数:程序如下:Sub Form_Click() For n=101 To 300 step 2 k=Int(Spr(n) 取不大于n的平方根的最大整数 i=2 Swit
20、=0 While i=k And Swit=0 If n Mod i=0 Then Swit=1 Else i=i+1 End If Wend If Swit=0 Then d=d+1 If d Mod 5=0 Then 输出5个数字后换行 Print n; ; Print Else Print n; End If End If Next nEnd Sub16. 水仙花数Visual Basic 的水仙花数实现代码: 说明:水仙花数是指一个 n 位数 ( n3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:13 + 53 + 33 = 153)三位的水仙花数共有4个:153,370
21、,371,407;四位的水仙花数共有3个:1634,8208,9474;五位的水仙花数共有3个:54748,92727,93084;六位的水仙花数只有1个:548834;七位的水仙花数共有4个:1741725,4210818,9800817,9926315;八位的水仙花数共有3个:24678050,24678051,88593477编写如下事件过程: Private Sub Form_Click() Dim a, b, c As Integer a(个)b(十)c(百) For a = 0 To 9 For b = 0 To 9 For c = 1 To 9 If a 3 + b 3 + c
22、3 = a + 10 * b + 100 * c Then MsgBox 100 * c + 10 * b + a 或写成 Print 100 * c + 10 * b + a End If Next c Next b Next a End Sub17. 添加成员列表(枚举类型)的方法添加成员列表(枚举类型)可以用Enum语句: 如:Public Enum Workdays Saturday Sunday Monday Tuesday Wednesday Thursday FridayEnd Enum在默认情况下,枚举中的第一个常数被初始化为0,其后的常数则初始化为比起前面的常数大1的数值。上
23、述的枚举中常数Sunday的值为0。Public Enum Workdays Saturday Sunday=0 Monday Tuesday Wednesday Thursday Friday Invalid=-1End Enum 该程序的第一个元素Sunday被赋值为0,Saturday为第一个元素,也被赋值为0,Tuesday的值为2。18. 显示不同形状 在窗体上显示6中不同是形状:Private Sub Form_Click() FontSize=12 CurrentX=350 Print 0; For i=1 To 5 Shape1(i).Left=Shape1(i-1).Left+1050 Shape1(i).Shape=1 Shape1(i).Visible=True CurrentX=CrrentX+750 P
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1