编写一个类,在未定的动态数字中找出输入数组种最小元素的值以及位置,自行给定数组并仿真。
model TestFindSmallest
model FindSmallest
input Real A[:];
output Real smallest;
output Real place;
algorithm
smallest := A[1];
place := 1;
for i in 1: size(A, 1) loop
if A < smallest then
smallest := A;
place := i;
end if;
end for;
end FindSmallest;
FindSmallest findSmallest(A={9,5,8,7,2,4});
end TestFindSmallest;
FindSmallest 包含两个输入和两个输出:
输入 A[:], 是一个实数类型的数组([:]表示该数组的尺寸是动态的)。
输出 smallest 表示数组中的最小值。
输出 place 表示最小值的位置。
在 algorithm 块中,首先将 smallest 初始化为数组 A 的第一个元素(即 A[1]),将 place 初始化为 1,表示第一个位置。
使用 for 循环遍历数组 A 中的每个元素。size(A, 1) 返回数组 A 的大小,即元素的数量。
在每次迭代中,比较当前元素 A 和当前已知的最小值 smallest。如果当前元素更小,则更新 smallest 和 place,分别为当前元素和其位置 i。