设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
西门子SCL编程实例——冒泡排序算法(更新版) ...
返回列表
发新帖
[西门子]
西门子SCL编程实例——冒泡排序算法(更新版)
[复制链接]
42893
|
0
|
2024-4-28 20:57:45
|
显示全部楼层
|
阅读模式
之前我曾写过一篇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,采用降序排序:
关于冒泡排序更新版就先介绍到这里,如果你有任何问题欢迎留言讨论。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
founderchip
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』