Как насчет простого цикла по всему массиву?
как то так:
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;
вызовет исключение, если массив пуст, но это останется в качестве упражнения для читателя, если эти случаи необходимы.