用st语言写个可以自定义大小的2维数组,并可以将数组元素写入D区
时间: 2024-02-23 20:59:48 浏览: 71
好的,以下是一个用ST语言编写的可以自定义大小的2维数组,并可以将数组元素写入D区的代码:
```
PROGRAM Example
VAR
Rows : INT; // 数组的行数
Cols : INT; // 数组的列数
MyArray : ARRAY[1..100, 1..100] OF INT; // 定义一个最大为100行100列的数组
i, j : INT;
Ptr : POINTER TO INT; // 定义一个指向整型变量的指针
BEGIN
// 输入数组的行数和列数
Rows := 10;
Cols := 5;
// 动态分配内存空间
Ptr := ADR(MyArray);
Ptr^ := Rows;
Ptr := Ptr + 1;
Ptr^ := Cols;
Ptr := Ptr + 1;
// 将数组元素写入D区
FOR i := 1 TO Rows DO
FOR j := 1 TO Cols DO
Ptr^ := i*j;
Ptr := Ptr + 1;
END_FOR;
END_FOR;
END_PROGRAM
```
这个程序定义了一个最大为100行100列的数组,然后根据用户输入的行数和列数动态分配内存空间,并将数组元素写入D区。你可以根据自己的需求修改Rows和Cols的值,以及修改数组元素的计算方式。
相关问题
用st语言写个可以自定义大小的2维数组,并可以将数组写入D区,并可以通过修改D区数值,修改数值内容
好的,以下是用ST语言编写可以自定义大小的二维数组,并将其写入D区的代码:
```
VAR
arr: ARRAY[0..4, 0..4] OF INT;
i, j: INT;
END_VAR
// 自定义数组大小
arr := [
[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]
];
// 将数组写入D区
FOR i := 0 TO 4 DO
FOR j := 0 TO 4 DO
DINT_TO_DT(arr[i, j], D#1000 + i*5 + j);
END_FOR;
END_FOR;
// 修改D区数值,修改数组内容
DT_TO_DINT(D#1003, arr[1, 3]);
```
以上代码中,我们定义了一个名为`arr`的二维数组,其大小为5行5列。我们可以通过修改数组的值来修改D区的数值,也可以通过修改D区的数值来修改数组的值。例如,我们将数组中的第2行第4列的值修改为100,可以执行以下代码:
```
DT_TO_DINT(100, D#1008);
arr[1, 3] := 100;
```
这样就能实现通过修改D区数值来修改数组内容的功能了。
阅读全文