Está en la página 1de 19

ARRAYS

LENGUAJES DE PROGRAMACIN
Ing. Csar Canelo Sotelo

ARRAYS
Un array es una coleccin de variables del mismo tipo que se denominan por un mismo nombre. En C todos los arrays constan de posiciones de memoria contiguas. A un elemento especfico del array se accede mediante un ndice. Los arrays pueden tener una o ms dimensiones.

ARRAYS UNIDIMENSIONALES
Son arreglos de una dimensin tambin denominados vectores o listas. La forma general de declaracin es: tipo_dato nombre_de _variable[tamao]; Al momento de declarar un array, se reserva un espacio de memoria para sus elementos.

ARRAYS UNIDIMENSIONALES
Para un array unidimensional, el tamao total de bytes que requiere, se calcula as: bytes totales = sizeof(tipo base)*nmero de elementos Todos los arrays unidimensionales tienen el 0 como ndice de su primer elemento. Por tanto, cuando se escribe: char a[6]; Se est declarando un array de caracteres que tiene 6 elementos, desde a [0] hasta a[5].

INICIALIZACION O ASIGNACION DE VALORES A UN VECTOR


Un vector se puede inicializar (asignarle valores) al momento de ser declarado. De ser as ya no es necesario indicar su tamao. La forma general es:
tipo_dato nombre_de_variable[]= {valor 1, valor 2, . . ., valor n};

Ejemplos: int vector[]={1,2,3,4,5,6,7,8}; char cadena[]=programador; char cadena[]={p,r,o,g,r,a,m,a,d,o,r}; Los elementos del array que no son inicializados automticamente tienen valor cero.

PROCESAMIENTO DE UN ARRAY En C no se permiten operaciones que impliquen arrays completos. As, si a y b son dos arrays similares (mismo tipo de datos, misma dimensin y mismo tamao), operaciones de asignacin, de comparacin, etc., deben realizarse elemento por elemento. Esto se hace normalmente dentro de un bucle donde cada paso del bucle se usa para procesar un elemento del array. El nmero de pasos del bucle ser igual al nmero de elementos del array.

PROCESAMIENTO DE UN ARRAY
/* Ejemplo. Programa que lee los elementos de un vector y luego los visualiza */ #include <stdio.h> #include <conio.h> main() { int vector[10]; int i; for(i=0; i<10; i++) /* Bucle que lee los elementos del array */ vector[i]=i; for(i=0; i<10; i++) /* Bucle que escribe los elementos del array */ printf(%d\n, vector[i]); getch(); }

PASO DE ARRAYS UNIDIMENSIONALES A FUNCIONES

Los arrays unidimensionales nicamente pueden ser enviados a una funcin por referencia. En la llamada a la funcin se pone el nombre del array sin ndice. Esto pasa la direccin del primer elemento del array a la funcin. No se puede pasar un array completo como argumento a una funcin, en su lugar se pasa un puntero.

PASO DE ARRAYS UNIDIMENSIONALES A FUNCIONES


/* Ejemplo. Paso de un array como argumento de una funcin */ #include <stdio.h> #include <conio.h> void visualizar(int[ ]); /* prototipo de funcin */ main( ) { int arreglo[10], i; printf("Generar un arreglo de 10 elementos numricos: \n"); for(i=0; i<10;i++) { printf("Elemento nro. %d: ", i+1); scanf("%d", &arreglo[i]); } visualizar( arreglo); } void visualizar( int arreglo[]) { int i; for (i=0; i<10; i++) printf("%d ", arreglo[i]); }

PASO DE ARRAYS UNIDIMENSIONALES A FUNCIONES

En este ejemplo se aprecia como se enva un array a una funcin por referencia. Tambin se podra haber declarado de otra forma con igual resultado:
Declaracin de prototipo: void visualizar(int *); Cabecera de la funcin : void visualizar(int *arreglo)

