TEMA 6: Tipos de datos estructurados

TEMA 6: Tipos de datos estructurados TEMA 6: Tipos de datos estructurados 6.1. Introducción Los tipos de datos estructurados o tipos compuestos son a...
207 downloads 0 Views 99KB Size
TEMA 6: Tipos de datos estructurados

TEMA 6: Tipos de datos estructurados 6.1. Introducción Los tipos de datos estructurados o tipos compuestos son agrupaciones de otros tipos de datos. Los tipos de datos estructurados más comunes son: vectores y matrices (array), cadenas de caracteres (string), registros y uniones, aunque estos últimos no los vamos a ver en este curso. 6.2. Vectores y Matrices 6.2.1. Vectores Sirve para agrupar variables de un mismo tipo con un único nombre. Supongamos que queremos declarar 10 variables de tipo entero (por ej. contadores). La única forma de hacerlo hasta ahora sería declararlos como variables individuales: int a0, a1, a2, a3, a4, a5, a6, a7, a8, a9;

Y si quisiésemos inicializarlos a 0, habría que escribir 10 asignaciones. Otra forma de hacerlo es utilizando un vector (o array). Forma de declarar un vector: Tipo Nombre[NumElementos]

Donde Tipo indica el tipo de datos de los elementos del vector. El tipo puede ser cualquier tipo de dato, sea simple o estructurado. NumElementos es el número de elementos que contiene el vector. Tiene que ser siempre una constante de tipo entero.

Ejemplo: int a[10];

De esta forma tenemos los 10 enteros agrupados y se pueden tratar como una única variable.

Fernando Barber y Ricardo Ferrís

72

TEMA 6: Tipos de datos estructurados Podemos acceder a cada uno de los elementos de un vector utilizando un índice. A esta operación se la denomina indexación. El índice indica la posición del elemento dentro del vector. En C++ El primer elemento es siempre el 0. Ejemplo: 1º entero del vector: 2º entero del vector: 3º entero del vector: ... Último entero del vector:

a[0] a[1] a[2] a[9]

Hay que tener presente que cuando indexamos un vector, el resultado es un elemento del vector y tendrá por tanto el tipo de este elemento. En nuestro ejemplo, a[2] es de tipo int, y se podrá utilizar por tanto en cualquier lugar del programa donde se admita una variable de tipo int. La estructura más adecuada para manejar vectores es un bucle for, debido a que siempre conocemos el número de elementos del vector.

Ejemplo: si tenemos un vector de 10 enteros que representan contadores, para inicializar todos los contadores a 0 sería: int a[10]; int i; for(i = 0; i < 10; i++) a[i] = 0;

Para escribir en pantalla todos los elementos: for(i = 0; i < 10; i++) cout v[i]; return; }

El vector v en este ejemplo está pasado por referencia, no es necesario escribir el &. Al pasarse exclusivamente por referencia, el paso de arrays como parámetros es más eficiente, puesto que no hay que copiar cada vez toda la matriz (que normalmente son bastante grandes). El inconveniente es que dentro de la función se puede modificar el array aunque no se quisiera. Para evitar esto, en C++ existen los parámetros constantes. Son parámetros que se declaran como constantes, de manera que no pueden ser modificados.

Ejemplo: Mostrar un vector. void MostrarVector(const Vector v) { int i; for(i = 0; i < MAX; i++) cout