恭喜,你发布的帖子
发布于 2025-03-27 11:35:34
2楼
VAR
// 定义历史数据数组,大小为10
DataArray: ARRAY[1..10] OF INT;
// 保存上一次的A值,初始值根据实际情况调整
PreviousA: INT := 0;
// 重复标志,1表示存在重复
DuplicateFlag: BOOL;
// 记录已存储的数据数量,最大为10
Count: INT := 0;
// 循环变量
i: INT;
END_VAR
// 检测A的值是否发生变化
IF A <> PreviousA THEN
// 检查数组中是否存在重复值
DuplicateFlag := FALSE;
FOR i := 1 TO Count DO
IF DataArray[i] = A THEN
DuplicateFlag := TRUE;
EXIT; // 发现重复,立即退出循环
END_IF;
END_FOR;
// 插入新值到数组头部并移位
IF Count < 10 THEN
Count := Count + 1; // 数组未满时增加计数
END_IF;
// 从后往前移位,腾出第一个位置
FOR i := Count DOWNTO 2 DO
DataArray[i] := DataArray[i - 1];
END_FOR;
DataArray[1] := A; // 存入新值
PreviousA := A; // 更新PreviousA为当前值
END_IF;
// 输出DuplicateFlag,1表示存在重复
请填写推广理由:
分享
只看
楼主