ARRAYS

 

ARRAYS UNIDIMENSIONALES

 

Este tipo de instrucciones se utilizan para informar al procesador del espacio que debe reservar en memoria para almacenar un dato simple o estructurado que se denominan o se referencian por un mismo nombre, donde la dirección de memoria más baja corresponde al primer elemento y la dirección dememoria más alta corresponde al último elemento o componente del array.

 

El formato general de un array unidimensional es el siguiente:

 

Tipo_básico Nombredelarray[tamaño];

 

a)      Tipo_básico

 

Indica el dato del array o vector, que será común a todos los elementos que lo forman. Para ello utilizaremos los tipo básicos proporcionados por el lenguaje de programación y que en este caso son char, int, float y double.

 

b) Nombre_del_array

 

Es un identificador que deberá adaptarse a ciertas reglas establecidas por el lenguaje de programación.

1-     Puede estar formado por letras, dígitos y el carácter subrayado.

2-       El primer carácter, debe ser una letra o el carácter subrayado, nunca un dígito.

 

b)      Tamaño

Indica la longitud o el número de elementos del array.

 

 

ACCESO A LOS DATOS

 

Nombre_del_array[indice];

 

Los índices, ya sea en arrays unidimensionales, arrays bidimensionales o multidimensionales, pueden ser:

 

1- Variables de tipo entero                            Letras[i];

2- Constante numérica de tipo entero           Letras[5];

3- Expreesión cuyo resultado sea un entero Letras[i+4];

 

CARGA DE DATOS

 

La carga de datos la podemos realizar de dos formas diferentes:

 

 

 

 

a)      Inicialización:

 

Básico Nombre[Tam.Dim1][tam.Dim2]...={Lista de valores};

 

Int vector[5]={1,2,3,45,23};

Float num[4]={3.21, 2.3,7. 44, 6.009};

 

b)      Asignación

 

Esta operación consiste en asignar de manera individual a cada elemento del array un valor.

 

Int vector[4];

 

vector[0]=32;

                        vector[1]=-7;

                        vector[2]=1000;

                        vector[3]=23;

 

ARRAYS BIDIMENSIONALES

 

El formato para la definición de un array bidimensional es el siguiente:

Tipo_básico Nombre_del_array[tamaño dim1][tamaño dim2];

 

ACCESO A LOS DATOS

 

El acceso a cada elemento se realiza a través de dos índices.

 

Nombre_del_array [indice1][indice2];

 

CARGA DE DATOS

 

La carga de datos la podemos realizar de las dos siguientes formas.:

 

a)      Iniciación:

 

            Int matriz[2][3]={    64,       65,

                                               10,       23,

                                               23,       22};

            Int matriz[2][3]={64, 65, 10, 23, 23, 22};

 

b)      Asignación:

 

Int vector[2][3];

 


Matriz[0][=64;

Matriz[0][1]=65;

Matriz[0][2]=10;

Matriz[1][0]=23;

Matriz[1][1]=23

Matriz[1][2]=22;


 

                                              

 

ARRAYS MULTIDIMENSIONALES

 

Tipo_basico Nombredel array [tamaño dim1][tam dim2][tam dim3]...;

 

Nombre_del_array[tam dim1][tam dim2][tam dim 3]...;

 

 

ARRAY DE CARACTERES

 

Las cadenas son arrays unidimensionales de tipo carácter (char) que requieren un tratamiento especial frente a los arrays unidimensionales con otros tipos de datos (int, float o double).

En C las cadenas se caracterizan por estar delimitadas por dobles comillas para determinar el inicio y el final de la misma. Estas cadenas pueden estar construidas por uno o más caractere. En el siguiente ejemplo, la primera y la segunda A son aparentemente iguales, aunque requieren tratamientos diferentes, ya que la primera es considerada una cadena de caracteres y la segunda un caracter simple o individual.

 

“A”      A \ 0    Cadena de caracteres

A         A         Carácter individual

 

 

DEFINICIÓN

 

El formato para la definición de un array de caracteres es el siguiente:

 

Char Nombre_cadena[Tamaño+1];

 

Toda cadena de caracteres debe finalizar con el carácter nulo, lo que nos indica que para una cadena de longitud ‘N’, sólo podemos utilizar los N-1 primeros elementos.

Esto nos obliga a crear un array cuya longitud deberá ser superior en uno al número de carateres que comprende la tira.

 

Char letras[6]=”abcde”

 

ACCESO A LOS DATOS

 

La forma de acceder o referenciar un elemento de un array de caracteres es la misma que para arrays unidimensionales.

Otra característica de los arrays de tipo carácter es que el nombre del array es un puntero que siempre apunta por defecto al primer elemento o componente del array, donde Nombre_cadena o &Nombre_cadena[0]  nos proporcionana la dirección de memoria del primer elemento o componente de la tira de caracteres.

 

Char cadena[15]=”querido amigo:”;

 

A)    Inicialización

 

