您现在的位置是: 首页 > 高考调剂 高考调剂
高考vb矩阵,vba 矩阵
tamoadmin 2024-07-11 人已围观
简介1.vb矩阵排序问题2.VB编程,求一个M行N列的矩阵四周元素之和,元素值可以随机产生,M、 N从键盘输入3.vb 矩阵乘法运算?Option?Base?1Option?ExplicitPrivate?Sub?Command1_Click() Cls?‘测试时建议加上这句,因为结果有鞍点的概率较低,多鞍几次按钮才可能出现一次有鞍点的情况 Dim?a(6,?5)?As?Integer,?f?As
1.vb矩阵排序问题
2.VB编程,求一个M行N列的矩阵四周元素之和,元素值可以随机产生,M、 N从键盘输入
3.vb 矩阵乘法运算?
Option?Base?1
Option?Explicit
Private?Sub?Command1_Click()
Cls?'测试时建议加上这句,因为结果有鞍点的概率较低,多鞍几次按钮才可能出现一次有鞍点的情况 Dim?a(6,?5)?As?Integer,?f?As?Boolean,?i?As?Integer,?j?As?Integer Dim?k?As?Integer,?col?As?Integer,?max?As?Integer Randomize For?i?=?1?To?6For?j?=?1?To?5
a(i,?j)?=?Int(Rnd?*?90?+?10) Print?a(i,?j);Next?j
max?=?a(i,?1):?col?=?1
For?j?=?2?To?5
If?a(i,?j)?>=?max?Thenmax?=?a(i,?j):?col?=?j
End?IfNext?j
'以上五句程序的功能是找出该行的最大值,并记下其位置
'以下三句判断找出的行的最大值是否是它所在的列的最小值
For?k?=?1?To?6
If?a(k,?col)?<?a(i,?col)?Then?Exit?For?'如果条件不满足,结束子循环,其结果是条件成立时k的值小于7Next?k
If?k?=?7?Then'如果k=7,那么上面的子循环没有提前结束,也就是对于该列的每一个数都不小于所找出的列的最大值,即满足鞍点的条件
Print?"鞍点是:a("?&?i?&?","?&?col?&?")" f?=?True?'将f设置为true,标示找到鞍点End?If
Next?i
If?f?=?False?Then?Print?"没有鞍点"?'如果没有鞍点,输出没有鞍点
End?Sub
vb矩阵排序问题
Private Sub Command1_Click()
Dim a(4, 5) As Integer Randomize Print "原来的数组:" For i = 1 To 4s = 0 '不需要时此行可删除
For j = 1 To 5
? a(i, j) = Int(Rnd * 100 + 1)
? s = s + a(i, j)
? Print Tab(4 * j); a(i, j);
Next j
Print "", s'不需要时此行可删除
Next i Min = 9999 Max = -1 For i = 1 To 4Sum = 0
For j = 1 To 5
? Sum = Sum + a(i, j)
Next j
If Sum > Max Then maxi = i: Max = Sum
If Sum < Min Then Min = Sum: mini = i
Next i For j = 1 To 5t = a(maxi, j): a(maxi, j) = a(mini, j): a(mini, j) = t
Next j Print "交换后的数组:" For i = 1 To 4s = 0 '不需要时此行可删除
For j = 1 To 5
? Print Tab(4 * j); a(i, j);
? s = s + a(i, j)
Next j
Print "", s '不需要时此行可删除
Next iEnd Sub
VB编程,求一个M行N列的矩阵四周元素之和,元素值可以随机产生,M、 N从键盘输入
Dim a(1 To 5, 1 To 5) As Integer
Dim i, j, n As Integer
Private Sub Form_click()
Print "随机输出5*5方阵:"
Randomize
For i = 1 To 5
For j = 1 To 5
a(i, j) = Rnd * 10
Print a(i, j);
Next j
Next i
For n = 1 To 5
m = 1
For j = 2 To 5
If a(n, m) > a(n, j) Then m = j
Next j
Print "第" & n & "行最小的是:" & a(n, m)
Next n
End Sub
Private Sub Command1_Click()
Cls
End Sub
Private Sub Command2_Click()
Dim b(12) As Integer
Dim a(1 To 3, 1 To 4) As Single
Dim i As Integer
Dim j As Integer
Dim sum, n As Integer
Print "原矩阵是:"
For i = 1 To 3
For j = 1 To 4
a(i, j) = Int(9 * Rnd)
Print a(i, j);
Next j
Next i
Print "转置矩阵是:"
For i = 1 To 4
For j = 1 To 3
Print a(j, i);
Next j
Next i
Print "矩阵的上三角矩阵是:"
For i = 1 To 3
For j = i To 4
Print Tab(4 * j); a(i, j);
Next j
Next i
Print "将矩阵按列放入一维数组并输出:"
For j = 1 To 4
For i = 1 To 3
b(n) = a(i, j)
Print b(n)
Next i
Next j
sum = 0
For i = 1 To 3
For j = 1 To 4
sum = sum + Val(a(i, j))
Next j
Next i
Print "矩阵中所有非零数值的总和为:" & sum
vb 矩阵乘法运算?
这个是那一章的全部答案
1.设有如下两组数据:
(1)1,3,5,2,4,18,50,25
(2)5,27,30,35,60,41,87,33
编写一个程序,把上面两组数据分别读入两个数组中,然后把两个数组中对应下标的元素相加,即1+5,3+27,……,25+33,并把相应的结果放入第三个数组中,最后输出第三个数组的值
代码
Private Sub Command1_Click()
Dim i
Dim x()
Dim y()
Dim z(0 To 7)
x = Array(1, 3, 5, 2, 4, 18, 50, 25)
y = Array(5, 27, 30, 35, 60, 41, 87, 33)
For i = 0 To 7
z(i) = x(i) + y(i)
Print z(i);
Next i
End Sub
运行界面
2.有一个n×m的矩阵,编写程序,找出其中最大的那个元素所在的行和列,并输出其值及行号和列号。
代码
Private Sub Command1_Click()
Dim a(1 To 10, 1 To 10) As Integer
Dim m%, n%, x%
For i = 1 To 10
For j = 1 To 10
a(i, j) = Int(Rnd * 101)
Print Tab((j - 1) * 5 + 2); a(i, j);
Next j
Next i
x = a(1, 1)
For i = 1 To 10
For j = 1 To 10
If a(i, j) > x Then m = i: n = j: x = a(i, j)
Next j
Next i
Print "最大数为:" & x & ",它为第 " & m & "行," & "第" & n & "列的元素。"
End Sub
运行界面
3.某数组中有10个元素,元素的值由键盘输入,要求将前5个元素与后5个元素对换。即第1个元素与第10个元素互换,第2个元素与第9个元素互换……。请输出数组中原来各元素的值和对换后各元素的值。
代码
Option Base 1
Private Sub Command1_Click()
Dim a%(1 To 10)
Dim i%
For i = 1 To 10
a(i) = InputBox("请输入第" & i & "个数")
Print a(i);
Next i
For i = 1 To 5
t = a(i)
a(i) = a(10 - i + 1)
a(10 - i + 1) = t
Print a(i);
Next i
For i = 1 To 5
Print a(i + 5);
Next i
End Sub
运行界面
4.输入若干个学生的一门课的成绩,统计各分数段的人数。按小于60分、60~69分、70~79分、80~89分、90~100分各为一个分数段。
代码
Private Sub Command1_Click()
Dim a$(), k%, y
Dim x(0 To 10) As Integer
a = Split(Text1.Text, ",")
For Each y In a
k = y \ 10
x(k) = x(k) + 1
Next y
Picture1.Print "统计结果如下"
Picture1.Print "90-100分有:" & x(9) + x(10) & "人"
For i = 8 To 6 Step -1
Picture1.Print i * 10 & "分—"; i * 10 + 9 & "分有" & x(i) & "人"
Next i
For i = 1 To 5
z = z + x(i)
Next i
Picture1.Print "60分以下的有:" & z & "人"
End Sub
运行界面
5.我国身份证号码的第18位是由前17位通过公式计算出来的,请编程:要求从键盘上输入其一身份证号码的前17位,求出第18位
代码
Private Sub Command1_Click()
Dim W(), A(0 To 16), s%, y%
For i = 0 To 16
W = Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)
A(i) = InputBox("请输入第" & i + 1 & "个数")
Print A(i);
s = s + A(i) * W(i)
Next i
y = s Mod 11
y = y + 1
m = Choose(y, "1", "0", "x", "9", "8", "7", "6", "5", "4", "3", "2")
Print "第十八位是:" & m
End Sub
运行界面
6.有一个数列,前两项为1,从第三项开始,每一项都是前现两项之和,输出该数列前30项。
代码
Option Base 1
Private Sub Command1_Click()
Dim a!(1 To 30)
a(1) = 1: a(2) = 2
Print a(1); a(2)
For i = 3 To 30
a(i) = a(i - 1) + a(i - 2)
Print a(i);
Next i
End Sub
运行界面
7.随机产生15个不重复的A~Z之间的大写字母,存放在字符数组中。
代码
Private Sub Command1_Click()
Dim a(1 To 15)
For i = 1 To 15
a(i) = Int(Rnd * 26) + 65
Next i
For i = 1 To 14
For j = i + 1 To 15
If a(j) = a(i) Then a(j) = Int(Rnd * 26) + 65
Next j
Print Chr(a(i));
Next i
End Sub
运行界面
8.将从键盘上输入的一个数插入到数组指定位置。
代码
Private Sub Command1_Click()
Dim a(), l%, u%
Dim x%, k%
a = Array(1, 2, 3, 4, 5, 6, 7, 9, 10)
l = LBound(a)
u = UBound(a)
For i = l To u
Print a(i);
Next i
k = InputBox("请输入要插入的位置")
x = InputBox("请输入要插入的数")
ReDim Preserve a(l To u + 1)
For i = u To k Step -1
k = i
a(i + 1) = a(i)
Next i
a(k) = x
For i = l To u + 1
Print a(i);
Next i
End Sub
运行界面
9.在数组中查找从键盘上输入的一个数,如果找不到输出相应信息,如果找到,则删除该元素。
代码
Private Sub Command1_Click()
Dim a(), p As Boolean, x%, l%, u%, i%, k%
a = Array(1, 5, 8, 9, 4, 6, 3, 7)
l = LBound(a): u = UBound(a)
For i = l To u
Print a(i);
Next i
x = Val(InputBox("请输入要删除的数"))
For i = l To u
If x = a(i) Then
p = True: k = i
Exit For
End If
Next i
If p = True Then
For i = k + 1 To u
a(i - 1) = a(i)
Next i
u = u - 1
ReDim Preserve a(l To u)
For i = l To u
Print a(i);
Next i
Else
MsgBox "未找到!"
End If
End Sub
运行界面
10.求一个M行N列的矩阵四周元素之和,元素值可以随机产生,M、N从键盘输入。
代码
Private Sub Command1_Click()
Dim a%(), m%, n%, i%, j%, b%, c%, d%, e%, f%
m = InputBox("请输入该矩阵的行数")
n = InputBox("请输入该矩阵的列数")
ReDim a%(1 To m, 1 To n)
For i = 1 To m
For j = 1 To n
a(i, j) = Int(Rnd * 11)
Print Tab((j - 1) * 6 + 3); a(i, j);
Next j
Next i
For j = 1 To n
b = b + a(1, j)
e = e + a(m, j)
Next j
For i = 2 To m - 1
c = c + a(i, 1)
d = d + a(i, n)
Next i
f = b + c + d + e
Print f
End Sub
运行界面
11.某校召开运动会有10人参加男子100米短跑决赛,运动员号码和成绩如表5-3所示,试编制程序,按成绩由高到低排序。
代码
运行界面
Option Explicit
Dim a() As Integer
Dim b() As Integer
Dim d As Integer
Dim m As Integer
Dim n As Integer
Private Sub Command1_Click()
Dim i As Integer, j As Integer
d = InputBox("请输入A矩阵行数", "提示")
n = InputBox("请输入A矩阵列数", "提示")
ReDim a(d, n) As Integer
For i = 1 To d
For j = 1 To n
a(i, j) = InputBox("请输入矩阵A", "提示")
Picture1.Print a(i, j);
Next j
Picture1.Print
Next i
Picture1.Print
End Sub
'矩阵B输入程序
Private Sub Command2_Click()
Dim c As Integer
Dim i As Integer, j As Integer
c = InputBox("请输入B矩阵行数", "提示")
上一篇:王尼玛道歉_王尼玛高考吐槽