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

SCL编程实例100例-042-寻找数组中的某个值

工控老炮儿 2022-12-11
1504

1 | 题目



编写程序实现以下算法:有一个20个元素的数据类型为布尔型的一维数组,跳过该数组的前10个元素不检查,只检查后10个元素,从中找到第一个为TRUE的元素,并给出其数组编号索引。



2 | 设计分析



使用CONTINUE “复查循环条件”指令,可以结束FOR、WHILE或REPEAT循环的当前程序运行,只计算循环变量而不执行循环内程序,跳过不检查的元素。找到满足条件的元素后利用EXIT指令退出循环,完成功能后直接退出循环,可以提高程序的运行效率。



3 | 创建功能或功能块



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




4 | 定义接口变量



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

定义了含有20个布尔类型元素的一维数组#trueFalseArray作为待查数组。



5 | 程序代码



编写程序代码。如下图:


注意程序中的CONTINUE和EXIT指令,CONTINUE只计算循环变量而不执行循环内代码,EXIT则直接跳出循环。如果找不到满足条件的元素,则输出-1。



6 | 代码测试



在循环OB中调用FB-“FindFirstTrue”,调用时会自动创建背景数据块,命名为“InstFindFirstTrue”,该背景数据块可以用来监视和修改数据。转至在线并监控程序。如下图:


待查数组的第6和第8个元素为TRUE,被跳过不检查,第10以后的第一个TRUE是第12个元素,所以找到并输出对应索引号12。



7 | 总结



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

学习使用FOR循环语句;

学习使用IF条件语句;

学习CONTINUE在循环语句中的作用;

学习EXIT在循环语句中的作用

- END -

工控老炮儿


分享 | 咨询 | 合作 | 共赢

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

评论