1、VB复习要点复习要点1. 赋值语句和Print语句11交换两个变量的内容Cup= A A= B B=Cup12输入内容121文本框输入到变量中A=Val(Text1.Text)122 InputBox函数输入到变量中A=Val(InputBox(“input A”)13输出内容131文本框输出显示信息Text1.Text=A132标签输出显示信息Label1.Caption=A133MsgBox函数输出显示信息R=MsgBox( “a=” & A)14 四舍五入141把X四舍五入保留2位小数,结果赋值给YY=Int(X*100+0.5)/100Y=Round(X*100)/10015 Prin
2、t方法151输出项在同行的显示技术在前一个输出项的后面加上逗号或者分号,下一个输出项在同行显示,逗号表示分区显示格式,分号表示紧凑格式。152输出项的换行显示技术在输出项的最后没有加上逗号或者分号,表示输出完本语句的输出项内容后,换行到下一行,光标在下一行的第一个列位置。2分支选择语句21 判断奇偶数 If A Mod 2 = 0 Then Print “A is Even” Else Print “A is Odd” End If22 判断X是否是3的倍数 If X Mod 3 = 0 Then Print “X is multiple of 3.” Else Print “X is not
3、 multiple of 3.” End If23 判断X是否是正整数 If X 0 And X=Int(X) Then Print “X is positive Integer.” Else Print “X is not positive Integer.” End If24 根据X的取值范围,分段求出Y的值IF语句实现Option ExplicitPrivate Sub Form_Click() Dim x#, y# x = Val(InputBox(input x) If x 100 Then y = 2 * x 3 + 3 * x 2 + 5 ElseIf x 15 And x 10
4、0 y = 2 * x 3 + 3 * x 2 + 5 Case x 15 And x 30 y = 5 * x * x - 12 Case Else y = x + 1 End Select Print yEnd Sub25水仙花数问题 把三位数X中的个位、十位、百位数字分离出来,方法如下: 个位数字=X MOD 10 十位数字=(X 10) MOD 10 百位数字=X 100 判断: 个位数字的立方 + 十位数字的立方 + 百位数字的立方 是否等于X? 相等 则X是水仙花数 不相等 则X是水仙花数Option ExplicitPrivate Sub Form_Click() Dim X%,
5、 a%, b%, c% X = Val(InputBox(input x) a = X 100 b = (X Mod 100) 10 c = X Mod 10 If X = a 3 + b 3 + c 3 Then Print X; 是水仙花数 Else Print X; 不是水仙花数 End IfEnd Sub3循环语句31累加累乘问题求1+2+3+100Option ExplicitPrivate Sub Form_Click() Dim i%, s& For i = 1 To 100 s = s + i Next i Print sEnd Sub求12的阶乘问题Option Explic
6、itPrivate Sub Form_Click() Dim i%, s& s = 1 For i = 1 To 100 s = s * i Next i Print sEnd Sub32统计数量问题找出100到999间所有是7的倍数的整数的个数Option ExplicitPrivate Sub Form_Click() Dim i%, c% For i = 100 To 999 If i Mod 7 = 0 Then c = c + 1 Next i Print cEnd Sub33判断素数问题Option ExplicitPrivate Sub Form_Click() Dim N%,
7、i%, assume As Boolean N = Val(InputBox(input N) assume = True For i = 2 To N - 1 If N Mod i = 0 Then assume = False Exit For End If Next i If assume Then Print N; is prime Else Print N; is not prime End IfEnd Sub33打印”*”图形Private Sub Form_Click() Dim i%, j% For i = 1 To 9 For j = 1 To 2 * i - 1 Print
8、 *; Next j Print Next iEnd SubPrivate Sub Form_Click() Dim i%, j% For i = 1 To 9 Print Tab(20 - i); For j = 1 To 2 * i - 1 Print *; Next j Print Next iEnd SubPrivate Sub Form_Click() Me.FontName = 宋体 Dim i%, j% For i = 9 To 1 Step -1 Print Tab(20 - 2 * i); For j = 1 To 2 * i - 1 Print *; Next j Prin
9、t Next iEnd SubPrivate Sub Form_Click() Me.FontName = 宋体 Dim i%, j% For i = 9 To 1 Step -1 Print Tab(20 - i); For j = 1 To 2 * i - 1 Print *; Next j Print Next iEnd SubPrivate Sub Form_Click() Me.FontName = 宋体 Dim i%, j% For i = 1 To 9 Print Tab(i); For j = 1 To 8 Print *; Next j Print Next iEnd Sub
10、Private Sub Form_Click() Me.FontName = 宋体 Dim i%, j% For i = 1 To 9 Print Tab(20 - i); For j = 1 To 2 * i - 1 If j = 1 Or j = 2 * i - 1 Or i = 9 Then Print *; Else Print ; End If Next j Print Next iEnd Sub34最大公约数Option ExplicitPrivate Sub Form_Click() Dim m%, n%, tmp%, r% m = Val(InputBox(input M) n
11、 = Val(InputBox(input N) If m n Then tmp = n: n = m: m = tmp End If r = m Mod n While r 0 m = n n = r r = m Mod n Wend Print nEnd Sub35水仙花数所谓水仙花数是1个三位数,其个位数字、十位数字和百位数字的立方之和等于此数本身。编写程序找出三位数中所有的水仙花数。Option ExplicitPrivate Sub Form_Click() Dim i%, a%, b%, c% For i = 100 To 999 a = i 100 b = (i Mod 100)
12、 10 c = i Mod 10 If a 3 + b 3 + c 3 = i Then Print i End If Next iEnd Sub36打印出Faibonacci数列的前40个数,每行打印5个数。Option ExplicitPrivate Sub Form_Click() Dim F1#, F2#, F3#, i% F1 = 1: F2 = 1 Print F1, F2, For i = 3 To 40 F3 = F2 + F1 Print F3, If i Mod 5 = 0 Then Print F1 = F2 F2 = F3 Next iEnd Sub37打印出九九乘法表
13、Option ExplicitPrivate Sub Form_Click()Dim i%, j%, s%For i = 0 To 9 For j = 0 To 9 s = i * j Print i; *; j; =; s; Tab(12 * (j + 1); Next j PrintNext iPrint: Me.FontSize = 20Print Tab(20); 九九乘法表End Sub4数组41输入10个数组元素,找出其中的最大数。Private Sub Form_Click() Dim x%(1 To 10), i%, Max%, loc% For i = 1 To 10 x(i
14、) = Val(InputBox() Print x(i); Next i Print Max = x(1): loc = 1 For i = 2 To 10 If Max x(i) Then Min = x(i): loc = i End If Next i Print the minimum is:x(; loc; )=; x(loc)End Sub43随机产生10个两位整数放于数组中,然后任意输入一个数,查找数组中是否有此数。Private Sub Form_Click() Dim x%(1 To 10), i%, N%, T As Boolean For i = 1 To 10 x(i
15、) = Int(Rnd * 90) + 10 Print x(i); Next i Print N = Val(InputBox(input N) For i = 1 To 10 If N = x(i) Then T = True End If Next i If T Then Print N; is found in the array Else Print N; is not found in the array End IfEnd Sub44随机产生10个两位整数放于数组中,用选择法排序,按从小到大排列。Private Sub Form_Click() Dim x%(1 To 10),
16、i%, j%, Min%, Tmp%, loc% For i = 1 To 10 x(i) = Int(Rnd * 90) + 10 Print x(i); Next i Print For i = 1 To 9 Min = x(i): loc = i For j = i + 1 To 10 If Min x(j) Then Min = x(j): loc = j End If Next j Tmp = x(i): x(i) = x(loc): x(loc) = Tmp Next i For i = 1 To 10 Print x(i); Next iEnd Sub45随机产生10个两位整数放
17、于数组中,用冒泡法排序,按从大到小排列。Private Sub Form_Click() Dim x%(1 To 10), i%, j%, Min%, Tmp%, loc% For i = 1 To 10 x(i) = Int(Rnd * 90) + 10 Print x(i); Next i Print For i = 1 To 9 For j = 1 To 10 - i If x(j) 0 And Int(M) = M Do N = Val(InputBox(input N) Loop Until N 0 And Int(N) = N If M N Then tmp = M: M = N:
18、 N = tmp Print 最小公倍数是:; M * N / gys(M, N)End SubFunction gys%(ByVal x%, ByVal y%) Dim r% r = x Mod y Do While r 0 x = y y = r r = x Mod y Loop gys = yEnd Function52统计1000-9999间素数的个数Option ExplicitPrivate Sub Form_Click() Dim i%, c% i = 9999 Do While i = 1000 If isPrime(i) Then c = c + 1 i = i - 1 Lo
19、op Print the prime number from 1000 to 9999is:; cEnd SubFunction isPrime(ByVal N%) As Boolean Dim tmp As Boolean, i% tmp = True For i = 2 To N - 1 If N Mod i = 0 Then tmp = False: Exit For Next i If tmp Then isPrime = True Else isPrime = FalseEnd Function53计算1!+2!+12!Option ExplicitPrivate Sub Form_
20、Click() Dim i%, sum& i = 1 Do Until i 12 sum = sum + factorial(i) i = i + 1 Loop Print sumEnd SubFunction factorial&(ByVal N%) Dim i%, s& s = 1 For i = 2 To N - 2 s = s * i Next i factorial = sEnd Function6 图形图像处理61把窗口的坐标原点移动到窗口的中央,以坐标原点为圆心画出5个同心圆。Option ExplicitPrivate Sub Form_Click() Dim x#, y#,
21、i% x = Me.ScaleWidth y = Me.ScaleHeight Me.ScaleLeft = -x / 2 Me.ScaleTop = -y / 2 Me.Line (-x, 0)-(x, 0) Me.Line (0, -y)-(0, y) Me.CurrentX = 0 Me.CurrentY = -y / 2 + 100 Print Y Me.CurrentX = x / 2 - 100 Me.CurrentY = 0 Print X For i = 1 To 6 Me.Circle (0, 0), 200 + i * 200 Next iEnd Sub62改变窗口坐标系统
22、的刻度单位,把坐标原点移动到窗口的中央,画出-2*PI到2*PI的正弦函数曲线。Option ExplicitPrivate Sub Form_Click() Dim x#, y# Const PI# = 3.14159265358979 Me.ScaleWidth = 4 * PI Me.ScaleHeight = -3 Me.ScaleLeft = -2 * PI Me.ScaleTop = 1.5 Me.Line (-2 * PI, 0)-(2 * PI, 0) Me.Line (0, -1.5)-(0, 1.5) Me.CurrentX = 0 Me.CurrentY = 1.3 Print Y Me.CurrentX = 2 * PI - 0.4 Me.CurrentY = 0 Print X For x = -2 * PI To 2 * PI Step 0.01 y = Sin(x) Me.PSet (x, y) Next xEnd Sub
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1