300程序中,求最大值,该怎么弄?
116.24.101.90
发布于2012-12-14 00:33
37
0
标签:
在程序中,怎么从多个数据中,寻找其数值大的那个数据,例如:mw0,mw2,mw4,mw6,mw8,mw10中,每个数值都不一样,但总有个大值,小值,该怎么寻找?如果数据少的话,可以相互比较,但如果数量多的话该怎么寻找?
佳答案
采用冒泡排序:
转帖:
冒泡排序(冒泡原理,学过语言的人都应该知道,如果不知道,请上网找一个吧,到处都是):
假定十个数据,放在db1中,安放顺序如下:
dbd0
dbd4
…
dbd36
下面是西门子的程序
opndb1/////打开db1这个数据块
l10////装载10到mb0中,因为有十个数据,要进行十次排序,9次也可以的
ll0:tmb0
lp#0.0////装载地址指针,这是关键,不要搞错了
lar1
l9
ll1:tmb2////内部循环,进行9次,直到把大值排到后
ldbd[ar1,p#0.0]
ldbd[ar1,p#4.0]
<r
jcll2////比较前后两个值,如果前面大于后面的,则前后数据交换
ldbd[ar1,p#0.0]
t#m_temp
ldbd[ar1,p#4.0]
tdbd[ar1,p#0.0]
l#m_temp
tdbd[ar1,p#4.0]
ll2:+ar1p#4.0////指针自动进行加4,因为是浮点数,所以要跳过4个字节
lmb2
loopll1///这个指令自动的将a寄存器里的值减1
lmb0
loopll0