問題:作一個亂數,但大於某數(自己設定值)時,會自動記錄起來,每記錄10筆時,就自動除以10,並將所除出來之數,記錄在人機介面的圖表中

 


問題中沒有交代清楚的:紀錄10筆除以10之後呢?


1.自動清除紀錄,重新再記錄10筆?


2.不清除紀錄,新加入的數值為第10筆,第1筆數值剔除,維持為10筆數值再除以10?

 


這兩種處理法程式幾乎相同,只有小改一下,都寫成程式來解說


完成的程式介面,以Waveform Chart來顯示,用Waveform Chart是因為顯示資料為數量不定的連續資料

20100611-01  

 

 

程式解說

 

1.最左邊,使用到移位暫存器來記錄亂數,因為要記錄10筆所以用空白陣列當作初始值,另外用空白陣列來清除Waveform Chart在上一次執行後留下的畫面,若不需要清除就把這個程式碼刪除即可

20100611-02  

 

 

2.迴圈左邊,亂數乘上上限值,因為問題沒提到上限是多少?所以寫成可自己設定。大於某數部份,設定個可自己設定的臨界值來比對

20100611-03  

 

 

3.亂數比對臨界值的結果用Case Structure來處理

 

 

4.當亂數小於臨界值時不動作,在Case Structure的False內要把移位暫存器數值的那條線拉過去,注意這條線一定要拉,否則程式會自動以空白陣列取代

20100611-04  

 

 

5.當亂數大於臨界值時動作,在Case Structure的True內處理亂數:


a.先把亂數插入移位暫存器數值內


b.比對移位暫存器數值是否已記錄10筆資料,我使用大於等於來比對是要確保一定會動作

20100611-05  

 

c.比對的結果用另一個Case Structure來處理


d.紀錄小於10筆時,在Case Structure的False內同樣要把移位暫存器數值的那條線拉過去

20100611-06  

 

 

e.紀錄大於等於10時,在Case Structure的True內計算平均值,在這裡依條件不同會有不同處理法

 


1.自動清除紀錄,重新再記錄10筆?


在算出平均值後,用空白陣列清除移位暫存器數值

20100611-10      

 

 

2.不清除紀錄,新加入的數值為第10筆,第1筆數值剔除,維持為10筆數值再除以10?


在算出平均值後,刪除第1筆資料

20100611-07  

 

 

完成的程式

 

自動清除紀錄,重新再記錄10筆

20100611-09  

 

 

不清除紀錄,新加入的數值為第10筆,第1筆數值剔除,維持為10筆數值再除以10

20100611-08    

, ,

未出師的小工程師 發表在 痞客邦 PIXNET 留言(0) 人氣()