公司網(wǎng)站建設(shè)費(fèi)用入什么費(fèi)用建設(shè)網(wǎng)站需要多少錢(qián)
使用博圖SCL語(yǔ)言來(lái)實(shí)現(xiàn)先入先出排序
使用SCL完成一個(gè)先入先出排序
具體要求:最先輸入的一個(gè)數(shù)值,最先輸出出來(lái),下面的數(shù)自動(dòng)向前填充;
注:這里可能有兩種理解:一是第一個(gè)輸入的第一個(gè)出來(lái),二是最后一個(gè)輸入的第一個(gè)出來(lái);
這里我們都來(lái)實(shí)現(xiàn)一下。
?數(shù)組變量建立
?記得在主程序調(diào)用函數(shù)塊?
編寫(xiě)實(shí)現(xiàn)?
1.我們先要獲取輸入進(jìn)來(lái)的值,然后存放到一個(gè)數(shù)組中;
首先判斷輸入的值是否大于0,然后進(jìn)入for循環(huán)(這里以0..5為例),在for循環(huán)中判斷數(shù)組中哪一個(gè)為0,找到后將輸入值放在為0的數(shù)組中,然后清零退出循環(huán)。?
第1步存放輸入值就完成了。?
IF #輸入值 > 0 THENFOR #N := 0 TO 5 DOIF #SC[#N] = 0 THEN#SC[#N] := #輸入值;#輸入值 := 0;EXIT;END_IF;END_FOR;
END_IF;
2.第1個(gè)存進(jìn)來(lái)的數(shù)第1個(gè)出來(lái)
?輸出按鈕控制通斷,for循環(huán)來(lái)遍歷數(shù)組,如果找到數(shù)組不等于0(那么就是為真的),就將里面的值存放在一個(gè)變量中,然后將數(shù)組的值和按鈕清零退出循環(huán);
這里我們就找到了第一個(gè)存進(jìn)來(lái)的數(shù)值。
IF #輸出按鈕 THENFOR #S := 0 TO 5 DOIF #SC[#S] <> 0 THEN#輸出值 := #SC[#S];#SC[#S] := 0;#輸出按鈕 := 0;EXIT;END_IF;END_FOR;
END_IF;
?3.下面數(shù)組自動(dòng)向前填充
?我們輸出過(guò)之后,數(shù)組中就為0了,那怎么才能補(bǔ)上去呢?
這里我們用for循環(huán)進(jìn)行一個(gè)判斷,判斷里面是否有一個(gè)為0,如果為0就將下一個(gè)數(shù)組的數(shù)補(bǔ)充上去,以此類(lèi)推,直至填充完成。
(注:這里I+1會(huì)導(dǎo)致數(shù)組越界,所以上面的數(shù)組數(shù)量要再加1才可以)?
FOR #I := 0 TO 5 DOIF #SC[#I] = 0 & #SC[#I+1]<>0 THEN#SC[#I] := #SC[#I + 1];#SC[#I + 1] := 0;END_IF;
END_FOR;
4.觸摸屏演示
5.這里我們?cè)诳匆幌碌?種理解,最后輸入的最先輸出?
?這里我們只要將輸出時(shí)的循環(huán)順序修改為逆序就可以了,S從5到1,來(lái)開(kāi)始循環(huán)。
?以上就是先入先出排序法的全部?jī)?nèi)容了。