El formato para la inicialización de un array de caracteres es el siguiente:

 

Char Nombre_cadena[tamaño]=”cadena”;

 

Char nombre[10] = ”Juan”;

Char saludo[12] = ”Buenos Dias”;

 

Char nombre_cadena={‘car1’, ‘car2’, ‘car3’,...};

 

Char saludo[5] = { ‘h’,’o’,’l’,’a’};

 

Siempre es conveniente inicializar la cadena antes de utilizarla y limpiarla antes de volverla a utilizar.

 

Nombre_cadena[0] = ”\0”;

*Nombre_cadena = ‘\0’;

 

b )Asignación.

Consiste en asignar de manera individual cada elemento del array aun caracter determinado.

 

Char vocales[6];

 

Vocales[0] = ’a’;

Vocales[1] = ‘e’;

Vocales[2] = ‘i’;

Vocales[3] = ’o’;

Vocales[4] = ‘u’;

Vocales[5] =’\0’;

 

FUNCIONES DE ENTRADA/SALIDA PARA EL TRATAMIENTO DE ARRAYS DE CARACTERES

 

Char *gets(char *cadena):

Los caracteres leidos son almacenadoss en el array ‘cadena’ o en la direción de memoria apuntada por ‘cadena’. Se leen todos aquellos caracteres que se encuentran antes del carácter de nueva línea o de final de fichero. Se leen aquellos caracteres que se encuentran antes del carácter de nueva línea o de final de fichero. El carácter retorno de carro, no formará parte integrante de la ‘cadena’. La función gets() no tiene límite de lectura consecutiva de caracteres.

           

            In puts(const char *cadena);

El carácter nulo que marca el final de la cadena de caracteres es convertido al carácter de nueva línea. La función puts() sólo puede imprimir cadenas de caracteres, lo que la hace más limitada que la función printf(), pero de más rápida ejecución.

Si se ejecuta correctamente, devuelve el último carácter escrito en el dispositivo estandard de salida, siendo siempre en este caso un carácter de salto de línea, en caso contrario devuelve EOF.

 

 

 

ARRAYS INDETERMINADOS

 

Son arrays que se caracterizan porque pueden ser definidos e inicializados al mismo tiempo sin necesidad de especificar su tamaño, puex ‘C’ calcula automáticamente las dimensiones del array definido.

 

            Tipo_básico Nombre_array[] = “Lista de valores”;

 

a)      char cadena[17] = “Acceso denegado.”;

b)      char cadena[] = “Acceso denegado.”;

 

Para conocer la longitud de la cadena en un momento determinado de la ejecución del programa, es necesario emplear el operador sizeof().

 

Printf ( “ ’ %s ’ , tiene %d caracteres \n”, cadena, sizeof ( cadena));

 

 También es posible la utilización de arrays indeterminados con arrays de dos o más dimensiones.

Tipo_básico Nombre_del array [][tam. Dim2][tam. Dim3] = lista de valores;