Sunteți pe pagina 1din 16

ESTRUCTURA DE DATOS ARREGLOS

ARRAYS (ARREGLOS)
Un Array es una estructura de datos en la que se almacena una coleccin de datos del mismo tipo (por ejem. Los salarios de los empleados de una empresa). Un Array es una lista de un nmero finito de n elementos del mismo tipo, que se caracteriza por: Almacenar los elementos del array en posiciones de memoria continua. Tener un nico nmero de variable (por ejemplo: salarios) que representa a todos los elementos, y stos a su vez, se diferencian por un ndice o subndice Acceso directo o aleatorio a los elementos individuales del array. Por ejemplo: Salario nombre del array Salario[1] elemento del array Salario[2] 1,2...n subndice del array . . . Salario[n ] Los arrays se clasifican en: Unidimensionales (vectores o listas)

1. array de UNIDIMENSIONALES o lista es un Un ARRAYSuna dimensin vector (VECTORES) tipo de datos estructurados compuesto de un nmero de elementos finito, tamao fijo y elementos homogneos. Finitos, indica que hay un ltimo elemento, tamao fijo significa que el tamao del array debe ser conocido en tiempo de compilacin, homogneo significa que todos los elementos son del mismo tipo. Los elementos del array se almacenan en posiciones contiguas de memoria, a cada una de las cuales se puede acceder directamente. Supongamos que se desea conservar las puntuaciones de los 50 estudiantes de un examen de informtica. Para almacenar estas puntuaciones o calificaciones se necesita reservar cincuenta posiciones en memoria, dar un nombre al array, y a cada uno de los 50 estudiantes asignarles su clasificacin correspondiente, es decir, dar el ndice o subndice del array.

1. Arrays Unidimensionales (Vectores)


Ejem:
Calificaciones[1] Calificaciones

7.50
4.75 5.25

Calificaciones[2]
Calificaciones[3]

Calificaciones[50]

6.00

1.1.

Declaraciones de Tipo Array

Normalmente, la estructura de un array (vector) se describe por la declaracin del tipo de array. A continuacin se asigna almacenamiento para uno o ms arrays de ese tipo.

Ejem: Formato
Type Nombre_array = array [tipo subndice] of tipo; Nombre_array Tipo subndice identificador vlido puede ser de tipo ordinal: boolean o char, un tipo enumerado o un tipo subrango. Existe un elemento por cada valor del tipo subndice describe el tipo de cada elemento del vector; todos los elementos del vector son del mismo tipo.

Tipo

1. El tipo de dato estndar Real no puede ser utilizado como un tipo subndice; sin embargo, un subrango de enteros puede ser un tipo subndice. 2. El tipo de elemento puede ser cualquier tipo definido por el usuario o estndar

El subndice o ndice del array debe ser de tipo simple: entero (integer, shortint, Byte, Word), lgico, carcter o enumerado, pero no real. Ejemplos tpicos de ndices son: 1 .. 10 C .. N true .. false enteros caracteres lgicos

azul .. marrn

enumerados

Un elemento del array se identifica por el nombre del array y el subndice (ndice) adecuado contenido entre corchetes. Por ejemplo: Salarios[1] Salarios[2] Salarios[10]

1.2. Variables de tipo Array:


Las declaraciones de tipo de dato array no crean ninguna variable especfica tipo array. En realidad la declaracin type proporciona informacin perteneciente a un grupo de arrays como un todo. Las variables tipo arrays son creadas utilizando la declaracin var, cuyo formato general es: Var NombreArray : NombreTipo;

NombreArray NombreTipo
Ejemplo:

nombre elegido para la variable igual nombre que el utilizado en type.

Type Valores = array [-10..10] of real; Var Precios: Valores; El subndice de la variable array Precios debe ser un entero entre 10 y 10; cada elemento del array contiene un valor real.

Ejemplo:

Const Max = 500; Type Texto = array [1..Max] of char; Var Palabras, letras: Texto;
La declaracin var, en este caso, crea dos variables arrays, cuyos nombres son Palabras y Letras. Consultando las declaraciones const y type se observa que los subndices de estos arrays deben ser un entero entre 1 y 500; cada elemento de estos arrays contendrn un valor de tipo carcter. El nmero de elementos de un array viene definido por la diferencia entre los ndices mayor y menor ms uno.

Tipo Enumerados:
Procedimientos de visualizacin de datos tipo enumerado:

Ejemplo: Dadas las declaraciones: Type Arcoiris = (Rojo, Verde, Azul, Marrn, Blanco, Gris, Negro); Var Color: Arcoiris; Se puede crear un procedimiento EscribirColor, de modo que cuando se le invoque por el nombre y con un determinado color como argumento se visualice dicho color. La sentencia
EscribirColor (Argumento) Visualiza el nombre del color que figura en el argumento.

Ejemplo: Los datos pueden ser de tipo enumerado Type LucesTrfico = (rojo, verde, amarillo); Var Trafico: Array [1..3] of LucesTrfico;

Las declaraciones de arrays pueden aparecer directamente en la seccin de variables de la parte de declaracin de un programa. Por ejemplo: Var Coordenadas : array [1..15] of real; Numero : array [0..100] of 1..999; CuentaCar : array [A..Z] of integer; LineaTexto : array [1..80] of char; Pero, es preferible asociarlas con identificadores tipo, como en Type Letra = A .. Z; ArrayReal = array [1..15] of real; Numero = array [0..100] of 1..999; Linea = array [1..80] of char; Y a continuacin utilizar estos identificadores tipo para declarar los tipos de arrays Var Coordenadas : ArrayReal; Cantidad : Numero;

Precaucin: Las declaraciones de ndices no pueden contener variables: Var Demo : array [1..N] of integer; es ilegal A menos que: Si se hubiera definido previamente N como constante (por ejem. N = 10), s sera vlida la declaracin. 1.3. Uso del ndice de un Array

Cada referencia a un array incluye el nombre y el subndice (ndice) encerrado en corchetes, el ndice determina qu elemento se procesa. El tipo ndice suele ser un subrango. De acuerdo a los datos contenidos en un array, las operaciones bsicas que se pueden ejecutar en ellos son:
1.3.1 Asignacin de valores a elementos del array. A los componentes de un Array se pueden asignar valores de igual forma que a cualquier otra variable, con tal de que sean del mismo tipo. A[ i ] := 25; Trafico[ 3 ] := Rojo; A[ i ] := c;

1.3.2 ndices distintos de enteros: Los ndices de un array deben ser un intervalo de tipo simple: entero, lgico, carcter, enumerado o subrango.
Ejemplo: Type

Linea = array [1..40] of char; Tabla = array [1..30] of Linea;


Var Reticula : Tabla; Rango : Linea; Estas declaraciones pueden escribirse tambin de la siguiente forma: Const Longitud = 40; Altura = 30; Type Horizontal = 1..Longitud; Vertical = 1..Altura; Linea = array [Horizontal] of char; Tabla = array [Vertical] of Linea;

Ejemplo: Las declaraciones: Type DiasdeSemana = (Lunes, Martes, Mircoles, Jueves, Viernes, Sabado, Domingo); ConjuntoDias = array [DiasdeSemana] of integer; Var Cuenta : ConjuntoDias; Establecen un vector (un array unidimensional) con siete posiciones cada una de las cuales puede almacenar un entero. Cuenta [Lunes] Cuenta [Martes]
1614 345 2214

Cuenta [Mircoles] Cuenta [Jueves] Cuenta [Viernes] Cuenta [Sbado]

2817 1432 2460 2112

Cuenta [Domingo]

1.4. Operaciones con Arrays (Vectores)


Los vectores (Arrays) no se pueden leer/escribir en una sola operacin o sentencia. La lectura o escritura de un array se debe hacer elemento a elemento, y para realizar estas operaciones se deben leer o visualizar los componentes de un array mediante estructuras repetitivas. Ejemplo: El vector Notas contiene las calificaciones obtenidas en un examen por los alumnos de una clase de Turbo Pascal. Type ListadeNotas = array [1..30] of integer; Var Notas : ListadeNotas;

1.4.1 Lectura de un vector:


Bucles For for I:= 1 to 100 do

Bucles While Bucles Repeat I:= 1; b) I:= 1; While I <= 100 do Repeat Begin Read (Notas[ I ]); Read (Notas[ I ]; I:= I + 1; I:= I + 1; until I > 100; end; En el caso de que el ndice del array sea un tipo enumerado, la lectura completa se realiza por la sentencia For. 1.4.2 Escritura de un Vector: Los elementos de un vector pueden ser visualizados situando una sentencia de salida dentro de una estructura repetitiva. Por ejemplo: ReadLn (Numero); {lee la cantidad de nmeros a leer en el vector} Write (Notas [ i ]: 3); Las salidas aparecern en la misma linea. Esto se puede evitar escribiendo una sentencia writeLn al final del bucle. For I := 1 to Nmero do WriteLn (Notas [ I ] : 3);

S-ar putea să vă placă și