首页 > 行业资讯 > 西门子SCL编程实例——冒泡排序算法(更新版)

西门子SCL编程实例——冒泡排序算法(更新版)

时间:2022-07-16 来源: 浏览:

西门子SCL编程实例——冒泡排序算法(更新版)

原创 北岛李工 方正智芯
方正智芯

founderchip

原创工业智能控制领域(PLC、单片机、嵌入式、机器人、通信)的技术及经验分享。

收录于合集 #北岛李工-西门子SCL编程教程 42个

之前我曾写过一篇SCL冒泡排序算法的文章( 西门子SCL语言编程实例——冒泡排序 ),文中的算法在某些情况下会出现错误,原因是SCL语言的数组的上限和下限可以自由定义,这点与C/C++的不同。今天这篇文章,给大家介绍下更新版的冒泡排序算法,它不但适用于下限从0开始的数组,还适用于下限是负数或其它任意数的数组。

为了能支持上升沿信号检测,我不用之前的函数(FC),而是采用函数块(FB)来实现该算法。

在博途环境下新建函数块FB5011_BubleSort,声明变量如下图所示:

其中:

  • enable:使能排序算法(内部上升沿信号检测);

  • mode:排序的方式,0=升序,1=降序;

  • arraySort:变长数组,排序数据的来源;

代码如下:

使用之前文章介绍的生产随机数的函数初始化多个数组,然后使用该算法对数组中的元素进行排序,结果如下:

①数组arraySort的下限为1,上限为20,采用升序排序:

②数组arraySort2的下限为-2,上限为20,采用升序排序:

③数组arraySort3的下限为10,上限为30,采用降序排序:

④数组arraySort4的下限为0,上限为30,采用降序排序:

关于冒泡排序更新版就先介绍到这里,如果你有任何问题欢迎留言讨论。

我的书《西门子S7-1200/1500 PLC SCL语言编程》比较详细的介绍了SCL的编程,感兴趣的话可以点击下面的链接或者左下角的【阅读原文】:

北岛李工

你喜欢,就好

赞赏二维码 微信扫一扫赞赏作者 赞赏

已喜欢, 对作者说句悄悄话
最多40字,当前共

  人赞赏

1 / 3

长按二维码向我转账

你喜欢,就好

赞赏二维码

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