Arreglos y Matrices en C++
Gu�a interactiva para comprender c�mo almacenar, acceder y manipular colecciones de datos de manera eficiente.
Elaborado por el Profesor Rogel Avila
1. Fundamentos de C++
Antes de sumergirnos en estructuras, revisemos los pilares b�sicos de la programaci�n en C++.
�Qu� es C++?
C++ es un lenguaje de programaci�n de prop�sito general, considerado una extensi�n del lenguaje C. Es conocido por ser potente, eficiente y permitir la Programaci�n Orientada a Objetos (POO). Es la elecci�n principal para sistemas operativos, videojuegos de alta gama, software de alto rendimiento y sistemas embebidos.
Estructura B�sica de un Programa
#include <iostream>
int main() {
std::cout << "�Hola Mundo!" << std::endl;
return 0;
}
#include <iostream>: Directiva que permite usar funciones de entrada/salida (comocout).int main(): La funci�n principal. Todo programa C++ comienza su ejecuci�n aqu�.return 0;: Indica que el programa finaliz� exitosamente (cero errores).
Variables (Cambian)
Son espacios de memoria que almacenan datos y pueden cambiar su valor durante la ejecuci�n del programa.
int edad = 30; // Declaraci�n y asignaci�n
edad = 31; // El valor cambia en tiempo de ejecuci�n
float precio = 19.99;
Constantes (No Cambian)
Son datos cuyo valor no se puede modificar una vez inicializado. Se usan para valores fijos como $\pi$ o l�mites.
const float PI = 3.14159;
// PI = 3.0; // ERROR de compilaci�n
#define MAX_SIZE 100 // Constante de preprocesador
2. �Por qu� necesitamos Arreglos?
Imagina que necesitas guardar las calificaciones de 50 estudiantes. �C�mo lo har�as?
? Forma Incorrecta (Variables Individuales)
Dif�cil de escribir, imposible de mantener y no escalable.
int calificacion2 = 90;
int calificacion3 = 78;
int calificacion4 = 88;
int calificacion5 = 92;
// ... imagina escribir esto 45 veces m�s ...
int calificacion50 = 70;
? Forma Correcta (Arreglo)
Limpio, escalable y eficiente en memoria.
Conceptos Clave:
- Homog�neo: Todos los datos son del mismo tipo (ej. todos
int). - Tama�o Fijo: Se define al crear y no cambia (est�tico).
- Contiguo: Se guardan uno al lado del otro en la memoria RAM.
3. Arreglos Unidimensionales (1D)
Un arreglo es una lista. La clave es el �ndice, que en C++ comienza siempre en 0.
??? Laboratorio de Arreglos
int datos[] = { 10, 25, 5, 40, 15 };
// Acceso actual:
cout << datos[0]; // Imprime: 10
Representaci�n en Memoria
Haz clic en una caja para seleccionarla (simular acceso).
Simulaci�n de Bucle (Iteraci�n)
for(int i=0; i < size; i++) { ... }
Visualizaci�n de Valores
4. Matrices (2D)
Una matriz es un "arreglo de arreglos". Pi�nsalo como una tabla con Filas y Columnas.
?? Constructor de Matrices
Haz clic en una celda para incrementar su valor (+1).
// Declaraci�n
int matriz[3][4];
// Acceso activo:
matriz[0][0] = 0;
Simulaci�n de Bucles Anidados
Observa c�mo j (columnas) cambia m�s r�pido que i (filas).
Arreglos en Funciones
Al pasar un arreglo a una funci�n, realmente pasas la direcci�n de memoria (puntero) del primer elemento. No se copia todo el arreglo (eficiente).
void sumarMatriz(int m[][3], int f, int c);
�Ojo! En matrices, debes especificar el n�mero de columnas.
El Futuro: std::vector
Los arreglos est�ticos son limitados. En C++ moderno, usamos std::vector para arreglos que pueden crecer.
- ? Tama�o din�mico (`push_back`)
- ? M�s seguro (conoce su propio tama�o)
- ? F�cil de usar con librer�a est�ndar
std::vector<int> lista = {1, 2};