Найти максимальное значение в массиве в Аде - PullRequest
1 голос
/ 17 октября 2011

Я делаю Ada-программу с множеством различных функций, которые работают с массивами, я запустил все свои функции сортировки, теперь я застрял при получении максимального значения в массиве, используя инвариант цикла для разработки цикла для этой функции. любая помощь?

Ответы [ 2 ]

2 голосов
/ 17 октября 2011

Как насчет простого цикла по всему массиву?

как то так:

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 голос
/ 17 октября 2011

oenone подходит для несортированного массива, но, как вы утверждаете, у вас правильно работают функции сортировки, почему бы не отсортировать массив, а затем использовать:

Maximum := Of(Of'Last);
...