在Ada中查找数组中的最大值

时间:2011-10-17 03:52:33

标签: arrays loops ada invariants

我正在做一个Ada程序,它有很多不同的函数搞乱数组,我得到了所有的排序函数,我现在停留在使用循环不变量来检索数组中的最大值来设计该函数的循环。有什么帮助吗?

2 个答案:

答案 0 :(得分:2)

如何简单地循环遍历整个数组?

类似的东西:

function Get_Maximum (Of : My_Array_Type) return Element_Type is
   Maximum : Element_Type := Of (Of'First);
begin
   for I in Of'First + 1 .. Of'Last loop
      if Of (I) > Maximum then
         Maximum := Of (I);
      end if;
   end loop;
   return Maximum;
end Get;
如果数组为空,

将引发异常,但如果需要这些情况,则将其留作读者的练习。

答案 1 :(得分:1)

oenone对于未排序的数组是正确的,但正如您所说,您的排序函数正常工作,为什么不对数组进行排序,然后使用:

Maximum := Of(Of'Last);