Programacion

Solo disponible en BuenasTareas
  • Páginas : 13 (3040 palabras )
  • Descarga(s) : 0
  • Publicado : 22 de febrero de 2012
Leer documento completo
Vista previa del texto
Tema 5. Tipos estructurados de datos

TEMA 5. TIPOS ESTRUCTURADOS DE DATOS.

5.1. 5.2. 5.3. 5.4. 5.5. 5.6.

Matrices. Cadena de caracteres (Strings). Estructuras. Enumerados. Tipos definidos por el usuario. Punteros.

PROGRAMACIÓN EN C

59

Tema 5. Tipos estructurados de datos

5.1.

MATRICES.

Un array o una matriz es una colección de variables del mismo tipo que sereferencian por un nombre en común. A un elemento especifico de un array se accede mediante un índice. En C todos los arrays constan de posiciones de memoria contiguas. La dirección más baja corresponde al primer elemento y la dirección más alta corresponde al último elemento. Los arrays pueden tener una o varias dimensiones. Arrays unidimensionales. La forma general de declaración de una arrayunidimensional es:

Tipo nombre_de_variable [tamaño].
Como en otros lenguajes, los arrays tienen que declararse explícitamente para que así el compilador pueda reservar espacio en memoria para ellos. Aquí, tipo declara el tipo base del array, que es el tipo de cada elemento del array. El valor de tamaño indica cuántos elementos mantendrá el array. En C, todos los arrays tienen el 0 como índice de su primerelemento. Por tanto, cuando se escribe se está declarando un array de caracteres que tiene un número n de elementos de 0 a n-1. La cantidad de memoria requerida para guardar un array está directamente relacionado con su tipo y su tamaño. Para un array unidimensional, el tamaño total en bytes se calcula con la siguiente expresión: Total de bytes = sizeof (tipo) * tamaño del array C no muestra loslímites de los arrays. Se puede pasar cualquier extremo de un array y escribir en alguna otra variable de datos o incluso en el código del programa. Como programador, es tarea suya proporcionar una comprobación de límites cuando sea necesaria. Los arrays unidimensionales son, en esencia, listas de información del mismo tipo que se guarda en posiciones contiguas de memoria según el orden delíndice. C nos permite inicializar matrices en el momento de su declaración y según el momento en el que se asigne el tamaño se clasifican en: Dinámicas: se definen en tiempo de compilación. Estáticas: se definen en tiempo de ejecución.

PROGRAMACIÓN EN C

60

Tema 5. Tipos estructurados de datos

Un ejemplo de matriz unidimensional es: Double balance [100]; Arrays bidimensionales. C admitearrays multidimensionales. La forma más simple de un array multidimensional es el array bidimensional. Un array bidimensional es esencialmente un array de arrays unidimensionales. Para declarar un array de enteros bidimensional de tamaño x, e y se escribiría: int enteros [x][y]; Los arrays bidimensionales se almacenan en filas y columnas, en las que el primer índice indica la fila y el segundo indicala columna. En el caso de un array bidimensional, la siguiente fórmula da el número de bytes en memoria necesario para guardarlo: Bytes tamaño del primer índice*tamaño del segundo índice*sizeof (tipo base) Arrays multidimensionales. C permite arrays de más de dos dimensiones. El límite exacto, si lo hay, viene determinado por el compilador. La forma general de declaración de un arraymultidimensional es: Tipo nombre [tamaño1][tamaño2][tamaño3]...[tamañoN] Los arrays de tres o más dimensiones no se utilizan a menudo por la cantidad de memoria que requieren para almacenarlos. Con los arrays multidimensionales el cálculo de cada índice le lleva a la computadora una significativa cantidad de tiempo. Esto significa que el acceso a un elemento en un array multidimensional dura más que el acceso aun elemento en un array unidimensional. Paso de arrays unidimensionales a funciones. En C no se puede pasar un array completo como argumento a una función. Sin embargo, se puede pasar a una función un puntero a un array, especificando el nombre del array sin índice. Si una función recibe un array unidimensional, se puede declarar el parámetro formal de tres formas: como un puntero, como un...
tracking img