PROGRAMACIÓN EN C++ – CLASE 02

(Creado por el analista de sistemas y docente Leonel Iván Saafigueroa)


Estructuras secuenciales

Siguiendo con los conceptos iniciales, en esta oportunidad veremos como crear un programa con el que se pueda interactuar utilizando las estructuras de lectura y escritura.


Para empezar a conversar…


Vamos a crear un simple programa que nos pregunte nuestro nombre y que luego nos responda. El mismo almacenará el dato ingresado en una variable llamada nombre.
Recuerden que las variables son espacios de memoria en donde podemos guardar las lecturas que haga el programa cuando este se ejecuta.

Se llaman variables porque pueden variar de acuerdo a lo que ingresemos.
Hay que tener en cuenta que debemos declarar las variables antes de utilizarlas.

Analizamos el código

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// ESTRUCTURAS SECUENCIALES.
#include <iostream>
using namespace std;
string nombre;
int main()
{
cout << "¿Cuál es tu nombre?" << endl << endl;
// cin >> nombre; Esta línea solo tomaría una palabra.
getline(cin, nombre); //Esta línea no dará problemas con los espacios en el nombre.
cout << endl << "Que lindo nombre " << nombre << "." << endl;
return 0;
}
// ESTRUCTURAS SECUENCIALES. #include <iostream> using namespace std; string nombre; int main() { cout << "¿Cuál es tu nombre?" << endl << endl; // cin >> nombre; Esta línea solo tomaría una palabra. getline(cin, nombre); //Esta línea no dará problemas con los espacios en el nombre. cout << endl << "Que lindo nombre " << nombre << "." << endl; return 0; }
// ESTRUCTURAS SECUENCIALES.
#include <iostream>

using namespace std;

string nombre;

int main()
{
    cout << "¿Cuál es tu nombre?" << endl << endl;
//    cin >> nombre;        Esta línea solo tomaría una palabra.
    getline(cin, nombre); //Esta línea no dará problemas con los espacios en el nombre.
    cout << endl << "Que lindo nombre " << nombre << "." << endl;
    return 0;
}

  1. El uso de comillas es REALMENTE IMPORTANTE: En el programa podemos ver que la primera escritura tiene la pregunta “¿Cuál es tu nombre?” (y está entre comillas). En programación esto se llama cadena de caracteres (string, en inglés), no es más que una secuencia ordenada de elementos que pertenecen a un cierto lenguaje formal o alfabeto. Estas cadenas van entre comillas para que no sean confundidas con espacios en memoria (otras variables que realmente no existen).
  2. NO ES LO MISMO “NOMBRE” y NOMBRE: En la segunda escritura vemos una cadena “Que lindo nombre ”, y luego agregamos el contenido de nuestra variable nombre con <<. De esta forma la palabra nombre que está dentro de las comillas funciona como una cadena de caracteres (un texto normal), mientras que la que está fuera de las comillas hace referencia al contenido que está guardado en la variable. Si no ponemos las comillas, el lenguaje dará por sentado que cada palabra es una variable. Otro error muy común es no dejar un espacio para separar el contenido de la cadena de lo que vendrá a continuación; en este caso es el nombre ingresado por quien ejecute el programa, ahora lo veremos más claro al ejecutarlo.
  3. C++ ignorará las líneas que comiencen con dos barras (//). Para que un programa funcione, no hace falta dejar comentarios, aunque un programa bien comentado será más fácil de entender en un futuro, sobre todo para otras personas que lean el código.

Al ejecutar el programa la computadora nos pregunta nuestro nombre. Ingresamos nuestro nombre y presionamos la tecla Enter. Responde “que lindo nombre “, seguido del nombre que ingresen. Aquí es donde se entiende la importancia del espacio que dejamos antes de cerrar comillas dentro del código, sino aparecería todo junto.

La verdad es que la PC no sabe lo que hace…

Nuestro programa guarda en memoria cualquier cosa que ingresemos y luego lo repite como si fuera un loro, viendo el programa y su ejecución se entiende perfectamente su funcionamiento, y puede llegar a ser incluso muy divertido.

La respuesta que dará es solo una construcción gramatical lograda gracias a la unión de dos cadenas de texto, estamos aún muy lejos de haber creado una inteligencia artificial.


Vamos a analizar línea por línea este código en C++:

Línea 1: // ESTRUCTURAS SECUENCIALES.
Este es un comentario de una sola línea, que no hace nada en sí mismo. Los comentarios son líneas de texto que comienzan con // o /* */. El compilador los ignora.

Línea 2: #include <iostream>
Incluimos la biblioteca iostream, que proporciona entrada/salida estándar (como cout y cin) y algunas operaciones de flujo básicas.

Línea 4: using namespace std;
Declaramos que queremos utilizar el espacio de nombres std, que contiene las clases y funciones de la biblioteca estándar C++. Esta directiva permite acceder a los elementos de std sin tener que usar la notación
Cualificada (std::cout, por ejemplo).

Línea 6: string nombre;
Declaramos una variable llamada nombre del tipo string. En C++, string es un tipo de dato que representa una cadena de caracteres. La variable nombre tendrá espacio para almacenar una cadena de texto.

Línea 8: int main()
La función main es la entrada principal del programa. Su retorno es int, lo que indica que devuelve un valor entero. La función main es el punto de inicio del programa cuando se ejecuta.

Línea 10: cout << "¿Cuál es tu nombre?" << endl << endl;
Escribimos un mensaje en la salida estándar (pantalla) utilizando la función cout. El mensaje es "¿Cuál es tu nombre?", seguido de dos líneas vacías (endl) que salen al final de la línea y saltan una línea.

Línea 11: // cin >> nombre;
Este comentario indica que la siguiente línea sería incorrecta si no se elimina el comentario. La línea originalmente era cin >> nombre, lo que significa que leería un string desde la entrada estándar (teclado) y lo asignaría a la variable nombre. Sin embargo, como no hay espacio para almacenar espacios en blanco, esto sería incorrecto.

Línea 12: getline(cin, nombre);
En lugar de usar cin >> nombre, que puede causar problemas con espacios en blanco, utilizamos la función getline (que significa “obtener línea“) para leer una línea completa desde la entrada estándar y asignarla a la variable nombre. La función getline es más segura cuando se trata de leer cadenas de texto que pueden contener espacios.

Línea 13: cout << endl << "Que lindo nombre " << nombre << "." << endl;
Escribimos otro mensaje en la salida estándar, esta vez con el contenido de la variable nombre. El mensaje es "Que lindo nombre " seguido del valor de nombre, seguido de un punto (.) y otra línea vacía (endl).

Línea 14: return 0;
La función main devuelve 0, lo que indica que el programa se ejecutó correctamente.


TAREA PARA EL HOGAR

Modificar el programa para que haga al menos tres preguntas.
Vas a tener que usar un nombre distinto de variable para cada respuesta que almacenemos.
Por un momento vas a ser programador, y al testear tu programa vas a ser un usuario. ¡No confundas los roles!

Un ejemplo de programa podría ser que pregunte nuestro nombre, luego el apellido y que responda mostrando nombre y apellido todo junto. Vas a ver la importancia de poner una cadena que solo contenga un espacio para poder separarlos y que no aparezcan unidos.