C++

Fundamentos de la Programación

Operadores

Operadores Aritméticos

Se usan para realizar operaciones matemáticas básicas. Incluyen + (suma), - (resta), * (multiplicación), / (división), % (módulo: devuelve el residuo de una división).

Operadores de Comparación

Comparan dos valores y devuelven un valor booleano (true o false). Incluyen == (igual a), != (diferente de), > (mayor que), < (menor que), >= (mayor o igual que), y <= (menor o igual que).

Operadores Lógicos

Se usan para combinar condiciones. Incluyen && (y lógico), || (o lógico), y ! (no lógico).




Variables y Tipos de Datos

Se utilizan para almacenar datos que pueden ser usados y manipulados en un programa.


Tipos de datos fundamentales:

Declaración de variables:
int edad = 25;
double precio = 99.99;
char inicial = 'J';
bool esActivo = true;



Estructuras de Datos

Arreglos (Arrays)

Son colecciones de elementos del mismo tipo. Se declaran usando corchetes [] y tienen un tamaño fijo.


Declaración y uso:
int numeros[5] = {1, 2, 3, 4, 5};
double temperaturas[3] = {36.5, 37.0, 38.2};

Strings

Para manejar texto, C++ usa la biblioteca <string>.

#include <string>
using namespace std;

string nombre = "Juan";
string saludo = "Hola, " + nombre;



Control de Flujo

Condicionales

Estructura if, else if, else: Permiten ejecutar código basado en ciertas condiciones.


Ejemplo básico:
int calificacion = 85;

if (calificacion >= 90) {
    cout << "Excelente" << endl;
} else if (calificacion >= 70) {
    cout << "Aprobado" << endl;
} else {
    cout << "Reprobado" << endl;
}



Bucles

Ciclo while

Un bucle while repite un bloque de código mientras una condición sea verdadera.

int contador = 1;
while (contador <= 5) {
    cout << contador << endl;
    contador++;
}

Ciclo for

Un bucle for se utiliza para iterar un número determinado de veces.

for (int i = 0; i < 5; i++) {
    cout << "Iteración: " << i << endl;
}

Ciclo do-while

Similar a while, pero garantiza que el código se ejecute al menos una vez.

int numero;
do {
    cout << "Ingrese un número positivo: ";
    cin >> numero;
} while (numero <= 0);



Funciones

Son bloques de código reutilizables que realizan una tarea específica. Se definen con un tipo de retorno, nombre y parámetros.


Función simple:
void saludar(string nombre) {
    cout << "Hola, " << nombre << "!" << endl;
}

saludar("Ana");

Función con valor de retorno:
int suma(int a, int b) {
    return a + b;
}

int resultado = suma(3, 5);
cout << "Resultado: " << resultado << endl;

Función con múltiples parámetros:
double calcularPromedio(double a, double b, double c) {
    return (a + b + c) / 3.0;
}

double promedio = calcularPromedio(8.5, 9.0, 7.5);



Estructuras de Control Avanzadas

Switch-case

Útil para tomar decisiones basadas en el valor de una variable entera o caracter.

int dia = 3;
switch (dia) {
    case 1:
        cout << "Lunes" << endl;
        break;
    case 2:
        cout << "Martes" << endl;
        break;
    case 3:
        cout << "Miércoles" << endl;
        break;
    default:
        cout << "Otro día" << endl;
}



Entrada y Salida

Biblioteca iostream

C++ usa <iostream> para manejar la entrada y salida estándar.

#include <iostream>
using namespace std;

int main() {
    string nombre;
    int edad;
    
    cout << "Ingrese su nombre: ";
    cin >> nombre;
    
    cout << "Ingrese su edad: ";
    cin >> edad;
    
    cout << "Hola " << nombre << ", tienes " << edad << " años." << endl;
    
    return 0;
}



Punteros (Introducción)

Los punteros son variables que almacenan direcciones de memoria.


Declaración y uso básico:
int numero = 42;
int* puntero = &numero;  // & obtiene la dirección

cout << "Valor: " << *puntero << endl;  // * accede al valor
cout << "Dirección: " << puntero << endl;



Compilación y Ejecución

Compilar con g++:

g++ programa.cpp -o programa
./programa



Próximos Pasos