C++ Variables y lectura del teclado (cin)

Enviado por jvilella el Lun, 23/09/2019 - 03:02

Requisitos:

No todo lo que hacemos con nuestro programa se muestra por pantalla, por lo que necesitamos un espacio para nuestro trabajo “interno”. A este espacio le llamamos “variables”. Podemos entender una variable como una cajita donde guardamos un valor. Veamos un ejemplo:

#include <iostream>
using namespace std;
int main() {
    int numero_de_continentes; //cuarta línea
    numero_de_continentes = 5; //quinta línea
    cout << "Numero de continentes en la Tierra: ";
    cout << numero_de_continentes; //séptima línea
}

En este ejemplo hemos creado una variable a la que hemos llamado “numero_de_continentes”. Existen distintos tipos de variables en función del tipo de valor que van a almacenar. En este caso vamos a almacenar un número (el número de continentes que tiene nuestro planeta) por lo que es de tipo “int” (del inglés “integer” que significa “número entero”). Una variable puede cambiar de valor tantas veces como queramos pero no puede cambiar de tipo, por lo que en esta variable, numero_de_continentes, solo vamos a poder almacenar números.

Así vemos en la cuarta línea que para crear una variable debemos escribir su tipo seguido del nombre que queremos dar a esta variable. A esto lo llamamos “declarar” una variable. Es importante dar a las variables nombres claros que identifiquen para qué las vamos a usar, y todavía más importante recordar que los nombres de las variables solo pueden tener letras, números (aunque no en la primera posición) y el carácter “_” ¡En ningún caso el nombre de una variable puede contener espacios!

A continuación en la quinta línea le hemos dado un valor a la variable. Podemos darle cualquier valor, siempre que sea del tipo del que hemos declarado la variable (en este caso un número entero). Para asignarle un valor ponemos el nombre de la variable a la izquierda seguido de = y a la derecha el valor que queremos darle.

Finalmente en la séptima línea mostramos por pantalla un texto indicando cuántos continentes tiene nuestro planeta. ¡Fíjate qué sencillo es mostrar el contenido de una variable!

Pero, vaya, hace poco descubrieron un nuevo continente, Zelandia. Así que vamos a hacer una operación con la variable numero_de_continentes para reflejar este cambio:

#include <iostream>
using namespace std;
int main() {
    int numero_de_continentes;
    numero_de_continentes = 5 + 1; //quinta línea
    cout << "Numero de continentes en la Tierra: ";
    cout << numero_de_continentes;
}

Fíjate en la quinta línea ¡Qué maravilla! ¡Puedo realizar operaciones y asignar el resultado a una variable! (por supuesto también podría haber escrito directamente ( numero_de_continentes = 6; ).

Pero la principal ventaja de una variable es poder cambiar su valor, así que veámoslo usando el mismo ejemplo:

#include <iostream>
using namespace std;
int main() {
    int numero_de_continentes;
    numero_de_continentes = 5;
    numero_de_continentes = numero_de_continentes + 1;
    cout << "Numero de continentes en la Tierra: ";
    cout << numero_de_continentes;
}

Hemos añadido una línea. ¿Qué hace? Pues la variable numero_de_continentes, que tenía el valor 5 pasa a tener el valor… numero_de_continentes + 1 ¿Y eso qué es? Muy sencillo: es el valor que tiene numero_de_continentes más 1. Es decir, 5 + 1, es decir, 6. A partir de esa línea numero_de_continentes ya no tiene el valor 5 sino el valor 6, por tanto lo que dirá por pantalla es que la Tierra tiene 6 continentes.

Ahora vamos a simplificar este código un poco:

#include <iostream>
using namespace std;
int main() {
    int numero_de_continentes = 5 + 1; // o podemos poner 6 directamente (cuarta línea)
    cout << "Numero de continentes en la Tierra: " << numero_de_continentes; //quinta línea
}

Vemos en la cuarta línea que en la misma instrucción en la que declaramos una variable podemos asignarle un valor. Y vemos en la quinta línea que también podemos enviar a la pantalla variables sin necesidad de usar una instrucción específica para ello, sino “reutilizar” otro cout para que el código se parezca más a lo que se verá en la pantalla.

Pero también hay quien cuenta América del norte y América del sur como dos continentes distintos. Y también podemos contar la Antártida como otro continente. Entonces ¿Cuántos continentes debemos decir que hay? Lo mejor es que le preguntemos al usuario:

#include <iostream>
using namespace std;
int main() {
    int numero_de_continentes_fijos = 5;
    cout << “La Tierra tiene un minimo de “ << numero_de_continentes_fijos << “ continentes. Dime cuanto continentes mas consideras tu que tiene la Tierra: “; //quinta línea
    int numero_de_continentes_adicionales; //sexta línea
    cin >> numero_de_continentes_adicionales;
    int numero_de_continentes = numero_de_continentes_fijos + numero_de_continentes_adicionales; //octava línea
    cout << "Numero de continentes en la Tierra: " << numero_de_continentes;
}

Analicemos la línea “cin >> numero_de_continentes_adicionales;”. cin representa al teclado. El programa se irá ejecutando instrucción tras instrucción y al llegar a una instrucción cin se parará a esperar a que el usuario introduzca un valor en el teclado y presione la tecla INTRO del teclado. Acostumbramos a llamar "entrada" a lo que introduce el usuario por el teclado. ¿Y ese valor introducido por el usuario a dónde va a parar? A la derecha de cin se pone >> y a su derecha el nombre de la variable donde se guardará el valor introducido por el usuario, en este caso numero_de_continentes_adicionales.

En el ejemplo anterior hay algunas cosas más a destacar. Por ejemplo en la quinta línea puedes ver cómo enviar un texto algo más complejo a la pantalla, y en la octava línea verás que la variable numero_de_continentes guarda el resultado de sumar otras dos variables: numero_de_continentes_fijos y numero_de_continentes_adicionales.

Ahora queremos decir uno de los continentes para demostrar que sabemos de lo que hablamos. Bueno, le vamos a pedir al usuario que nos diga uno…

#include <iostream>
using namespace std;
int main() {
    int numero_de_continentes_fijos = 5;
    cout << “La Tierra tiene un minimo de “ << numero_de_continentes_fijos << “ continentes. Dime cuanto continentes mas consideras tu que tiene la Tierra: “;
    int numero_de_continentes_adicionales;
    cin >> numero_de_continentes_adicionales;
    int numero_de_continentes = numero_de_continentes_fijos + numero_de_continentes_adicionales;
    cout << “Dime el nombre de un continente: “;
    string nombre_continente; //décima línea
    cin >> nombre_continente;
    cout << "En la Tierra hay " << numero_de_continentes << " continentes y uno de ellos es " << nombre_continente;
}

Fíjate en la décima línea que la variable nombre_continente no es de tipo int, sino de tipo string. Las variables de tipo string almacenan texto. Y como ves son tan fáciles de usar como las de tipo int, o incluso más fáciles porque no podemos realizar ninguna operación con ellas (no puedes sumar una palabra, ni restarla, ni multiplicarla, …).

Hay dos cosas a destacar de una variable de tipo string:

La primera es que cuando le asignamos un valor literal (un valor escrito directamente en el código) debemos escribirlo entre comillas dobles. Han de ser comillas dobles y no comillas simples. Tal como hacemos con el resto de textos en nuestros códigos C++ (por ejemplo los que mostramos por pantalla con cout).

#include <iostream>
using namespace std;
int main() {
    string nuevo_continente = “Zelandia”;
    cout << "En ultimo continente descubierto en la Tierra es " << nuevo_continente;
}

La otra cosa es que cuando leemos un string del teclado solo podemos leer una palabra. Si queremos leer una frase o en general un texto con espacios, tendremos que usar la instrucción getline():

#include <iostream>
using namespace std;
int main() {
    string cancion;
    cout << "Dime tu cancion preferida, en minusculas: " << cancion;
    getline(cin, cancion);
    if (cancion == “god only knows”) {
        cout << “Tambien es la cancion favorita de Paul McCartney“;
    } else {
        cout << “No la conozco pero seguro que es una gran cancion“;
    }
}

El formato de esta lectura del teclado es un poco distinto al habitual. Aquí le decimos en la sexta línea a getline() que lea toda una línea del teclado (cin) y lo guarde en la variable cancion.

Printer Friendly, PDF & Email

Comentarios

Añadir nuevo comentario

Texto sin formato

  • No se permiten etiquetas HTML.
  • Saltos automáticos de líneas y de párrafos.
  • Las direcciones de correos electrónicos y páginas web se convierten en enlaces automáticamente.