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
| Tipo | Guarda | Ejemplo |
|---|---|---|
int | enteros | int nota = 95; |
double | decimales | double precio = 19.99; |
char | un carácter, comillas simples | char letra = 'A'; |
bool | verdadero o falso | bool 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
- Usar antes de declarar. C++ lee de arriba abajo; usar
xantes deint x;es error de compilación, no cero. - Sin inicializar.
int suma; suma += 5;suma 5 a lo que hubiera en memoria. Escribe siempreint suma = 0;. - Desbordamiento.
intse detiene en ~2.100 millones;20!no cabe. El problema del factorial te hace chocar a propósito. - Comillas dobles para un char.
char c = "A";falla; escribe'A'.
Practica esta lección
Estos problemas ejercitan exactamente lo que acabas de leer: