经常有客户提出如何将连续的几十个数据按大小排列。如果是1500和1200用SCL处理会比较容易写一点,但是200smart好像就不太好处理了。最近又有客户问到,正好有点时间,花了两天时间终于写了这个程序,现在测试,好像是没问题的,但是没用经过长时间运行测试,不知是否有缺漏的,今天分享给大家看看是否有什么问题,大家可以多提点宝贵意见。 闲话休提上图
子程序解析:
数据的顺序排列是仿照C语言冒泡排序法写的;我的大概思路是:第一步:正确写入需要排序的数据个数;第二步:统一将数据按位置依次传送到输出地址;第三步:排序输出(采用类似C语言的冒泡排序法);如下图:
首先先看一下局部存储区的接口定义:
获取循环次数:
启动外循环:启动外循环第一个任务是:统一赋值,在循环开始前将源数值赋值到输出地址,再进行排序!!!该处理是关键,如果不在统一时间赋值,有可能在排序中途赋值的话,排序会不完整!
完成赋值,关闭赋值循环
启动内循环:
内循环排序:
排序输出:
测试结果1:
测试结果2:
自己测试了几次显示结果都正确,但是没经过长时间验证,不知是否存在缺漏,因为这是自己写的例子,不是官方的例子程序,错误在所难免,如果有问题请各位提出宝贵意见。谢谢大家!