1

私は配列をいじる多くの異なる関数でAdaプログラムを実行しています、私はすべてのソート関数を実行しました、私は今、その関数のループを設計するためにループ不変条件を使用して配列の最大値を取得することに固執しています。何か助けはありますか?

4

2 に答える 2

3

配列全体を単純にループするのはどうですか?

このようなもの:

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;

配列が空の場合は例外が発生しますが、これらのケースが必要な場合は、読者の演習として残されています。

于 2011-10-17T07:19:25.617 に答える
1

oenone はソートされていない配列に対して正しいですが、ソート関数が正しく機能していると述べているので、配列をソートしてから次を使用してください。

Maximum := Of(Of'Last);
于 2011-10-17T10:05:15.783 に答える