Los
arrays
son cadenas o listas de algo. Normalmente siempre serán del mismo
tipo.
Hasta ahora,
hemos visto un tipo de datos que es una cadena: los strings.
Son cadenas de caracteres.
Los arrays
son prácticamente imprescindibles en casi cualquier tipo de
programa. De una forma u otra, todo programa necesita almacenar en
memoria grandes cantidades de datos. Por ejemplo, un editor de
texto almacena caracteres; un programa de música datos de samples,
un programa de conversión almacena datos del dato que va a
convertir, un programa de video frames, un juego almacena sus
características y escenas, y así con la práctica mayoría de los
programas.
Declaración
de un array
La
organización "array" es, probablemente, la estructura de
datos más conocida debido a que en muchos lenguajes es la única
disponible explícitamente.
Un "array"
es una estructura homogénea que está constituida por componentes
del mismo tipo, llamado tipo base.
También se
denomina estructura de acceso aleatorio, o acceso directo, porque
todos sus componentes pueden seleccionarse arbitrariamente y son
igualmente accesibles. Para designar a un componente aislado, el
nombre de la estructura se amplía con el llamado índice de
selección del componente. El índice debe ser un valor del tipo
definido como tipo índice del array.
La definición de un tipo "array" T especifica un tipo base To y un tipo índice I.
TYPE T = ARRAY [ I ] OF To
Ejemplos:
TYPE vector = ARRAY [1..3] OF REAL
TYPE linea = ARRAY [1..80] OF CHAR
TYPE nombre = ARRAY [1..32] OF CHAR
Los índices de
un "array" deben ser de tipo ordinal. No suele ser
posible utilizar el tipo INTEGER porque se excedería el espacio de
memoria accesible. Para usar valores enteros como índices, hay que
indicar un subrango de enteros.
Un valor de
tipo "array" se puede designar por un constructor donde
se indica el nombre del tipo y valores constantes de los
componentes separados por comas y encerrados entre paréntesis.
Ejemplo: vector (2.57, 3.14, -8.16)
Para especificar
un mismo valor a componentes consecutivos, se puede usar un factor
de repetición de la forma "n of valor"; donde "n"
indica el número de componentes que recibirán el mismo valor, y
debe ser una expresión constante de tipo INTEGER. El "valor"
puede ser una constante u otro constructor del mismo tipo que el
componente.
Ejemplos: vector (3 OF 1.0) es equivalente a vector (1.0,1.0,1.0)
vector (7.2, 2 OF 3.0)
Para seleccionar
un componente individual de un "array" se usa un selector
que consiste en escribir el nombre de la variable de tipo "array"
seguido por el nombre correspondiente al componente, escrito entre
corchetes.
Ejemplo: si v := vector (2.57, 3.14, -8.16)
entonces v [1] es igual a 2.57.
Los componentes
de un "array" se pueden someter a todas las operaciones
permitidas para su tipo. La única operación definida para el
"array" como tal, es la asignación ( := ).
La forma
habitual de operar con "arrays" es actualizar componentes
aislados.
El hecho de
que los índices tengan que ser de un tipo de datos definido tiene
una consecuencia importante: los índices pueden calcularse, es
decir, puede ponerse una expresión en lugar de una constante. La
expresión debe evaluarse y su resultado determina el componente
seleccionado. Esta generalización proporciona una herramienta de
programación potente pero, al mismo tiempo, da ocasión a uno de
los errores de programación más frecuentes: el valor resultante
puede estar fuera del intervalo especificado como campo de
variación de los índices. Se supone que en tales casos, la
implementación en un equipo concreto ha previsto la emisión de
mensajes de error.
Los valores
organizados en forma de "array" se suelen manejar
utilizando índices variables y sentencias repetitivas que permiten
construir algoritmos para realizar tratamientos sistemáticos.
Los índices
son de tipo escalar, es decir, un tipo no estructurado en el que
está definida una relación de orden. Si el tipo base también
está ordenado, entonces queda establecida una relación de orden
para ese tipo "array".
La relación
de orden entre dos "arrays" está determinada por los dos
componentes desiguales, correspondientes, con menor índice.
Texto
en cursiva=Declaración
de un array=
La o'rganización'''--148.213.14.220
19:51 14 may 2014 (UTC)Texto en cursiva--148.213.14.220 19:51 14
may 2014 (UTC)--148.213.14.220 19:51 14 may 2014 (UTC)áĎġĮĝ
"array"
es, probablemente, la estructura de datos más conocida debido
a que en muchos lenguajes es la única disponible explícitamente.
Un "array"
es una estructura homogénea que está constituida por componentes
del mismo tipo, llamado tipo base.
También
se denomina estructura de acceso aleatorio, o acceso directo,
porque todos sus componentes pueden seleccionarse arbitrariamente y
son igualmente accesibles. Para designar a un componente aislado,
el nombre de la estructura se amplía con el llamado índice de
selección del componente. El índice debe ser un valor del tipo
definido como tipo índice del array.
La definición de un tipo "array" T especifica un tipo base To y un tipo índice I.
TYPE T = ARRAY [ I ] OF To
Ejemplos:
TYPE vector = ARRAY [1..3] OF REAL
TYPE linea = ARRAY [1..80] OF CHAR
TYPE nombre = ARRAY [1..32] OF CHAR
Los índices de
un "array" deben ser de tipo ordinal. No suele ser
posible utilizar el tipo INTEGER porque se excedería el espacio de
memoria accesible. Para usar valores enteros como índices, hay que
indicar un subrango de enteros.
Un valor de
tipo "array" se puede designar por un constructor donde
se indica el nombre del tipo y valores constantes de los
componentes separados por comas y encerrados entre paréntesis.
Ejemplo: vector (2.57, 3.14, -8.16)
Para especificar
un mismo valor a componentes consecutivos, se puede usar un factor
de repetición de la forma "n of valor"; donde "n"
indica el número de componentes que recibirán el mismo valor, y
debe ser una expresión constante de tipo INTEGER. El "valor"
puede ser una constante u otro constructor del mismo tipo que el
componente.
Ejemplos: vector (3 OF 1.0) es equivalente a vector (1.0,1.0,1.0)
vector (7.2, 2 OF 3.0)
Para seleccionar
un componente individual de un "array" se usa un selector
que consiste en escribir el nombre de la variable de tipo "array"
seguido por el nombre correspondiente al componente, escrito entre
corchetes.
Ejemplo: si v := vector (2.57, 3.14, -8.16)
entonces v [1] es igual a 2.57.
Los componentes
de un "array" se pueden someter a todas las operaciones
permitidas para su tipo. La única operación definida para el
"array" como tal, es la asignación ( := ).
La forma
habitual de operar con "arrays" es actualizar componentes
aislados.
El hecho de
que los índices tengan que ser de un tipo de datos definido tiene
una consecuencia importante: los índices pueden calcularse, es
decir, puede ponerse una expresión en lugar de una constante. La
expresión debe evaluarse y su resultado determina el componente
seleccionado. Esta generalización proporciona una herramienta de
programación potente pero, al mismo tiempo, da ocasión a uno de
los errores de programación más frecuentes: el valor resultante
puede estar fuera del intervalo especificado como campo de
variación de los índices. Se supone que en tales casos, la
implementación en un equipo concreto ha previsto la emisión de
mensajes de error.
Los valores
organizados en forma de "array" se suelen manejar
utilizando índices variables y sentencias repetitivas que permiten
construir algoritmos para realizar tratamientos sistemáticos.
Los índices
son de tipo escalar, es decir, un tipo no estructurado en el que
está definida una relación de orden. Si el tipo base también
está ordenado, entonces queda establecida una relación de orden
para ese tipo "array".
La relación
de orden entre dos "arrays" está determinada por los dos
componentes desiguales, correspondientes, con menor índice. 'Texto
en negrita