20道VB操作题(含代码和图片).doc

上传人:xins****2008 文档编号:199966966 上传时间:2023-04-13 格式:DOC 页数:15 大小:375.50KB
收藏 版权申诉 举报 下载
20道VB操作题(含代码和图片).doc_第1页
第1页 / 共15页
20道VB操作题(含代码和图片).doc_第2页
第2页 / 共15页
20道VB操作题(含代码和图片).doc_第3页
第3页 / 共15页
资源描述:

《20道VB操作题(含代码和图片).doc》由会员分享,可在线阅读,更多相关《20道VB操作题(含代码和图片).doc(15页珍藏版)》请在装配图网上搜索。

1、不用过程,覆盖以下算法(10题):1. 求随机10个两位整数的最大值、最小值、平均值以及和Dim s(1 To 10) As IntegerPrivate Sub Command1_Click()Dim i As IntegerFor i = 1 To 10 s(i) = Int(Rnd * 90) + 10这里是用列表框做的,建议练习下用文本框做的,考试时随机应变List1.AddItem s(i) Next iEnd SubPrivate Sub Command2_Click()Dim i As IntegerDim max As Integer, min As Integer, sum

2、As Integermax = s(1)min = s(1)sum = 0For i = 1 To 10 sum = sum + s(i)Next iFor i = 2 To 10 If s(i) max Then max = s(i) If s(i) min Then min = s(i)Next iText1 = maxText2 = minText3 = sum / 10Text4 = sumEnd Sub2.求水仙花数这道题用列表框做的,建议再练习下用文本框做Private Sub Command1_Click()Dim i As Integer, a As Integer, b As

3、 Integer, c As IntegerFor a = 1 To 9For b = 0 To 9For c = 0 To 9i = a * 100 + b * 10 + cIf i = a 3 + b 3 + c 3 Then List1.AddItem iNext cNext bNext aEnd SubPrivate Sub Command2_Click()List1.Clear 注意列表框的清除语句是Clear!End Sub3.百元买百鸡Private Sub Command1_Click()Dim x As Integer, y As Integer, z As IntegerL

4、ist1.AddItem 公鸡 母鸡 小鸡For x = 1 To 20For y = 1 To 33z = 100 - x - yIf 5 * x + 3 * y + z / 3 = 100 ThenList1.AddItem CStr(x) & Space(6) & CStr(y) & Space(6) & CStr(z)End IfNext xNext yEnd Sub4.求1000内所有完数一个数的所有因子(包含1,但除这个数本身)之和与这个数相等即为完数Private Sub Command1_Click()Dim i As IntegerDim j As IntegerDim in

