求大神解答一个VB嵌套的For循环问题,求详细点~~感激涕零啊

在窗体上画1个命令按钮,并编写如下事件过程:PrivateSubCommand1Click()Dima(3,3)Form=1To3Forn=1To3Ifn=morn=4—... 在窗体上画1个命令按钮,并编写如下事件过程:
Private Sub Command1 Click(  )
Dim a(3,3)
For m=1 To 3
For n=1 To 3
If n=m or n=4—m Then
a(m.n)=m+n
Else
a(m,n)=0
End If
Print a(m,n);
Next n
Print
Next m
End Sub
运行程序,单击命令按钮,窗体上显示的内容为(  )。
答案是2 0 4
0 4 0
4 0 6
展开
 我来答
syx54
2013-09-15 · TA获得超过7379个赞
知道大有可为答主
回答量:6567
采纳率:83%
帮助的人:2760万
展开全部
首先,要理解通常对数学中的矩阵,采用程序处理,都使用二维数组存放数据元素的值;
二维数组各元素以及与矩阵的对应位置关系如下:
第1列 第2列 第3列
第1行 a(1,1) a(1,2) a(1,3)
第2行 a(2,1) a(2,2) a(2,3)
第3行 a(3,1) a(3,2) a(3,3)

特别当行数=列数,这个矩阵叫方阵。

可以发现,每个元素有两个下标,第1个下标表示该元素所处的行位置,第2个下标表示该元素所处的列位置;
例如:a(1,1)表示处于第1行第1列,a(2,3)表示处于第2行第3列,等等。

其次,采用程序处理二维数组,往往用双重循环来实现,并且,外循环控制行,内循环控制列;
你这里就是用:外循环用m,内循环用n来控制实现的。

假设程序是如下情况,会输出什么?
For m = 1 To 3
For n = 1 To 3
Print m,n
Next n
Next m

对于这样的循环,可以输出:
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
要仔细注意,m与n对应输出的关系!
也就是说,循环一共执行3*3=9次,
第1次,输出:m=1,n=1
第2次,输出:m=1,n=2
第3次,输出:m=1,n=3
......
现在我把程序改成
For m = 1 To 3
For n = 1 To 3
a(m,n)=1
Next n
Next m
可以知道,结果使得所有的元素都等于1了。
如果是这样
For m = 1 To 3
For n = 1 To 3
a(m,n)=0
Next n
Next m
可以知道,结果使得所有的元素都等于0了。

现在可以分析你的代码了:
For m = 1 To 3
For n = 1 To 3
if n=m Or n = 4 - m Then
a(m,n)=m + n
else
a(m,n)=0
end if
Next n
Next m
看看:一开始的图:
第1列 第2列 第3列
第1行 a(1,1) a(1,2) a(1,3)
第2行 a(2,1) a(2,2) a(2,3)
第3行 a(3,1) a(3,2) a(3,3)
当n=m,我们把这个位置上的元素,叫做矩阵的主对角线,即满足行号与列号相等。
当n=4 - m,我们把这个位置上的元素,叫做矩阵的副对角线,即满足:行号+列号 = 行数 + 1(因为是方阵,所以或者行号+列号 = 列数 + 1)。

现在用文字来描述,就是:
构造一个三阶方阵,(所谓三阶就是行列数都为3),使得其:
主、副对角线上的元素值等于该元素的行下标与列下标之和;
而其余元素值等于0。

要学好编程,这些都是基本功,估计一般读语言的,都有过做这类题目的揪心的痛苦的经历。
要坚持、努力、加油!
940616547
2013-09-15 · TA获得超过189个赞
知道答主
回答量:138
采纳率:46%
帮助的人:54.1万
展开全部
按F8试一下,他会一个一个地执行,而且你将鼠标移到变量上,就可以看到变量的值。不会追问
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式