wmw186
級別: 略有小成
|
各位大神,小弟求助關于三菱work2 用ST語言求20位數組中值平均數,要求去掉最大值和最小值。數組單精度實數類型,求各位大聲不吝賜教。。。。。。。。。。。。。。。。。! |
---|---|
|
夢雨天涯
微信hui530527 &
級別: 網絡英雄
|
要不你先做個梯形圖的出來吧 |
|
---|---|---|
|
隱姓埋名
電氣工程從業者,愛好者。廣交天下同行VX:em5480011
級別: 略有小成
|
套指令 |
|
---|---|---|
本帖最近評分記錄:
|
uthman
QQ:3749615
級別: 家園常客
|
rSum:=aData[0]; rMin:=aData[0]; rMax:=aData[0]; FOR index:=1 TO 20 BY 1 DO IF rMin > aData[index] THEN rMin:=aData[index]; END_IF; IF rMax < aData[index] THEN rMax:=aData[index]; END_IF; rSum:=rSum+aData[index]; END_FOR; rSum:=rSum-rMax; rSum:=rSum-rMin; rAve:=rSum/20.0; |
---|---|
本帖最近評分記錄: |
heiheiwodeai
級別: 略有小成
|
有個小問題,就是沒有排除非0數,如果 數組就兩個數 賦值>0 那結果就錯誤了 [ 此帖被heiheiwodeai在2022-11-22 11:36重新編輯 ] |
---|---|
本帖最近評分記錄: |
yzdz66
級別: 探索解密
|
(*三菱work2 用ST語言求20位數組中值平均數, 要求去掉最大值和最小值 數組單精度實數類型 *) (* 初始化*) IF bstart THEN IF NOT bstartOld THEN DataMax:=0.0; DataMin:=0.0; DataSun:=0.0; bstartFlg:=TRUE; END_IF; ELSIF bstartOld THEN bstartFlg:=FALSE; DataMax:=0.0; DataMin:=0.0; DataSun:=0.0; END_IF; (* 計算*) IF bstartFlg AND NOT bstartFlgOld THEN FOR index:=0 TO 19 DO IF DataMax<Data[index]THEN (*求最大值*) DataMax:=Data[index]; END_IF; IF DataMin>Data[index]THEN (*求最小值*) DataMin:=Data[index]; END_IF; DataSun:=Data[index]+DataSun;(*求和*) DataAverage:=(DataSun-DataMax-DataMin)/18.0;(*求平均值*) END_FOR; END_IF; bstartOld:= bstart ; bstartFlgOld:=bstartFlg; |
---|---|
本帖最近評分記錄: |