92. Recorriendo un arreglo bidimensional - Implementación de algoritmo

 

 Introducción

En este tutorial aprenderemos a trabajar con arreglos bidimensionales en Arduino, incluyendo cómo recorrerlos, inicializarlos y realizar operaciones con sus elementos.

🎯 Objetivos de Aprendizaje

  • Crear y inicializar arreglos bidimensionales

  • Recorrer arreglos usando ciclos anidados

  • Realizar operaciones con elementos del arreglo

  • Entender las mejores prácticas para arreglos multidimensionales

🔧 Implementación Paso a Paso

1. Estructura Básica del Código

cpp
// Definir constantes para filas y columnas
const int FILAS = 2;
const int COLUMNAS = 2;

// Declarar el arreglo bidimensional
int miArreglo[FILAS][COLUMNAS];

2. Inicialización del Arreglo Bidimensional

Método 1: Asignación individual

cpp
miArreglo[0][0] = 32;
miArreglo[0][1] = 51;
miArreglo[1][0] = 200;
miArreglo[1][1] = 22;

Método 2: Inicialización directa (Recomendado)

cpp
int miArreglo[FILAS][COLUMNAS] = {
  {32, 51},    // Fila 0
  {200, 22}    // Fila 1
};

3. Recorrido del Arreglo con Ciclos Anidados

cpp
void setup() {
  Serial.begin(9600);
  
  // Recorrer el arreglo bidimensional
  for (int i = 0; i < FILAS; i++) {
    for (int j = 0; j < COLUMNAS; j++) {
      // Acceder a cada elemento
      Serial.print("miArreglo[");
      Serial.print(i);
      Serial.print("][");
      Serial.print(j);
      Serial.print("] = ");
      Serial.println(miArreglo[i][j]);
    }
  }
}

void loop() {
  // Código principal
}

4. Código Completo Funcional

cpp
// Definir constantes para las dimensiones
const int FILAS = 2;
const int COLUMNAS = 2;

// Inicializar el arreglo bidimensional
int miArreglo[FILAS][COLUMNAS] = {
  {32, 51},   // Primera fila (índice 0)
  {200, 22}   // Segunda fila (índice 1)
};

void setup() {
  Serial.begin(9600);
  Serial.println("Recorrido del arreglo bidimensional:");
  Serial.println("====================================");
  
  // Recorrer todas las celdas del arreglo
  for (int i = 0; i < FILAS; i++) {
    for (int j = 0; j < COLUMNAS; j++) {
      Serial.print("Elemento [");
      Serial.print(i);
      Serial.print("][");
      Serial.print(j);
      Serial.print("]: ");
      Serial.println(miArreglo[i][j]);
    }
  }
}

void loop() {
  // El código se ejecuta una vez en setup
}

⚠️ Consideraciones Importantes

1. Uso de Constantes

PROBLEMA: Si usas variables normales para dimensiones, Arduino mostrará errores:

cpp
// ❌ INCORRECTO - Causará error
int filas = 2;
int columnas = 2;
int miArreglo[filas][columnas] = {{32, 51}, {200, 22}};

SOLUCIÓN: Usa constantes:

cpp
// ✅ CORRECTO
const int FILAS = 2;
const int COLUMNAS = 2;
int miArreglo[FILAS][COLUMNAS] = {{32, 51}, {200, 22}};

2. Especificación de Dimensiones

Regla importante: En arreglos multidimensionales, debes especificar al menos todas las dimensiones excepto la primera:

cpp
// ✅ VÁLIDO - Primera dimensión vacía
int miArreglo[][2] = {{32, 51}, {200, 22}};

// ❌ INVÁLIDO - Segunda dimensión vacía
int miArreglo[2][] = {{32, 51}, {200, 22}};

🛠️ Ejemplo Avanzado: Suma de Elementos

cpp
const int FILAS = 2;
const int COLUMNAS = 2;

int miArreglo[FILAS][COLUMNAS] = {
  {32, 51},
  {200, 22}
};

void setup() {
  Serial.begin(9600);
  
  int sumaTotal = 0;
  
  // Recorrer y sumar todos los elementos
  for (int i = 0; i < FILAS; i++) {
    for (int j = 0; j < COLUMNAS; j++) {
      sumaTotal += miArreglo[i][j];
      
      Serial.print("+ ");
      Serial.print(miArreglo[i][j]);
      Serial.print(" ");
    }
    Serial.println();
  }
  
  Serial.print("Suma total: ");
  Serial.println(sumaTotal);
}

void loop() {
  // Empty
}

📊 Salida Esperada

text
Recorrido del arreglo bidimensional:
====================================
Elemento [0][0]: 32
Elemento [0][1]: 51
Elemento [1][0]: 200
Elemento [1][1]: 22

+ 32 + 51 
+ 200 + 22 
Suma total: 305

💡 Consejos Adicionales

  1. Organización visual: Formatea el código para mejor legibilidad

  2. Nomenclatura: Usa mayúsculas para constantes

  3. Documentación: Comenta tu código para claridad

  4. Pruebas: Verifica siempre el funcionamiento con el Monitor Serie

🎓 Conclusión

Has aprendido exitosamente a:

  • Crear e inicializar arreglos bidimensionales

  • Recorrerlos usando ciclos for anidados

  • Evitar errores comunes con constantes

  • Aplicar mejores prácticas para código limpio y eficiente

Comentarios

Entradas más populares de este blog

12. Demostracion de como usar Tinkercad para simular Arduino con circuitos

11. Ejemplos Básicos de Leds y Pulsadores

Lectura de Potenciómetro con Arduino Uno en Tinkercad