Ver Mensaje Individual
  #3  
Antiguo 22-12-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.025
Reputación: 27
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Como complemento al comentario de Al:

Hay, también, dos funciones que devuelven los límites de un vector (lista o array) que son High y Low. Es decir, Low devuelve el índice del primer elemento y High devuelve el índice al último. Funciona con cualquier tipo de vector, tanto dinámico como estático, lo que facilita mucho el trabajo cuando tienes que recorrer listas de las que no sabes cuántos elementos tienen o cuál es elemento inicial (ya sabes que en Pascal puedes elegir el índice del primer elemento). Por ejemplo:
Código Delphi [-]
PROCEDURE MuestraInfoVector (Vector: ARRAY OF INTEGER);
VAR
  Ndx: INTEGER
BEGIN
  WriteLn ('Los límites del vector son ', Low (Vector), ' y ', High (Vector), '.');
  Write ('Y sus elementos son: v = {');
  FOR Ndx := Low (Vector) TO High (Vector) DO
    Write (Vector[Ndx], ' ');
  WriteLn ('}');
END;

VAR
  Vector1: ARRAY [0..9] OF INTEGER;
  Vector2: ARRAY [7..15] OF INTEGER;
BEGIN
  ...
  MuestraInfoVector (Vector1);
  MuestraInfoVector (Vector2);
END.
Nota: Estoy en la oficina y no tengo ni Delphi ni FreePascal para probar el código anterior, pero debería funcionar.

Nota2: No confundir con las funciones Hi y Lo. Estas devuelven el octeto alto o el bajo de un entero.

Nota3: High y Low también permiten conocer los límites de un tipo de dato. Por ejemplo, si "Variable" es un entero, entonces "High (Variable)" te devolverá el valor máximo que puede almacenar. También puede usarse con tipos (por ejemplo "Low (INTEGER)") pero no con todos ellos.

Última edición por Ñuño Martínez fecha: 22-12-2011 a las 10:26:23.
Responder Con Cita