5、tSum As IntegerFor i = 1 To 1000intSum = 0For j = 1 To Int(i / 2)If i Mod j = 0 Then intSum = intSum + jNext jIf intSum = i Then List1.AddItem iNext iEnd Sub5.求各位数字之和Private Sub Command1_Click()Dim k As String, i As Integer, s As Integerk = CStr(Text1)For i = 1 To Len(k) s = s + Val(Mid(k, i, 1)Next

6、 iText2 = sEnd Sub6.求最小公倍数为了扩大可求最小公倍数的范围,把m或n的类型改为long即可Private Sub Command1_Click()Dim m As Integer, n As Integer, r As Integer, a As Integer, b As Integer m = Text1n = Text2a = mb = nDo r = a Mod b a = b b = rLoop Until r = 0Text3 = m * n / a 此题实际是利用最大公约数求最小公倍数,a即为最大公约数End Sub7.求逆序数Private Sub Com

7、mand1_Click()Dim n As String, s As StringDim i As Integern = Text1For i = Len(n) To 1 Step -1 s = s & Mid(n, i, 1)Next iText2 = sEnd Sub8.级数的有限项求和Private Sub Command1_Click()Dim s As Double, n As LongDim m As Doubles = 0n = 1Do m = 1 / (2 * n - 1) 这个是级数表达式,可根据题目要求修改 If m = A And UCase(s) = Z Then a(

8、Asc(UCase(s) - 64) = a(Asc(UCase(s) - 64) + 1 End IfNext iFor i = 1 To 26 If a(i) 0 Then List1.AddItem Chr(64 + i) & : & a(i) End IfNext iEnd Sub指定编写过程并调用此过程,覆盖以下算法(10题):1. 判断素数的过程Option ExplicitPrivate Sub Command1_Click()Dim m As Integerm = Val(Text1)Text2 = fun(m)End SubFunction fun(n As Integer)

9、 As StringDim i As IntegerFor i = 2 To n - 1If n Mod i = 0 Thenfun = n & 不是素数Exit ForEnd IfNext iIf i = n Thenfun = n & 是素数End IfEnd Function2.求最大公约数Private Sub Command1_Click()Dim m As Integer, n As Integerm = Val(Text1)n = Val(Text2)Text3 = gys(m, n)End SubFunction gys(ByVal a As Integer, ByVal b

10、As Integer) As IntegerDim r As IntegerDo r = a Mod b a = b b = rLoop Until r = 0gys = aEnd Function3.冒泡法排序Option Base 1Dim a(10) As IntegerFunction fun(b() As Integer) As IntegerDim m As Integer, n As Integer, t As IntegerFor m = 1 To 9For n = 1 To 10 - mIf b(n) = b(n + 1) Thent = b(n)b(n) = b(n + 1

11、)b(n + 1) = tEnd IfNext nNext mFor n = 1 To 10Text2 = Text2 & b(n) & Next nEnd FunctionPrivate Sub Command1_Click()Dim i As IntegerRandomizeFor i = 1 To 10a(i) = Int(90 * Rnd) + 10Text1 = Text1 & a(i) & Next iEnd SubPrivate Sub Command2_Click()Call fun(a()End Sub4.顺序查找过程Option Base 1Dim a(10) As Int

12、egerPrivate Sub Command1_Click()Dim i As IntegerRandomizeText1 = Text2 = Text3 = For i = 1 To 10a(i) = Int(Rnd * 90 + 10)Text1 = Text1 & a(i) & Next iEnd SubPrivate Sub Command2_Click()Dim n As Integern = search(a, Val(Text2)If n 0 ThenText3 = 要查找的数是第 & n & 个数ElseText3 = 要查找的数不存在End IfEnd SubFunctio

13、n search(a() As Integer, x As Integer) As IntegerDim i As Integersearch = 0For i = 1 To 10If a(i) = x Thensearch = iEnd IfNext iEnd Function5.判断回文数Option ExplicitFunction fun(ByVal i As Long) As BooleanDim t As Long, s As Longt = iDo While i 0s = s * 10 + (i Mod 10)i = i 10LoopIf s = t Thenfun = Tru

14、eElsefun = FalseEnd IfEnd FunctionPrivate Sub Command1_Click()Dim n As Longn = Val(Text1)If fun(n) = True ThenText2 = n & 是回文数ElseText2 = n & 不是回文数End IfEnd Sub6.递归函数求阶乘这道题解答过程有两种(1)方法一:只求1到7阶乘Private Sub Command1_Click()List1.ClearDim i As IntegerFor i = 1 To 7List1.AddItem fact(i)Next iEnd SubFunc

15、tion fact(ByVal n As Double) As DoubleIf n = 1 Thenfact = 1Elsefact = n * fact(n - 1)End IfEnd Function(2)方法二:输入n值求阶乘Private Sub Command1_Click()Dim n As Integern = Val(Text1)Text2 = Str(fun(n)End SubFunction fun(i As Integer) As LongIf i = 0 Or i = 1 Thenfun = 1Elsefun = fun(i - 1) * iEnd IfEnd Fun

16、ction7. 递归函数求Fibonacci数列这道题解答过程有两种(1)方法一:输入项数n,列出前n项的值Private Sub Command1_Click()Dim m As Integer, i As Integerm = Val(Text1)For i = 1 To mText2 = Text2 & fun(i) & If i Mod 5 = 0 Then Text2 = Text2 & vbCrlfNext iEnd SubFunction fun(n As Integer) As LongIf n = 1 Or n = 2 Thenfun = 1Elsefun = fun(n -

17、 1) + fun(n - 2)End IfEnd Function(2)方法二:输入项数n,计算前n项和Private Function fi(x) As LongIf x = 1 Or x = 2 Thenfi = 1Elsefi = fi(x - 1) + fi(x - 2)End IfEnd FunctionPrivate Sub Command1_Click()Dim x As Integer, s As Longx = InputBox(输入项数)s = fi(x)MsgBox (s)End Sub8.矩阵靠边元素之和Private Sub Command1_Click()Dim

18、a(1 To 4, 1 To 4) As IntegerDim i As Integer, j As IntegerFor i = 1 To 4For j = 1 To 4a(i, j) = Int(Rnd * 10) + 0Next iNext jFor i = 1 To 4For j = 1 To 4Picture1.Print a(i, j);Next jPicture1.PrintNext iText1 = fun1(a)End SubFunction fun1(x() As Integer) As DoubleDim i As Integer, j As Integerfun1 =

19、0For i = LBound(x, 1) To UBound(x, 1)For j = LBound(x, 2) To UBound(x, 2)If i = LBound(x, 1) Or i = UBound(x, 1) Or j = LBound(x, 2) Or j = UBound(x, 2) Thenfun1 = fun1 + x(i, j)End IfNextNextEnd Function9.矩阵不靠边元素之和Dim a(1 To 5, 1 To 5) As IntegerPrivate Sub Command1_Click()Dim i As Integer, j As In

20、tegerFor i = 1 To 5For j = 1 To 5a(i, j) = Int(Rnd * 90) + 10Next jNext iFor i = 1 To 5For j = 1 To 5Picture1.Print a(i, j);Next jPicture1.PrintNext iEnd SubPrivate Sub Command2_Click()Text1 = fun1(a)End SubFunction fun1(x() As Integer) As DoubleDim i As Integer, j As Integerfun1 = 0For i = LBound(x

21、, 1) To UBound(x, 1)For j = LBound(x, 2) To UBound(x, 2)If Not (i = LBound(x, 1) Or i = UBound(x, 1) Or j = LBound(x, 2) Or j = UBound(x, 2) Thenfun1 = fun1 + x(i, j)End IfNext jNext iEnd Function10.矩阵转置这题要注意根据题目要求修改数组的行数和列数,下面蓝色字体为要修改部分。建议再练习用文本框代替图片框做这道题Option ExplicitOption Base 1Dim a(4, 5) As I

22、ntegerFunction fun(b() As Integer, x As Integer, y As Integer)Dim s As Integer, t As IntegerDim c(5, 4) As IntegerFor s = 1 To xFor t = 1 To yc(s, t) = b(t, s)Picture2.Print c(s, t);Next tPicture2.PrintNext sEnd FunctionPrivate Sub Command1_Click()Dim m As Integer, n As IntegerRandomizeFor m = 1 To 4For n = 1 To 5a(m, n) = Int(90 * Rnd) + 10Picture1.Print a(m, n);Next nPicture1.PrintNext mEnd SubPrivate Sub Command2_Click()Call fun(a, 5, 4)End SubPrivate Sub Command3_Click()Picture1.Cls 注意图片框的清除用Cls语句Picture2.ClsEnd Sub

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!