當前位置:機電之家首頁 >> PLC技術(shù)>> PLC文案資料 >> PLC試題庫 >> 西門子s7-200plc由“冒泡法”排序算法的逆向思考
西門子s7-200plc由“冒泡法”排序算法的逆向思考

在一些c語言資料上看到,“冒泡法”排序一般是從最后一個數(shù)據(jù)開始,向地址小的方向相鄰兩個數(shù)據(jù)比較,并按照從小到大或者從大到小排序的一種算法。在數(shù)據(jù)比較、移動的過程中,數(shù)據(jù)的運動,看起來好像水中的氣泡向上運動。故而稱之為“冒泡法”排序。

“冒泡法”排序,在知道數(shù)據(jù)的起始地址、數(shù)據(jù)個數(shù)、數(shù)據(jù)類型后,需要算出最后一個數(shù)據(jù)的地址,并從最后的一個地址開始運算排序。我在想,為什么不能從數(shù)據(jù)的起始地址開始排序呢,如果采用這種“下沉法”排序,還能省去計算數(shù)據(jù)的結(jié)束地址,程序應該會更簡潔。于是自己就試著寫了一下“下沉法”排序的程序代碼,并測試通過。

排序環(huán)境:224cpu,從vb1000開始連續(xù)20個整數(shù),從小到大排序?!跋鲁练ā迸判蛩惴▍⒖即a如下:

//******************給外循環(huán)體、內(nèi)循環(huán)體的循環(huán)次數(shù)賦初值***********************

ld sm0.0 //開始執(zhí)行從小到大的排序程序

movw 19, lw2 //給外循環(huán)次數(shù)(數(shù)據(jù)個數(shù)-1)賦初值

movw 19, lw6 //給內(nèi)循環(huán)次數(shù)(數(shù)據(jù)個數(shù)-1)賦初值

//*******************建立外循環(huán)體并定義排序的其實地址*****************************

for lw0, +1, lw2 //for外循環(huán)體循執(zhí)行l(wèi)w2次

movd &vb1000, ac1 //將v區(qū)的起始地址賦給ac1,定義排序的起始地址

//**************建立內(nèi)循環(huán)體并開始進行相鄰的兩個數(shù)據(jù)比較、移動****************

for lw4, +1, lw6 //for內(nèi)循環(huán)體循執(zhí)行l(wèi)w6次

movd ac1, ac2 //把當前ac1里面的地址存儲到ac2里面

+d +2, ac2 //ac2當前地址+2,存入ac2

ldw< *ac2, *ac1 //如果ac2指向的地址里面的內(nèi)容小于ac1指向的地址里面的內(nèi)容

movw *ac1, lw8 //那么將當前兩個地址里面的內(nèi)容互換

movw *ac2, lw10 //如果ac2指向的地址里面的內(nèi)容不小于ac1指向的地址里面的內(nèi)容

movw lw8, *ac2 //那么當前兩個地址里面的內(nèi)容保持不變

movw lw10, *ac1 //如果把小于比較指令改成大于比較指令,那么數(shù)據(jù)就是從大到小排序

ld sm0.0

+d +2, ac1 //ac1當前地址+2,存入ac1

next //跳轉(zhuǎn)到for內(nèi)循環(huán),如果內(nèi)循環(huán)執(zhí)行結(jié)束,程序往下執(zhí)行

//*******************內(nèi)循環(huán)執(zhí)行結(jié)束,進入外循環(huán)執(zhí)行*****************************

decw lw6 //內(nèi)循環(huán)體執(zhí)行結(jié)束,將內(nèi)循環(huán)體的循環(huán)次數(shù)減1

next //跳轉(zhuǎn)到for外循環(huán),如果外循環(huán)執(zhí)行結(jié)束,程序往下執(zhí)行

上面代碼基本采用臨時變量作運算的,其實還可以將其封裝成一個子程序,實現(xiàn)多次調(diào)用。

作者:未知 點擊:495次 [打印] [關(guān)閉] [返回頂部]
本文標簽:西門子s7-200plc由“冒泡法”排序算法的逆向思考
* 由于無法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報酬未能及時支付,在此深表歉意,請《西門子s7-200plc由“冒泡法”排序算法的逆向思考》相關(guān)權(quán)利人與機電之家網(wǎng)取得聯(lián)系。
電子樣本

SN系列樣冊
:鞏經(jīng)理
:13915946763
:南京塞姆泵業(yè)有限公司
個人求購

吳小姐 【求購】  粉碎機  2025-12-5
 【求購】  冶煉用的重...  2025-12-5
柳女士 【求購】  斷路器  2025-12-5
林志揚 【求購】  無石棉墊片  2025-12-4
張一帆 【求購】  首件測試儀  2025-12-4
王飛 【求購】  gf流量計  2025-12-4
 【求購】  全自動印刷...  2025-12-4
 【求購】  LED屏  2025-12-3
VIP公司推薦