暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SCL编程实例100-040-矩阵转置

工控老炮儿 2022-12-09
268

1 | 题目



矩阵的转置:把矩阵的行元素变为列元素、列元素变为行元素的过程。编写程序实现输入n*n的正方形整数矩阵,输出它的转置矩阵。例如:

输入矩阵:

1  2  3

4  5  6

7  8  9

转置结果:

1  4  7

2  5  8

3  6  9



2 | 设计分析



定义一个二维数组作为正方形整数矩阵,交换二维数组行与列的上下限值脚标后重新输出得到转置后的数组,即实现了矩阵的转置。



3 | 创建功能或功能块



创建功能块FB,命名为“MatrixTranspose”。




4 | 定义接口变量



具体接口变量定义见下图:

定义了变量#start,数据类型为Bool,用来作为触发转置的条件。定义了可变长(泛型或可变限值)整数类型二维数组,数据类型为#Array[*, *] of Int,用来作为矩阵的输入和转置结果的输出。



5 | 程序代码



编写程序代码。如下图:


用相关的指令获取可变限值的二维数组的不同维度的上下限值脚标,上下限值脚标作为二重嵌套循环的循环变量的初始值和结束值



6 | 代码测试



在循环OB中调用FB-“MatrixTranspose”。如下图:

定义了全局数据块GdbMatrixTransposeData作为实参传递给形参。

转至在线并监控程序。如下图




7 | 总结



学习可变长二维数组的定义和使用;

学习上升沿的使用;

学习使用FOR循环语句;

学习使用FOR循环嵌套;

学习RETURN指令在程序中的作用;

学习在OB中调用FB和实参的传递方式。

- END -

工控老炮儿


分享 | 咨询 | 合作 | 共赢


文章转载自工控老炮儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论