問題:作一個亂數,但大於某數(自己設定值)時,會自動記錄起來,每記錄10筆時,就自動除以10,並將所除出來之數,記錄在人機介面的圖表中
問題中沒有交代清楚的:紀錄10筆除以10之後呢?
1.自動清除紀錄,重新再記錄10筆?
2.不清除紀錄,新加入的數值為第10筆,第1筆數值剔除,維持為10筆數值再除以10?
這兩種處理法程式幾乎相同,只有小改一下,都寫成程式來解說
完成的程式介面,以Waveform Chart來顯示,用Waveform Chart是因為顯示資料為數量不定的連續資料
程式解說
1.最左邊,使用到移位暫存器來記錄亂數,因為要記錄10筆所以用空白陣列當作初始值,另外用空白陣列來清除Waveform Chart在上一次執行後留下的畫面,若不需要清除就把這個程式碼刪除即可
2.迴圈左邊,亂數乘上上限值,因為問題沒提到上限是多少?所以寫成可自己設定。大於某數部份,設定個可自己設定的臨界值來比對
3.亂數比對臨界值的結果用Case Structure來處理
4.當亂數小於臨界值時不動作,在Case Structure的False內要把移位暫存器數值的那條線拉過去,注意這條線一定要拉,否則程式會自動以空白陣列取代
5.當亂數大於臨界值時動作,在Case Structure的True內處理亂數:
a.先把亂數插入移位暫存器數值內
b.比對移位暫存器數值是否已記錄10筆資料,我使用大於等於來比對是要確保一定會動作
c.比對的結果用另一個Case Structure來處理
d.紀錄小於10筆時,在Case Structure的False內同樣要把移位暫存器數值的那條線拉過去
e.紀錄大於等於10時,在Case Structure的True內計算平均值,在這裡依條件不同會有不同處理法
1.自動清除紀錄,重新再記錄10筆?
在算出平均值後,用空白陣列清除移位暫存器數值
2.不清除紀錄,新加入的數值為第10筆,第1筆數值剔除,維持為10筆數值再除以10?
在算出平均值後,刪除第1筆資料
完成的程式
自動清除紀錄,重新再記錄10筆
不清除紀錄,新加入的數值為第10筆,第1筆數值剔除,維持為10筆數值再除以10