InPro Cursos

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 (como cout).
  • 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 calificacion1 = 85;
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.

int calificaciones[50];

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

C++ Code

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)

Esperando...

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).

Listo para iniciar...
??

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 imprimir(int arr[], int size);
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
#include <vector>
std::vector<int> lista = {1, 2};