学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.15
所属科目:高中信息技术
对于两个大小为3*3的整数矩阵,设计一个通用的矩阵相乘函数,求得它们的矩阵乘积(新的矩阵),并查找出新矩阵中最大元素的位置和大小。其中一个矩阵已给定,另一个矩阵B由用户主动输入,相乘顺序为A*B。给定矩阵A为随机生成[-10,10]之间的非0随机数,矩阵B自己输入,由1和0构成,如果输入时有其它内容的就略过。
解题思路:A矩阵放a数组,B矩阵放b数组,相乘后的结果放在d数组
矩阵相乘的方式为:
一、用A的第1行各个数与B的第1列各个数对应相乘相加,得到的结果就是第1行第1列的数;
二、用A的第1行各个数与B的第2列各个数对应相乘相加,得到的结果是第1行第2列的数;

……

三、依次进行,(直到)用A的最末行各个数与B的第末列各个数对应相乘相加,结果是最末行第末列的数。如下图a所示:

图a

图b
(1)如上图a所示,新矩阵的d(5)的值是__________。
(2)程序如上图b所示,请在划线处填写合适的代码。
Dim a(1 To 9)As Integer, b(1 To 9)As Integer ' 矩阵A,B的数组
Private Sub Command1_Click()
Dims As String, i As Integer, ch As String
Dim x As Integer, y As Integer, k As Integer
Dim d(1 To 9)As Integer ' 新矩阵的数组
s =Text1.Text ' B矩阵以字符串的形式输入
k=1
' 输入B矩阵的值
For i = 1 To Len(s)
ch = Mid(s,i,1)
If ch = "0" Or ch= "1" Then
b(k)=Val(ch)
k = k+1
If k = 10 Then Exit For
End If
Next i
' 计算出新的矩阵的值
For j=1 To 9
For j=1 To 3
____
Next j
Next i
' 输出新矩阵的值
For i=1 To 3
ch = ""
For j = 1 To 3
ch = ch +Str(d((i-1)*3+j))+ " "
Next j
List2.AddItem ch
Next i
Max = 1
For i= 2 To 9
If d(Max)< d(i)Then Max = i
Next i
x =((Max-1)\3+1)
y = ____
Labe12.Caption = "最大的数是" +Str(d(Max))+ "位置("+Str(x)+","+Str(y)+")"
End Sub
Private Sub Form_Load()
Dim i As Integer, j As Integer, s As String
s =""
Randomize
' 生成矩阵A数组
For i=1 To 9
a(i)= Int(Rnd*20 + 1)*(-1)(Int(Rnd*2))
If ____Then
List1.AddItem s
s =""
End If
s = s + "  " + Str(a(i))
Next i
List1.AddItems
End Sub
编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交