孝感市西門子中國(授權)一級代理商-西門子選型-西門子技術支持-西門子維修服務
| 更新時間 2024-12-27 09:10:00 價格 請來電詢價 變頻器 西門子代理商 觸摸屏 西門子一級代理 伺服電機 西門子一級總代理 聯系電話 18126392341 聯系手機 15267534595 聯系人 梁濤 立即詢價 |
詳細介紹
在編程過程中經常會遇到需要將幾個數按從大到小或從小到大的順序排序,這時候我們會想到用“冒泡法”,其思路是將相鄰的數兩兩進行比較,如果符合要求則不變,不符合要求則交換,10個數就要比較9次,我們稱為一輪,經過一輪比較后,只是相鄰大小識別出來了,并沒有真正實現排序,我們需要從頭開始再比一輪,這樣經過9輪比較才真正完成了排序,也就是需要比9*9=81次。這時我們就可以使用循環指令重復執行,程序就變得非常簡潔了。1200梯形圖沒有FOR循環指令,但是我們可以用SCL語言進行編寫,這樣就使用FOR循環指令了。編程步驟如下:首先創建兩個包含10個INT元素的數組,數組1為排序前,數組2為排序后。
“下標”為數組變量,當下標為0時,數組2[下標]表示數組2[0],為1時表示數組2[1]以此類推。循環記錄1和循環記錄2為FOR循環要使用的變量,記錄當前循環到第幾次。交換中轉用于交換時臨時存儲中轉數據。程序編寫如下:黑色字體為程序部分,//后紅色字體部分為注釋。#數組2 := #數組1;// 將數組1賦值給數組2,用數組2去進行排序,這樣可以保留數組1中數據的完整性。FOR #循環記錄1 := 0 TO 8 DO//與Zui下面END_FOR配對,表示從第0次開始到第8次結束,總共循環9次。 FOR #循環記錄2 := 0 TO 8 DO//與倒數第二個END_FOR配對,表示從第0次開始到第8次結束,總共循環9次。 IF #數組2[#下標] < #數組2[#下標 + 1] THEN//如果前一個數小于后一個則交換。 #交換中轉 := #數組2[#下標];//先將數組2[下標]賦值給交換中轉變量。 #數組2[#下標]:=#數組2[#下標 + 1];//再將數組2[下標+1]賦值給數組2[#下標] #數組2[#下標 + 1] := #交換中轉; //再將交換中轉賦值給數組2[#下標+1],這樣就實現了數組2[下標]與數組2[下標+1]交換。 END_IF; #下標 := #下標 + 1;//將下標偏移一位,實現下一組比較 END_FOR; #下標 :=0;//比完一輪后跳出內循環,將下標清零重頭再來下一輪比較END_FOR;完整程序如下圖所示:
“下標”為數組變量,當下標為0時,數組2[下標]表示數組2[0],為1時表示數組2[1]以此類推。循環記錄1和循環記錄2為FOR循環要使用的變量,記錄當前循環到第幾次。交換中轉用于交換時臨時存儲中轉數據。程序編寫如下:黑色字體為程序部分,//后紅色字體部分為注釋。#數組2 := #數組1;// 將數組1賦值給數組2,用數組2去進行排序,這樣可以保留數組1中數據的完整性。FOR #循環記錄1 := 0 TO 8 DO//與Zui下面END_FOR配對,表示從第0次開始到第8次結束,總共循環9次。 FOR #循環記錄2 := 0 TO 8 DO//與倒數第二個END_FOR配對,表示從第0次開始到第8次結束,總共循環9次。 IF #數組2[#下標] < #數組2[#下標 + 1] THEN//如果前一個數小于后一個則交換。 #交換中轉 := #數組2[#下標];//先將數組2[下標]賦值給交換中轉變量。 #數組2[#下標]:=#數組2[#下標 + 1];//再將數組2[下標+1]賦值給數組2[#下標] #數組2[#下標 + 1] := #交換中轉; //再將交換中轉賦值給數組2[#下標+1],這樣就實現了數組2[下標]與數組2[下標+1]交換。 END_IF; #下標 := #下標 + 1;//將下標偏移一位,實現下一組比較 END_FOR; #下標 :=0;//比完一輪后跳出內循環,將下標清零重頭再來下一輪比較END_FOR;完整程序如下圖所示:
相關產品
產品分類
聯系方式
- 電 話:18126392341
- 聯系人:梁濤
- 手 機:15267534595
- 微 信:15267534595