Reference   Language (extended) | Libraries | Comparison | Changes

Arrays

Una matriz o "array" es una colección de variables que son accedidas mediante un número de índice. Los "arrays" en el lenguaje de programación C, en el cual está basado Arduino, pueden ser complicadas, pero usar "arrays" simples es relativamente sencillo.

Creando (Declarando) una matriz o Array

Todos los métodos de abajo son formas válidas de crear (declarar) una matriz.

  int myInts[6];
  int myPins[] = {2, 4, 8, 3, 6};
  int mySensVals[6] = {2, 4, -8, 3, 2};
  char message[6] = "hola";

Puedes declarar una matriz sin inicializarla como en myInts.

En myPins se declara una matriz sin establecer un tamaño explícito. El compilador cuenta el número de elementos y crea la matriz con el tamaño apropiado.

Finalmente, puedes tanto declarar con un tamaño la matriz e inicializarla al mismo tiempo, como en mySensVals

Accediendo a una matriz o Array

Los Arrays son zero indexed, esto significa que, al referirse a una matriz, el primer elemento de la matriz está en el indice 0. Por lo tanto:

mySensVals[0] == 2, mySensVals[1] == 4, y sucesivos.

Esto también significa que en una matriz con 10 elementos. el indice 9 es el último elemento. Por lo tanto:

int myArray[10]={9,3,2,4,3,2,7,8,9,11};
     // myArray[9]    contiene 11
     // myArray[10]   es invalido y contiene información aleatoria (de otra dirección de memoria)      

Por esta razón hay que tener cuidado en el acceso a las matrices. El acceso más allá del final de una matriz (usando un número de índice mayor que el tamaño declarado - 1) resultará la lectura de la memoria que está en uso para otros fines. La lectura de estos lugares probablemente no va a hacer mucho mal, excepto la lectura de datos no válidos. Escribir en las localidades de memoria aleatoria es definitivamente una mala idea y, a menudo puede conducir a resultados inesperados como fallos o mal funcionamiento del programa. Esto también puede ser un error difícil encontrar.

A diferencia de BASIC o JAVA, el compilador de C no realiza ninguna comprobación para ver si el acceso a una matriz está dentro de los límites del tamaño de la matriz que ha declarado.

Para asignar un valor a una matriz:

mySensVals[0] = 10;

To retrieve a value from an array:

x = mySensVals[4];

Matrices y los bucles FOR

Arrays are often manipulated inside for loops, where the loop counter is used as the index for each array element. For example, to print the elements of an array over the serial port, you could do something like this: Las matrices se utilizan muchas veces en el interior de bucles for, donde el contador de bucle se utiliza como el índice de cada elemento de la matriz. Por ejemplo, para imprimir los elementos de una matriz a través del puerto serie, se podría hacer algo como esto:

int i;
for (i = 0; i < 5; i = i + 1) {
  Serial.println(myPins[i]);
}

Ejemplo

Para ver un programa completo que demuestra el uso de los arrays o matrices, mira Knight Rider example desde Tutoriales.

Ver tambien

Página principal Referencia

Correcciones, sugerencias, y nueva documentación deberán ser publicadas en el Foro (castellano) o en el Foro (inglés).

El texto de la referencia de Arduino está publicado bajo la licencia Creative Commons Reconocimiento-Compartir bajo la misma licencia 3.0. Los ejemplos de código de la referencia están liberados al dominio público.

Share