『7x24小时有问必答』
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 -
工控老炮儿

分享 | 咨询 | 合作 | 共赢

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码