例1 矩阵A行列互相交换产生矩阵称A转置矩阵程称矩阵转置 VB6程序实现矩阵转置请划线处填入正确语句实现功
Const m 4
Const n 5
Dim a(1 To m * n) As Integer
Dim b(1 To m * n) As Integer
Private Sub Command1_Click()
Dim i As Integer j As Integer
List1Clear
List2Clear
Randomize
For i 1 To m * n '生成源矩阵
a(i) Int(Rnd() * 89 + 10)
Next
For i 1 To m '显示源矩阵
s ″ ″
For j 1 To n
s ①
Next
List1AddItem s
Next
For i 1 To n '生成显示转置矩阵
s ″″
For j 1 To m
b((i 1) * m + j) ②
s s + Str(b((i 1) * m + j))
Next
List2AddItem s
Next
End Sub
例2(2017·11浙江选考)数组a生成数组b方法描述
(1)数组a中n元素次分割出干数块数块m×m元素m值8值2分割时数块进行分割
(2)分割出数块方阵转换法进行转换次转换数块次存储数b中
(3)数组a分割剩余元素(数4)直接序存储数组b中
例n140时次分割出3数块元素数分64(8×8)64(8×8)9(3×3)剩余元素3
方阵转换法程数块中m×m元素行序排列成数字方阵该数字方阵中列序转换元素次序3×3数块例转换程图示
明述描述设计VB程序请回答列问题
(1)n120时分割出第3数块元素数
(2)请划线处填入合适代码
Const n 120
Dim a(1 To n) As Integer
Dim b(1 To n) As Integer
Private Sub Command1_Click()
Dim m As Integer i As Integer
Dim Start As Integer '前未分割数第1元素标
Dim Left As Integer '前未分割数数
Dim pa As Integer '数组a标
Dim pb As Integer '数组b标
'读取n转换前数次存储a(1)a(2)…a(n)中代码略
m 8
Start 1
Left n
Do While Left > 3
If Left < m * m Then
m ①
Else
pa Start
pb Start
For i 1 To m * m
b(pb) a(pa)
pb pb + 1
If i Mod m 0 Then
②
Else
pa pa + m
End If
Next i
③
Start Start + m * m
End If
Loop
For i Start To n
b(i) a(i)
Next i
'次输出转换数b(1)b(2)…b(n)中代码略
End Sub
课作业
1某程序功数组a中存放n n1099间机整数n行n列形式列表框List1中显示(第行次显示a(1)~a(n)第二行次显示a(n+1)~a(2 n)次类推)文框Text1中输入某矩形区域左角位置(x1y1)(注x1表示列号y1表示行号)文框Text2中输入右角位置(x2y2)单击垂直翻转钮Command1(x1y1)(x2y2)角顶点矩形区域中数进行垂直翻转列表框List2中显示程序运行界面图示
(1)述描述设计VB程序请划线处填入合适代码
Const n5
Dim a(1 To n^2) As Integerb(1 To n^2) As Integer
Private Sub Form_Load()
'产生n n1099间机整数存数组aList1中显示代码略
End Sub
Private Sub Command1_Click()
Dim i As Integerj As Integervalue As Stringc As Stringxy(1 To 4) As Integer
sText1Text+″″+Text2Text
value″ ″j0
For i1 To Len(s)
cMid(si1)
If c>″0″ And c<″9″ Then
valuevalue+c
Else
①
xy(j)Val(value)value″ ″
End If
Next i
xy(4)Val(value)
For i1 To n
For j1 To n
If j>xy(1) And j
Else
b((i1) n+j)a((i1) n+j)
End If
Next j
Next i
List2Clearc″ ″
For i1 To n n
cc+Str(b(i))
if ③ then
List2AddItem c
c″ ″
end if
Next i
End Sub
(2)10 10元素构成数组a果输入左角位置(23)右角位置(67)垂直翻转元素a(23)新数组中位置
2某编写VB程序功程序启动时产生n n150间机整数存数组an8时产生64机整数行优先方式8行8列形式列表框List1中显示(第行次显示a(1)~a(8)第二行次显示a(9)~a(16)次类推)文框Text1中输入某矩形区域左角位置(x1y1)(注x1表示行号y1表示列号)文框Text2中输入右角位置(x2y2)单击水翻转钮Command1(x1y1)(x2y2)角顶点矩形区域中数进行水翻转列表框List2中显示程序运行界面图1示变换前数区域值图2示变换值图3示
图1
10
44
8
2
6
28
13
9
2
30
22
25
14
40
26
46
46
47
24
1
18
45
29
15
41
图2
6
2
8
44
10
30
2
9
13
28
26
40
14
25
22
1
24
47
46
46
41
15
29
45
18
图3
实现述功VB程序请回答列问题
(1)根题意知次程序运行时数组元素a(12)值 (填写数值)
(2)请划线处填入合适代码
Const n8
Dim a(1 To n^2) As Integerb(1 To n^2) As Integer
Function adj(s As Stringn As Integer)As String
'该函数功字符串s前添加干空格实现右齐代码略
End Function
Private Sub Form_Load()
'产生n n150间机整数存数组aList1中显示代码略
End Sub
Private Sub Command1_Click()
Dim x1 As Integery1 As Integerx2 As Integery2 As Integer
Dim i As Integerj As Integervalue As Integerline As String
value0
sText1Text
For i1 To Len(s)
If Mid(si1)>″0″And Mid(si1)<″9″ Then
①
Else
x1valuevalue0
End If
Next i
y1value
'读取Text2中输入矩形区域右角位置处理行号存x2列号存y2代码略
For i1 To n
For j1 To n
If i>x1 And i
Else
b((i1) n+j)a((i1) n+j)
End If
Next j
Next i
For i1 To n^2
lineline+adj(Str(b(i))3)
If ③ Then
List2AddItem line
line″ ″
End If
Next i
End Sub
3王设计时针旋转矩阵程序功运行程序时文框Text1中输入矩阵规模n点击产生矩阵钮Command1列表框List1中显示n×n矩阵该矩阵数1开始连续然数组成点击旋转矩阵钮Command2该矩阵时针旋转90度显示列表框List2中点次旋转矩阵钮Command2列表框List2中显示矩阵时针旋转90度程序运行界面图示
(1)运行程序文框Text1中输入5点击产生矩阵钮Command1连续点击三次Command2钮列表框List2中第行显示容
(2)实现程序代码请划线处填入合适代码
Dim n As Integerst As String
Dim a(1 To 100) As Integer
Dim b(1 To 100) As Integer
Private Sub Command1_Click()
nVal(Text1Text)
For i1 To n n
a(i)i
Next i
For i1 To n
st″ ″
For j1 To n
stst+adj(Str(a((i1) n+j))3)
Next j
List1AddItem st
Next i
End Sub
Private Sub Command2_Click()
List2Clear
For i1 To n
st″ ″
For j1 To n
b((i1) n+j) ①
stst+adj(Str(b((i1) n+j))3)
Next j
List2AddItem st
Next i
For i1 To n n
a(i) ②
Next i
End Sub
'adj函数功字符串a前加入适空格a长度n位
Function adj(a As Stringn As Integer) As String
Dim sa As String
naLen(a)saa
For i1 To nna
sa″ ″+sa
Next i
adj ③
End Function
4皇势力范围国际象棋皇攻击范围位置直线角线图示
VB设计定义函数定皇位置p1方棋子位置p2(位置编号图示编号左右左起第1格①)判断皇否攻击方棋子果返回true行返回false程序请划线处填入正确语句
Function judge(p1 As Integerp2 As Integer) As Boolean
Dim f As Booleanx1 As Integery1 As Integer
Dim x2 As Integery2 As Integer
x1p1 Mod 8
y1p1\8
x2p2 Mod 8
y2p2\8
If x1x2 Or y1y2 Or Then
fTrue
Else
fFalse
End If
judgef
End Function
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档