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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




