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

SCL编程实例100例-判断数组中是否存在重复的元素

工控老炮儿 2022-12-13
2033

1 | 题目



编写程序判断元素数据类型为整数的一维数组中是否有一样或重复的元素,并输出重复元素的最小索引号。



2 | 设计分析



采用穷举法,循环嵌套、逐一比较,找到第一个重复(值相等)的元素即可结束。



3 | 创建功能或功能块



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




4 | 定义接口变量



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

定义了可变长(泛型或可变限值)整数类型一维数组,数据类型为#Array[*, *] of Int,作为待查数组。定义布尔型变量#isRepeative作为判断结果输出。定义长整型变量#repeatIndexQ用来输出重复元素的最小索引号。



5 | 程序代码



编写程序代码。如下图:


待查数组元素数大于等于2才具可查意义,如果小于2则直接返回。程序中设计了RETURN和EXIT指令用来验证二者区别,可以在学习中通过注释的方式分别使能指令然后监控运算结果的不同。



6 | 代码测试



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


定义了全局数据块(数组DB)GdbRepeatInArrayData作为实参传递给形参,注意数组DB的实参表达方式。

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


上图为待查数组:0、6、8、1、7、6、8、2、9、5、1。


上图为结果输出,#isRepeativeQ为TRUE说明数组中存在重复元素(6),#repeatIndexQ记录了重复元素的最小索引为1。



7 | 总结



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

学习使用FOR循环语句;

学习使用FOR循环嵌套;

学习使用IF条件语句;

学习RETURN和EXIT在程序中的作用;

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

- END -

工控老炮儿


分享 | 咨询 | 合作 | 共赢



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

评论