Todos los array tienen los atributos: First, Last, Length y Range; Así, si A es un array y N un valor entero positivo menor o igual que el número de dimensiones del array, se tiene:
A'First | límite inferior del rango del primer índice de A |
A'First(N) | límite inferior del rango del N-ésimo índice de A. (A'First(1) = A'First) |
A'Last | límite superior del rango del primer índice de A |
A'Last(N) | límite superior del rango del N-ésimo índice de A. (A'Last(1) = A'Last) |
A'Range | equivalente al rango A'First .. A'Last |
A'Range(N) | equivalente al rango A'First(N) .. A'Last(N). (A'Range(1) = A'Range) |
A'Length | número de valores del rango del primer índice |
A'Length(N) | número de valores del rango del N-ésimo índice. (A'Length(1) = A'Length) |
El uso de los atributos permite escribir algoritmos aplicables independientemente del rango de las distintas dimensiones de un array.
procedure OrdenarVector (V : in out TLibre) is E : Float; P : Integer; begin for I in V'First .. Integer'Pred (V'Last) loop P := I; for J in Integer'Succ(I) .. V'Last loop if V(J) < V(P) then P := J; end if ; end loop; if P /= I then E := V(I); V(I) := V(P); V(P) := E; end if; end loop; end OrdenarVector;