11.9.14

Arrays

Cuando necesitamos asignar un lugar en donde colocar datos, una de las maneras mas simples y fáciles es almacenarlas en la memoria RAM, y si los datos que almacenamos son contantes al momento de la compilación podemos almacenarlos en la memoria ROM.

Acceso aleatorio significa que podemos leer o escribir cualquier elemento en cualquier orden, el acceso aleatorio esta permitido para todas las estructuras de datos indexables. Una estructura de datos indexable contiene elementos del mismo tamaño y puede ser accesada mediante el nombre de la estructura, el tamaño del elemento y el número de elemento.

Un array esta hecho de elementos de igual tamaño y permite acceso aleatorio, el largo del array es el número de elementos, el origen esta indexado al primer elemento, por ejemplo Dato[0] es el primer elemento del array Dato.

Al igual que cualquier variable, un array tiene que ser declarado antes de accesarlo, el número de elementos en el array es determinado cuando se declara. Arrays multidimensionales requieren ser declarados con varios brackets '[ ]'.

short Dato[4];        //Array de 4 espacios para enteros de 16 bits
char Imagen[3][4];    //Array de 3*4 = 12 espacios para enteros de 8 bits
int Puntos[2][4][3];  //Array de 2*4*3 = 24 espacios

Si queremos inicar los arrays con valores diferentes de cero entonces colocamos los datos de la siguiente manera:

short Dato[4] = {1, 2, 3, 4};
char Imagen[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int Puntos[2][4][6] = {
{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12}}, 
{{13, 14, 15}, {16, 17, 18}, {19, 20, 21}, {22, 23, 24}}
};

Para modificar los valores del array:

Dato[2] = 10;         //El array queda {1, 2, 10, 4}

Para obtener datos del array:

Variable = Dato[3]    //Variable ahora tiene el valor 4

Para colocar arrays con valores contantes invariables, colocamos const al inicio de la declaración, de esta forma nuestro array sera colocado en la ROM.

const short Dato[4] = {1, 2, 3, 4};

En el uso de funciones también podemos usar arrays, por ejemplo hallemos el valor máximo de un conjunto de datos almacenados en el array class.

long Maximo(long class[], long tamaño){
        long largo,i;
        largo = 0;
        for(i=0; i<tamaño; i++){
            if(class[i] > largo){
            largo = class[i];         // Nuevo máximo
            }
       }
       return (largo);
}

0 comments:

Post a Comment