CADENAS
El uso ms comn de los arrays unidimensionales en C, es como una cadena de caracteres. C incluye algunas funciones potentes de manejo de cadenas. En C una cadena se define como un arrays de caracteres de cualquier longitud que termina en un carcter nulo. Un carcter nulo se especifica como \0 y es un cero. Por esta razn, para declarar arrays de caracteres es necesario que sean de un carcter ms que la cadena ms larga que pudiera contener.

CADENAS
As, para declarar un array cadena que contenga una cadena de 10 caracteres, se declarar: char cadena[11]; Esto dejar sitio para el carcter nulo del final de la cadena. En C una cadena de caracteres es una lista de caracteres encerrada entre doble comillas. As: Hola, buenos das No es necesario aadir explcitamente el carcter nulo al final de la cadena, el compilador de C lo hace automticamente (con la tecla enter).

FUNCIONES PARA EL MANEJO DE CADENAS

El lenguaje C soporta una gran variedad de funciones de manejo de cadenas. Algunas de las ms comunes son: strcpy(), strcat(), strlen() y strcmp(), que se usan respectivamente para copiar, concatenar, hallar longitud y comparar respectivamente. Estas funciones se encuentran en la librera <string.h>.

FUNCIONES PARA EL MANEJO DE CADENAS


Los prototipos de estas funciones son: strcpy(s1, s2) Esta funcin copia la cadena s2 en la cadena s1. Devuelve s1. strcat(s1, s2) Esta funcin concatena la cadena s2 en la cadena s1. Devuelve s1. strlen(s1) Esta funcin devuelve la longitud de la cadena s1. strcmp(s1, s2) Esta funcin compara las cadenas s1 y s2. Devuelve cero si las dos cadenas son iguales, mayor que cero si la cadena s1 es mayor que s2, y menor que cero si la cadena s1 es menor que s2. Todas las comparaciones se hacen alfabticamente.

FUNCIONES PARA EL MANEJO DE CADENAS

En la librera <stdio.h> se tiene otras funciones para la entrada y salida de cadenas: Funcin Significado puts: Escribe una cadena seguida de un retorno de carro. gets: Lee una cadena terminada en un retorno de carro (el cual se sustituye por \0). putchar: Escribe un nico carcter. getchar: Lee un nico carcter.

ARRAYS BIDIMENSIONALES
Son arreglos de dos dimensiones tambin denominados tablas o matrices. La forma general de declaracin es:
tipo_dato nombre_del _array[tamao de la 1ra dimensin] [tamao de la 2da dimensin];

Por tanto, para declarar el array tabla de enteros bidimensional de tamao 10, 20 se escribir: int tabla[10 ][20]; Para acceder al elemento que est en la 4ta. fila y 3ra columna del array tabla, se escribir: tabla[3][2];

ARRAYS BIDIMENSIONALES INICIALIZACIN


Un array de dos dimensiones en realidad es un array de arrays. Es decir, es un arrays unidimensional en donde cada elemento es otro array. Los arrays bidimensionales se pueden inicializar cuando se declaran. La inicializacin consta de una lista de constantes separadas por comas y encerradas entre llaves. Ejemplo: int tabla[2][3]= {51, 52, 53, 54 , 55, 56}; o bien: int tabla[2][3]= {{51, 52, 53},{54, 55, 56}} Ambas sentencias sirven para inicializar tabla[2][3]. Si se inicializa uno o ms elementos de un array, pero no a todos, C rellena el resto con ceros o valores nulos (\0).

PASO DE ARRAYS BIDIMENSIONALES A FUNCIONES


Cuando se utiliza un array bidimensional como argumento de una funcin, realmente slo se pasa un puntero al primer elemento. Sin embargo, la funcin que recibe un array bidimensional como parmetro tiene que definir al menos la segunda dimensin, ya que el compilador necesita saber la longitud de cada fila para indexar el array correctamente. Por ejemplo, una funcin recibe un array de enteros bidimensional 5,10 se declara as: funcion( int tabla[ ][10]) { ... } Se puede especificar la primera dimensin tambin, pero no es necesario. Si la longitud de las filas est sin definir, entonces sera imposible saber dnde empieza la siguiente fila.

GRACIAS

También podría gustarte