많은 다른 함수가 배열을 어지럽히는 Ada 프로그램을 수행하고 있습니다. 정렬 함수가 모두 들어있어, 이제는 불변의 루프를 사용하여 배열의 최대 값을 검색해야합니다. 그 함수에 대한 루프를 설계하십시오. 어떤 도움?Ada의 배열에서 최대 값 찾기
1
A
답변
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
오이노네는 정렬되지 않은 배열에 대한 정확하지만, 당신이 다음 정렬 기능이 왜 배열을 정렬 할 올바르게 작동, 그리고 상태로 사용
Maximum := Of(Of'Last);
+1
* 사전 정렬 된 배열에서 이것은 사소한 일입니다. 아직 정렬되지 않은 배열에서는 정렬을 통해 간단한 스캔보다 시간이 오래 걸립니다. –
이 경우, 당신은 불변 루프를 사용 했 ? 내가 invariant의 전체 개념을 이해하는지 모르겠다. – Misty
예약어이기 때문에 "Of"를 식별자로 사용할 수 없다는 오류가 나타납니다. – Misty
정렬! 감사! – Misty