之前有网友提问,比如 1到5号仓对应5个重量,将重量从小到大排列好以后,还要能够知道从小到大的这个重要对应的仓号;排序很简单,但是对号入座有点麻烦了;我是这么做的,先将源数据拷贝到一个位置,然后在分配一个相同大小的位置,按现有的结构分配5个编号,当用冒泡法进行数据排序的时候,序号跟着一起变动,这样好像就解决问题了; 在DB10里定义若干个INT数据类型DBW0到DBW8为源数据,DBW10到DBW18为数据排序的位置,DBW20到DBW28为序号。 CALL "BLKMOV" SRCBLK :=P#DB10.DBX 0.0 INT 5 RET_VAL:=#TEMP1 DSTBLK :=P#DB10.DBX 10.0 INT 5 //先做一个数据的拷贝 OPN DB 10 LAR1 P#20.0 L 1 T #TEMP3 L 5 C001: T #LOOP3 L #TEMP3 T DBW [AR1,P#0.0] L #TEMP3 + 1 T #TEMP3 +AR1 P#2.0 L #LOOP3 LOOP C001 //循环写入1到5的序号 L 4 A003: T #LOOP1 LAR1 P#10.0 L 4 A002: T #LOOP2 L DBW [AR1,P#0.0] L DBW [AR1,P#2.0] >I JCN A001 L DBW [AR1,P#0.0] T #TEMP2 L DBW [AR1,P#2.0] T DBW [AR1,P#0.0] L #TEMP2 T DBW [AR1,P#2.0] //数据大小的排列 L DBW [AR1,P#10.0] T #TEMP4 L DBW [AR1,P#12.0] T DBW [AR1,P#10.0] L #TEMP4 T DBW [AR1,P#12.0] //序号也要跟着走 A001: +AR1 P#2.0 L #LOOP2 LOOP A002 L #LOOP1 LOOP A003 模拟后的图片: |
电工学习网 ( )
GMT+8, 2021-12-6 20:45