5.5.3  特殊矩阵问题

5.5.3 特殊矩阵问题

【例5-12】定义一个10×10矩阵,并将矩阵左下三角形元素(左上角到右下角对角线下面的所有元素)均设置为1,其他元素均为0,然后输出到窗体上。

978-7-111-49659-5-Chapter05-76.jpg做什么

1)将矩阵左下三角形元素均设置为1。

2)输出矩阵。

所以窗体上只需要一个按钮即可。

978-7-111-49659-5-Chapter05-77.jpg怎么做

分析:观察左下三角形元素行号i、列号j存在什么规律。采用从具体到抽象的方法,给出i,j对应关系见表5-5。

表5-5 左下三角形元素i,j对应关系

978-7-111-49659-5-Chapter05-78.jpg

(续)

978-7-111-49659-5-Chapter05-79.jpg

步骤描述如下。

1)定义整型数组a(10,10)。

2)初始化i值为1。

3)判断i,如果i<=10,则向下执行;否则执行第9)步。

4)初始化j值为1。

5)判断j,如果j小于等于10,则向下执行;否则执行第8)步。

6)如果j<=i,则a(i,j)=1。

7)j值增1,返回第5)步。

8)i值增1,返回第3)步。

9)用两重循环输出整个数组。

978-7-111-49659-5-Chapter05-80.jpg实现

完整代码如下。

978-7-111-49659-5-Chapter05-81.jpg

运行结果如图5-13所示。

978-7-111-49659-5-Chapter05-82.jpg

图5-13 设置左下三角形区域元素

在j循环中,当j>i时,程序没有进行任何操作,所以右上三角区域为0部分是不用遍历的。总结j的变换范围,它是与i有关的。j的有效范围总是从1开始,到等于i结束,后面就是空循环了。所以程序可以修改如下。

978-7-111-49659-5-Chapter05-83.jpg

相同道理,设置右上三角形区域元素的部分代码如下。

978-7-111-49659-5-Chapter05-84.jpg

设置左上三角形区域元素的部分代码如下。

978-7-111-49659-5-Chapter05-85.jpg

设置右下三角形区域元素的部分代码如下。

978-7-111-49659-5-Chapter05-86.jpg