




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上1某数组有20个元素,其值为随机产生的两位整数。现要求将前10个元素与后10个元素对换。即第1个元素与第20个元素互换,第2个数与第19个元素互换,第10个元素与第11个元素互换。在窗体上输出数组原来各元素的值与对换后各元素的值。Option ExplicitDim a(1 To 20) As Integer, i As Integer, j As Integer, t As IntegerPrivate Sub Form_Load()me.ShowPrint "原始数组是:"RandomizeFor i = 1 To 20 a(i) = Int(
2、Rnd * 90+10) '10 to 99 Print a(i); If i Mod 10 = 0 Then PrintNext iPrintPrint "现在数组是:"For i = 1 To 10 j = 21 - i t = a(i): a(i) = a(j): a(j) = tNext i For i = 1 To 20 Print a(i); If i Mod 10 = 0 Then Print Next iEnd Sub2从数组中删除一个数。先定义一个一维数组,大小、数组的值自定。从键盘上输入一个数,若这个数在数组当中,就把它删除;若这个数不在数组中,
3、提示“该数不在数组中”注意:1)如果数组中存在多个与该数相同的元素,每一个都能删除;2)能实现多次删除Dim a() As IntegerPrivate Sub Command1_Click()Dim i As Integer, j As Integer, n As Integer, k As Integer, m As Integer, flag As Booleann = InputBox("查找的数是:")i = 0: flag = FalseDo If a(i) = n Then j = i: flag = True For k = j To UBound(a) -
4、 1 a(k) = a(k + 1) Next k ReDim Preserve a(UBound(a) - 1) i = i - 1 End If i = i + 1Loop While (i <= UBound(a)If flag = False Then MsgBox (n & "不在该数组中")ElsePrint "删除" & n & "后的数组是:" For i = 0 To UBound(a) Print a(i); Next iEnd IfEnd SubPrivate Sub Form_Lo
5、ad()Dim i As IntegerReDim a(9) As IntegerShowRandomizePrint "原来数组为:"For i = 0 To 9 a(i) = Int(Rnd * 99 + 1) Print a(i); Next iPrintEnd Sub3数组a中存放着升序排列的数据,使用array赋值,将inputbox输入的新数插入到数组中,插入后数组仍有序。注意:要求利用动态数组,能够实现多次插入Option Base 1Dim a() As Integer, i As Integer, k As Integer, m As Integer, n
6、 As IntegerPrivate Sub Command1_Click()Print "随机产生的原数组:"ReDim Preserve a(10) n = 10For i = 1 To nRandomizea(i) = Int(Rnd * 99 + 1)NextFor i = 1 To n - 1 For j = i + 1 To n If a(i) > a(j) Then t = a(i): a(i) = a(j): a(j) = t End If Next j Print a(i); Next i Print a(n) End Sub Private Sub
7、 Command2_Click()n = n + 1ReDim Preserve a(n)m = InputBox("输入一个正整数")PrintPrint "插入" m; "后的数组为" If a(1) < m And a(n - 1) > m Then For i = 2 To n - 2 If a(i) <= m And a(i + 1) >= m Then j = i: Exit ForNexta(j + 1) = mFor i = 1 To nPrint a(i);NextEnd IfIf m <
8、;= a(1) Then For i = n To 1 Step -1 a(i + 1) = a(i) Nexta(1) = mFor i = 1 To nPrint a(i);NextEnd If If m >= a(10) Then a(n) = m For i = 1 To n Print a(i); Next End If End Sub 3数组a中存放着升序排列的数据,使用array赋值,将inputbox输入的新数插入到数组中,插入后数组仍有序。注意:要求利用动态数组,能够实现多次插入Option ExplicitOption Base 1Dim a() As Integer
9、, i As Integer, k As Integer, m As Integer, n As Integer, j As Integer, t As IntegerPrivate Sub Command1_Click()n = n + 1ReDim Preserve a(n)m = Val(InputBox("请输入要插入的数据")For i = 1 To n - 1If m < a(i) Then Exit ForNext iFor k = n To i - 1 Step -1a(k) = a(k - 1)Next ka(k) = mFor i = 1 To n
10、 - 1 For j = i + 1 To n If a(i) > a(j) Then t = a(i): a(i) = a(j): a(j) = t End If Next j Print a(i); Next i Print a(n) PrintEnd SubPrivate Sub Form_Load()Shown = 8ReDim a(n)a(1) = 5: a(2) = 10: a(3) = 15: a(4) = 20: a(5) = 30: a(6) = 90: a(7) = 108: a(8) = 1025For i = 1 To nPrint a(i);NextPrintE
11、nd Sub46个评委为4位歌手打分,分数介于1-100之间。去掉一个最高分,一个最低分,求出每位选手的最后得分。将4位歌手得分从高到低排列输出,同时输出该选手的编号。如: 歌手3 95分 歌手 1 87分 歌手 4 80分 歌手 2 70分Option ExplicitOption Base 1Private Type cj '自定义类型 na As String * 3fs As IntegerEnd TypeDim a(4, 6) As SinglePrivate Sub Command1_Click()Dim i As Integer, j As IntegerFor i =
12、1 To 4 For j = 1 To 6 a(i, j) = InputBox("请第" & j & "位评委给第" & i & "位选手打分") NextNext End SubPrivate Sub Command2_Click()Dim i As Integer, j As Integer, b(4) As cjDim max As Single, sum As Single, min As Single, ave As Single, t As cjFor i = 1 To 4 max = a
13、(i, 1): sum = 0 min = a(i, 1): ave = 0 For j = 1 To 6 If a(i, j) > max Then max = a(i, j) If a(i, j) < min Then min = a(i, j) sum = sum + a(i, j) Next ave = (sum - max - min) / 4b(i).na = "歌手" & i: b(i).fs = aveNextFor i = 1 To 3 For j = i + 1 To 4 If b(i).fs < b(j).fs Then t
14、= b(i): b(i) = b(j): b(j) = t End If NextPrint b(i).na; Spc(1); b(i).fs & "分"NextPrint b(4).na; Spc(1); b(4).fs & "分"End Sub5编写函数求一元二次方程ax2 bx c=0的解。注意:要求考虑方程有两相等实根、两不等实根和两个虚根的情况。Private Sub Command1_Click()a = CSng(InputBox("请输入二次项系数")b = CSng(InputBox("请输
15、入一次项系数")c = CSng(InputBox("请输入常数项")Print getresult(a, b, c)End SubPublic Function getresult(ByVal a As Single, ByVal b As Single, ByVal c As Single) As StringIf b 2 - 4 * a * c > 0 Then X1 = (-1) * b + (b 2 - 4 * a * c) 0.5) / (2 * a) X2 = (-1) * b - (b 2 - 4 * a * c) 0.5) / (2 * a
16、) getresult = "x1=" & CStr(X1) & Chr(9) & "x2=" & cstr(X2)Else X = (-1) * b / (2 * a) If b 2 = 4 * a * c Then getresult = "x=" & CStr(X) Else y = (4 * a * c - b 2) 0.5 getresult = "x1=" & CStr(X) & "+" & CStr(y) &
17、"i" & Chr(9) & "x2=" & CStr(X) & "-" & CStr(y) & "i" End IfEnd IfEnd Function6. 任意输入一组字符,统计出大写字母多少个,小写字母多少个,数字多少个?要求用过程实现。Private Sub Command1_Click()Dim a As Integer, b As Integer, c As Integera = 0: b = 0: c = 0S = Len(Text1)For i = 1
18、 To S If Mid(Text1, i, 1) <> 32 Then '没空格 If Asc("a") < Asc(Mid(Text1, i, 1) And Asc(Mid(Text1, i, 1) < Asc("z") Then a = a + 1 '小写字母 If Asc("A") < Asc(Mid(Text1, i, 1) And Asc(Mid(Text1, i, 1) < Asc("Z") Then b = b + 1 '大写的 If 48
19、 < Asc(Mid(Text1, i, 1) And Asc(Mid(Text1, i, 1) < 57 Then c = c + 1 '数字 End IfNext i Print "小写字母共有" & a & "个" Print "大写字母共有" & b & "个" Print "数字共有" & c & "个" Print "其它(包括空格)共有" & S - a - b -
20、c & "个" Print "字符个数:" & SPrintEnd Sub7随机产生一个5*5的矩阵,将主对角线和次对角线元素都置为1,并求出矩阵的四周元素之和,显示在列表框中。Private Sub Form_Click()Dim i%, j%, s1%, s2%, s3%, s4%, s%Dim mat(1 To 5, 1 To 5) '定义矩阵For i = 1 To 5 For j = 1 To 5 If i = j Or i + j = 6 Then '主对角线和次对角线 mat(i, j) = 1 Else m
21、at(i, j) = Int(Rnd * 8 + 2) '其他位置产生随机的大于2的一位数 End If NextNextFor i = 1 To 5 For j = 1 To 5 Print mat(i, j); '一定不能忘记分号; Next PrintNext i '以下为求和For i = 1 To 5 s1 = s1 + mat(i, 1) '计算第一纵行的和 s2 = s2 + mat(i, 5) '计算第五纵行的和NextFor j = 1 To 5s3 = s3 + mat(1, j)s4 = s4 + mat(5, j)NextPrin
22、t s1, s2, s3, s4End Sub8编写一个函数,能将字母按下列规律译成密码:A<->Z a<->zB<->Y b<->y即第1个字母与第26个字母互换,第i个字母与第(26-i+1)个字母互换。在文本框中任意输入一个字符串,调用该函数将密码显示在另一个文本框中。Option ExplicitDim str1 As String, str2 As String, a As String, ss As StringDim i As Integer, n As IntegerPrivate Sub Command1_Click()Text
23、1.Text = "": Text2.Text = ""End SubPrivate Sub Text1_Change()str1 = Text1.Textn = Len(str1)For i = 1 To n a = Mid(str1, i, 1) '从字符串str1中的第i个字符开始向后截取1个字符 If Asc(a) >= 97 And Asc(a) <= 122 Then '说明是小写字母 str2 = Chr(219 - Asc(a) '122 97-i使首尾对调 ElseIf Asc(a) >= 65
24、 And Asc(a) <= 90 Then '说明是大写字母 str2 = Chr(155 - Asc(a) End IfNext iss = ss & str2Text2.Text = ssEnd Sub9编写2个函数,分别求两个正整数的最大公约数和最小公倍数,用户任意输入两个数,采用函数嵌套调用,该函数将它们在窗体显示。Private Sub Form_Click()Dim A As Integer, B As IntegerA = InputBox("请输入第一个数:")B = InputBox("请输入第二个数:")Pri
25、nt "两个数为:" A; BPrint "最大公约数为:" Maxg(A, B)Print "最小公倍数为:" Ming(A, B)End SubRem 求最大公约数Private Function Maxg(A As Integer, B As Integer)Dim X As Integer, Y As Integer, r As IntegerX = IIf(A >= B, A, B)Y = IIf(A <= B, A, B)Dor = X Mod YIf r = 0 Then Exit DoX = Y: Y =
26、rLoopMaxg = YEnd FunctionRem 求最小公倍数Private Function Ming(A As Integer, B As Integer)Ming = A * B / Maxg(A, B) '使用函数套用End Function10. 编写计算阶乘的Function过程,利用ex的下列公式计算e(直到最后一项小于10-6为止)的近似值。ex1 x/1! x2/2! x3/3! xn/n! Private Sub Form_Load()ShowDim x As Integer, n As Integer, s As Doublex = InputBox(&q
27、uot;请输入一个数n:")n = 1: s = 1Do s = s + (x n) / (jc(n) '调用函数来计算阶乘 n = n + 1 Loop Until x n / (jc(n) < 10 (-6) '计算结果到达一定精度停止循环Print sEnd SubPublic Function jc(n As Integer) As DoubleDim i As Integer, s As Doubles = 1For i = 1 To n s = s * i '利用累乘计算阶乘Next ijc = sEnd Function11输入整数N,显示
28、具有N行的杨辉三角形,要求按正三角形的形式在图片框中显示。Option ExplicitPrivate Sub Form_Load()WindowState = 2ShowDim a(), n As Integer, i As Integer, j As Integer, g As Integer, e As Integern = InputBox("请输入一个数:")ReDim a(n, n)e = 110For i = 1 To n e = e - 5: g = e 'e=5使两边对称 For j = 1 To n If j > i Then a(i, j
29、) = 0 Else If i = j Then a(i, j) = 1 Else a(i, j) = a(i - 1, j) + a(i - 1, j - 1) '形成杨辉三角方式加和 End If End If If a(i, j) = 0 Then '如果j>i,则退出这一行的书写,开始写下一行 Exit For Else Picture1.Print Tab(g); a(i, j); g = g + 10 End If Next j Picture1.Print '一行一行输出Next iEnd SubPrivate Sub Picture1_Click(
30、)End Sub12编写一个过程,输出以下菱形图形: A BBB CCCCC DDDDDDD CCCCC BBB A主程序输入一个奇数(>3),调用过程在窗体上输入图形。Option ExplicitPrivate Sub Command1_Click()Dim n As Integer, a As Integern = InputBox("请输入行数n")If n Mod 2 = 0 Or n < 2 Then '如果输入的不是奇数就报错 a = MsgBox("请输入奇数")Else Call tp(n)End IfEnd Sub
31、Private Sub tp(x As Integer)Dim i As Integer, m As Integerm = 26 '先将m放在中间位置,使图像展开For i = 1 To (x + 1) / 2 '直到最多的那行 m = m - 1 '每多一个字母,向前写一位 Print Tab(m); String(2 * i - 1, Chr(64 + i) '确定每行写几个,后面的按字母顺序输出Next i 'String(N,S)是重复输出N个S字符 大写A是65 小写a是97For i = (x + 1) / 2 + 1 To x '从
32、最多的那行下一行开始写 m = m + 1 Print Tab(m); String(2 * (x + 1 - i) - 1, Chr(64 + x + 1 - i)Next iEnd Sub13编写一个将十进制转换为二进制字符串输出的函数。调用函数计算用户输入一个十进制数,在文本框中输出二进制值。注意:输入数据为负数,应该将符号位输出如 -13 结果 -1101Dim n As IntegerPrivate Sub Form_Load()Dim x%n = InputBox("请输入一个十进制数")If n < 0 Then x = -n Else x = nejz
33、 (x)End SubPublic Function ejz(m As Integer) As IntegerDim r As Integer, ss As Stringr = m Mod 2Do While m >= 1 ss = Str(r) & ss 'Str函数把数值转换为字符型 m = m 2 '注意此处为整除运算符"",一定不能写为"/" r = m Mod 2LoopIf n < 0 Then Text1.Text = "-" & ss Else Text1.Text = ss
34、End Function14输入一个整数N,产生N个随机数(范围110*N),然后采用任何2种算法实现由小到大的排序。将排序前后的数据显示出来。Dim a() As Integer, n As IntegerPrivate Sub Form_Load()Shown = InputBox("请输入正整数n")ReDim a(n)Print "排序前"For i = 1 To n a(i) = Int(Rnd * (10 * n) + 1)Print a(i);Next iEnd SubPrivate Sub Command1_Click()Dim i As
35、 Integer, j As Integer, t As IntegerPrintPrint "用比较交换法排序:"For i = 1 To n - 1 For j = i + 1 To n If a(j) < a(i) Then t = a(i): a(i) = a(j): a(j) = t End If Next j Print a(i);Next i Print a(n)End SubPrivate Sub Command2_Click()Dim i As Integer, j As Integer, t As IntegerPrintPrint "用
36、冒泡法排序:"For i = 1 To n - 1 For j = 1 To n - i If a(j) > a(j + 1) Then t = a(j): a(j) = a(j + 1): a(j + 1) = t '依次从第一个开始同最后一个比较,把越大的放在越后面 End If Next '一轮比较从1到n-1Next '开始下一轮比较,从1到n-2For i = 1 To n Print a(i);NextEnd SubPrivate Sub Command3_Click()Dim i As Integer, j As Integer, t As
37、 IntegerPrintPrint "用选择法排序:"For i = 1 To n - 1 k = i For j = i + 1 To n If a(k) > a(j) Then k = j Next t = a(i): a(i) = a(k): a(k) = t Print a(i); NextPrint a(n)End Sub15 编写程序,在窗体上输出3100之间的所有素数。要求每行显示4个数。Private Sub Command1_Click()Print "3-100之间的所有素数为"Dim n As IntegerFor n =
38、3 To 100 If isprime(n) Then Call prtprime(n) '调用 函数和过程Next nEnd SubFunction isprime(a As Integer) As BooleanDim i As Integerisprime = TrueFor i = 2 To Int(Sqr(a) '平方根 If a Mod i = 0 Then isprime = False Exit For End IfoNext iEnd FunctionSub prtprime(b As Integer)Static cnt As Integer '静态变量cnt用来计数Print b;cnt = cnt + 1If cnt Mod 4 = 0 Then PrintEnd Sub16
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 翻译(英语)岗位考试试卷及答案
- 2025年多功能抑尘车合作协议书
- 2025年导电银浆项目建议书
- 2025年新光源助航灯光设备项目发展计划
- 第十四届全运会七人制橄榄球联合队传球运用分析
- 2025年辽宁省高校毕业生“三支一扶”计划考试笔试试题【答案】
- 黄冈市红安县中医医院招聘笔试真题2024
- 消防员测试题(附参考答案)
- 分管农业副镇长述职报告范文
- 2025年太阳能电池用多晶硅、非晶硅合作协议书
- 计量知识宣传培训课件
- 2025浙江商业技师学院公开招聘24人高频重点模拟试卷提升(共500题附带答案详解)
- 第一单元第3课《大地的肌理》课件-一年级美术下册(人教版2024)
- 《嗜血细胞综合征》课件
- 智能运营平台解决方案
- 2025年上半年山东省济南市事业单位笔试易考易错模拟试题(共500题)试卷后附参考答案
- 部编五年级道德与法治教学反思
- 考勤离职管理制度内容
- 煤层气采输技术基础知识单选题100道及答案
- 2024五人合伙健康产业投资合作协议模板3篇
- 半导体物理(I)知到智慧树章节测试课后答案2024年秋西安电子科技大学
评论
0/150
提交评论