Lección 2

Variables y entrada

Respuesta corta: una variable es una caja con nombre en memoria que guarda un valor de un tipo. Declárala (int edad;), dale un valor (edad = 20;) y desde entonces el nombre es ese valor.

Cuatro tipos cubren casi todo el código principiante

TipoGuardaEjemplo
intenterosint nota = 95;
doubledecimalesdouble precio = 19.99;
charun carácter, comillas simpleschar letra = 'A';
boolverdadero o falsobool aprobado = true;

El tipo decide cuántos bytes ocupa la caja y cómo se leen sus bits. Por eso 'A' y "A" difieren: comillas simples crean un char, dobles un literal de cadena (la versión larga).

Declarar, asignar, imprimir

#include <iostream>
using namespace std;

int main() {
    int nota = 95;
    double precio = 19.99;
    char letra = 'A';
    bool aprobado = true;

    cout << "nota:     " << nota << endl;
    cout << "precio:   " << precio << endl;
    cout << "letra:    " << letra << endl;
    cout << "aprobado: " << aprobado << endl;   // los bool salen como 1 / 0
    return 0;
}

Esa última línea es la primera sorpresa: un bool se imprime como 1 o 0, no como true/false. Es cómo cout trata los booleanos por defecto.

Leer entrada con cin

cin >> nombre lee un valor del teclado. La flecha apunta hacia la variable — buena forma de recordar la dirección:

#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a;
    cin >> b;
    cout << "suma = " << a + b << endl;
    return 0;
}

Cambia los números de la caja de entrada: el programa no es una calculadora, son cuatro líneas de aritmética que corren en un navegador.

División entera, otra vez

La sorpresa numérica más común: int / int es int y tira la fracción.

#include <iostream>
using namespace std;

int main() {
    int a = 7, b = 2;
    cout << a / b << endl;             // 3 — se descarta la fracción
    cout << (double)a / b << endl;     // 3.5 — un lado es double
    return 0;
}

Con negativos y %: por qué 7 / 2 es 3.

Errores de esta semana

Practica esta lección

Estos problemas ejercitan exactamente lo que acabas de leer: