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

SCL编程实例100例-041-从整数数组中获取所有的递增递减序列

工控老炮儿 2022-12-10
564

1 | 题目



有一个10个整数元素的数组,任意相邻的两个数不同,编写程序获取该数组中所有的递增、递减序列。例如:

给定数组序列:

1、5、9、8、12、21、3、0、-1、9。

包含的递增递减序列如下:

1、5、9

9、8

8、12、21

21、3、0、-1

-1、9。



2 | 设计分析



从第二数起比较它的前一个数和后一个数,如果出现大于且小于或小于且大于则认为不满足序列要求,需要重新输出新序列。



3 | 创建功能或功能块



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




4 | 定义接口变量



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

定义了可变长(泛型或可变限值)整数类型二维数组,数据类型为#Array[*, *] of Int,用来作为截取的递增递减序列的结果输出。



5 | 程序代码



编写程序代码。如下图:


注意:程序算法中的条件语句,不是重新排序,而是从中找出并截取递增或递减数列。



6 | 代码测试



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

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

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


上图为原始数组整数序列:1、5、9、8、12、21、3、0、-1、9。


上图为截取的第一组序列。


上图为截取的第二组序列。


上图为截取的第三组序列。


上图为截取的第四组序列。


上图为截取的第五组序列。



7 | 总结



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

学习使用FOR循环语句;

学习使用IF条件语句;

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

- END -

工控老炮儿


分享 | 咨询 | 合作 | 共赢

​​

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

评论