Monografías Plus »

Tipos de datos estructurados





Monografias.com
Tipos de datos Clasificación de tipos Simples Estándar: int, float, double, char, boolConjunto de valores predeterminado Definidos por el usuario: enumeradosConjunto de valores definido por el programador Estructurados Colecciones homogéneas: arraysTodos los elementos del mismo tipo Colecciones heterogéneas: estructurasLos elementos pueden ser de tipos distintos ? ? ?

Monografias.com
Tipos estructurados Colecciones o tipos aglomerados Agrupaciones de datos (elementos): Todos del mismo tipo: array o tabla De tipos distintos: estructura, registro o tupla Arrays (tablas) Elementos organizados por posición: 0, 1, 2, 3, ... Acceso por índice: 0, 1, 2, 3, ... Una o varias dimensiones Estructuras (tuplas, registros) Elementos (campos) sin orden establecido Acceso por nombre

Monografias.com
Arrays [] Estructura secuencial Cada elemento se encuentra en una posición (índice): Los índices son enteros positivos El índice del primer elemento siempre es 0 Los índices se incrementan de uno en uno Acceso directo A cada elemento se accede a través de su índice: ventas[4] accede al 5º elemento (contiene el valor 435.00) cout Se usan como cualquier variable

Monografias.com
Tipos y variables arrays Declaración de tipos de arrays const int Dimensión = ...; typedef tipo_base tNombre[Dimensión]; Ejemplo: const int Dias = 7; typedef double tVentas[Dias]; Declaración de variables de tipos array: como cualquier otra tVentas ventas; ¡NO se inicializan los elementos automáticamente! ¡Es responsabilidad del programador usar índices válidos! No se pueden copiar arrays directamente (array1 = array2) Hay que copiarlos elemento a elemento

Monografias.com
Arrays y bucles for Procesamiento de arrays Recorridos Búsquedas Ordenación etcétera... Recorrido de arrays con bucles for Arrays: tamaño fijo ? Bucles de recorrido fijo (for) tVentas ventas; double media, total = 0; ... for (int i = 0; i
Monografias.com
tVentas ventas; double media, total = 0; ... for (int i = 0; i
Monografias.com
Inicialización de arrays Podemos inicializar los elementos de los arrays en la declaración Asignamos una serie de valores al array: const int DIM = 10; typedef int tTabla[DIM]; tTabla i = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; Se asignan los valores por su orden: i[0] i[1] i[2] i[3] i[4] ... i[9] 1º 2º 3º 4º 5º ... 10º Si hay menos valores que elementos, los restantes se ponen a 0 tTabla i = { 0 }; // Pone todos los elementos a 0

Monografias.com
Enumerados como índices const int Colores = 3, typedef enum { rojo, verde, azul } tRGB; typedef int tColor[Colores]; tColor color; ... cout > color[rojo]; cout > color[verde]; cout > color[azul]; Recuerda que internamente se asignan enteros a partir de 0a los distintos símbolos del enumeradorojo ? 0 verde ? 1 azul ? 2

Monografias.com
Paso de arrays a subprogramas Simulación de paso de parámetro por referencia Sin poner & en la declaración del parámetro Los subprogramas reciben la dirección en memoria del array const int Max = 10; typedef int tTabla[Max]; void inicializa(tTabla tabla); // Sin poner & Las modificaciones del array quedan reflejadas en el argumento inicializa(array); Si inicializa() modifica algún elemento de tabla, automáticamente queda modificado ese elemento de array ¡Son el mismo array!

Monografias.com
Paso de arrays a subprogramas 0 1 2 3 4 5 6 7 8 9 const int Dim = 10; typedef int tTabla[Dim]; void inicializa(tTabla tabla); // no se usa & void inicializa(tTabla tabla) { for (int i = 0; i
Monografias.com
Paso de arrays a subprogramas ¿Cómo evitar que se modifique el array? Usando el modificador const en la declaración del parámetro: const tTabla tabla Un array de constantes void muestra(const tTabla tabla); El argumento se tratará como un array de constantes Si en el subprograma hay alguna instrucción que intente modificar un elemento del array: error de compilación void muestra(const tTabla tabla) { for (int i = 0; i
Monografias.com
Implementación de listas con arrays Listas con un número fijo de elementos Array con el nº de elementos como dimensión const int NUM = 100; typedef double tLista[NUM]; // Exactamente 100 double tLista lista; Recorrido de la lista: for (int i = 0; i