我的数据是每一秒中获取一次,我要在30秒将得到的30个数找出次大值和次小值,因为最大最小我已经找出来了。
问题补充:
声明下,我不排序,只是找出值。排序的话还要新建DB块储存 。而且如果排序数目过多,数据过大,这边没循环完成另外一边又有新的数据过来了。会导致死机。我只希望将我得到的数找到次大和次小。不要在跟我说什么冒泡程序了,那个东西我会。 请认真看我的程序
图片说明:
最佳答案
你采集的数据为30个双字,加上需要的最大、最小、第二大、第二小总共34个双字。
在程序中你可以在DB中分配34个双字,初始化为从dbd0---dbd132为从小到大排列。
采集数据时把它们存在2--31这30个双字中,然后采用类似冒泡排序的方式,第一遍对全部34个数扫描可以取出最小值和最大值,并把它们存在dbd0和dbd132中,第二遍就可以对除去最大最小值后的32个数扫描取出次小值和次大值,并把它们存在dbd4和dbd128中。
提问者对于答案的评价:
thanks
专家置评
已阅,最佳答案正确。除了冒泡算法外,还可以在得出最大值和最小值后,去除这两项,再次寻找最大值和最小值,即可得出次极值。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc220047.html