楼主最近还看过
Array REAL [20] 0.0 INTERNAL 0 0
Sum REAL 0.0 INTERNAL 0 0
i REAL 0.0 INTERNAL 0 0
aMax REAL 0.0 INTERNAL 0 0
aMin REAL 0.0 INTERNAL 0 0
result REAL 0.0 INTERNAL 0 0
aMax := Array[0];
aMin:= Array[0];
FOR i := 0 TO 19 BY 1 DO
Sum := Sum + Array[i];
IF aMax < Array[i] THEN
aMax := Array[i];
END_IF;
IF aMin > Array[i] THEN
aMin := Array[i];
END_IF;
END_FOR;
result := Array[0] / 10.0;
下面是一个使用ST语言在CP1H控制器上求数组和、最大值、最小值和平均值的程序例子。这个程序中定义了一个名为ArrayCalc的函数,用于计算给定数组的和、最大值、最小值和平均值。
// 定义一个长度为10的数组
DIM array[10]
// 定义一个函数,用于计算数组的和、最大值、最小值和平均值
FUNC ArrayCalc:
// 定义局部变量,用于保存结果
VAR sum = 0, max = 0, min = 0
// 遍历数组中的所有元素
FOR i = 0 TO 9
// 求和
sum = sum + array[i]
// 找最大值
IF array[i] > max THEN
max = array[i]
END
// 找最小值
IF array[i] < min THEN
min = array[i]
END
NEXT
// 计算平均值
AVG = sum / 10
// 返回
PROGRAM ArrayOperations
VAR
arrNumbers: ARRAY[1..5] OF INT := [5, 2, 8, 1, 4];
iSum: INT := 0;
iMax: INT := 0;
iMin: INT := arrNumbers[1];
iCount: INT := 0;
rAverage: REAL := 0.0;
END_VAR
FOR iIndex := 1 TO 5 DO
iSum := iSum + arrNumbers[iIndex]; // 求和
iCount := iCount + 1; // 数组元素个数
IF arrNumbers[iIndex] > iMax THEN // 求最大值
iMax := arrNumbers[iIndex];
END_IF
IF arrNumbers[iIndex] < iMin THEN // 求最小值
iMin := arrNumbers[iIndex];
END_IF
END_FOR
IF iCount > 0 THEN // 防止除数为0
rAverage := REAL_TO_INT(iSum) / REAL_TO_INT(iCount); // 求平均值
END_IF
END_PROGRAM