Herramientas de usuario

Herramientas del sitio


curso-cpp:hola-mundo

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
Próxima revisión Ambos lados, revisión siguiente
curso-cpp:hola-mundo [2016/09/23 17:36]
santo [Ejemplo de programa con un error de compilación]
curso-cpp:hola-mundo [2016/09/23 17:54]
santo [Análisis del programa Hola Mundo]
Línea 1: Línea 1:
 ====== Hello World ====== ====== Hello World ======
  
-Una vez que tenemos listo todo el ambiente (Geany bien instalado y compilador g++ listo para que Geany lo use), ¡estamos ​en condiciones de crear programas con Geany!+===== Primer programa de Ejemplo ===== 
 + 
 +Una vez que tenemos listo todo el ambiente (Geany bien instalado y compilador g++ listo para que Geany lo use), ¡Estamos ​en condiciones de crear programas con Geany!
  
 A modo de ejemplo, veamos un primer programa de ejemplo que llamaremos "​HolaMundo"​. En Geany, crear un archivo nuevo llamado "​HolaMundo.cpp"​ (Es importante que todos nuestros archivos de C++ utilicen la extensión "​.cpp",​ que es la extensión de C++ más común. Si no utilizamos una extensión .cpp, Geany no entenderá que el archivo en cuestión está escrito en el lenguaje C++, y no lo compilará correctamente. Esto es porque Geany permite utilizar también otros lenguajes). A modo de ejemplo, veamos un primer programa de ejemplo que llamaremos "​HolaMundo"​. En Geany, crear un archivo nuevo llamado "​HolaMundo.cpp"​ (Es importante que todos nuestros archivos de C++ utilicen la extensión "​.cpp",​ que es la extensión de C++ más común. Si no utilizamos una extensión .cpp, Geany no entenderá que el archivo en cuestión está escrito en el lenguaje C++, y no lo compilará correctamente. Esto es porque Geany permite utilizar también otros lenguajes).
  
-Una vez creado este archivo, copiar (o tipear) el siguiente texto como contenido del mismo. Este texto es un **programa** escrito en el lenguaje de programación C++.+Una vez creado este archivo, copiar (o tipear) el siguiente texto como contenido del mismo. Este texto es un **programa** escrito en el lenguaje de programación C++. Más adelante estudiaremos bien qué significa cada parte del programa.
  
 <​code>​ <​code>​
Línea 44: Línea 46:
  
  
-====== Ejemplo de programa con un error de compilación ​======+===== Ejemplo de programa con un error de compilación =====
  
 Que los programas nos compilen sin errores como en el caso anterior es algo muy raro. Casi siempre, tenemos pequeños errores en el código fuente, de los cuales el compilador nos irá avisando, y que vamos corrigiendo a medida que los vemos. Que los programas nos compilen sin errores como en el caso anterior es algo muy raro. Casi siempre, tenemos pequeños errores en el código fuente, de los cuales el compilador nos irá avisando, y que vamos corrigiendo a medida que los vemos.
Línea 75: Línea 77:
 La parte de ''​HolaMundo.cpp:​8:​5''​ nos indica que se detectó algún error en el archivo HolaMundo.cpp,​ en la línea 8, en la columna 5. A continuación se describe el mensaje de error, que en este caso es ''​error:​ expected ‘;’ before ‘return’''​. Esto significa que el compilador estaba esperando un ";"​ de terminación de la instrucción,​ pero sin embargo se encontró con el "​return"​ de la línea siguiente, y como la aparición repentina de ese return le resulta inválida, nos informa de este error. La parte de ''​HolaMundo.cpp:​8:​5''​ nos indica que se detectó algún error en el archivo HolaMundo.cpp,​ en la línea 8, en la columna 5. A continuación se describe el mensaje de error, que en este caso es ''​error:​ expected ‘;’ before ‘return’''​. Esto significa que el compilador estaba esperando un ";"​ de terminación de la instrucción,​ pero sin embargo se encontró con el "​return"​ de la línea siguiente, y como la aparición repentina de ese return le resulta inválida, nos informa de este error.
  
-Si se compila ​de este programa, Geany subrayará de rojo automáticamente la línea donde el compilador informa del error, para facilitar encontrar el mismo y así corregir más fácil el programa. Además, si hacemos clic en el error mismo en la parte inferior de los mensajes (Es decir, en la línea en rojo que dice ''​HolaMundo.cpp:​8:​5:​ error: expected ‘;’ before ‘return’''​),​ Geany llevará la vista directamente hasta la línea del error y nos la indicará con una flecha amarilla en el lado izquierdo. Esto es especialmente en programas largos con por ejemplo 100 líneas, de manera que podamos saltar directamente al error en lugar de buscarlo a mano por todo el archivo.+Si se compila este programa, Geany subrayará de rojo automáticamente la línea donde el compilador informa del error, para facilitar encontrar el mismo y así corregir más fácil el programa. Además, si hacemos clic en el error mismo en la parte inferior de los mensajes (Es decir, en la línea en rojo que dice ''​HolaMundo.cpp:​8:​5:​ error: expected ‘;’ before ‘return’''​),​ Geany llevará la vista directamente hasta la línea del error y nos la indicará con una flecha amarilla en el lado izquierdo. Esto es especialmente ​útil en programas largos con por ejemplo 100 líneas, de manera que podamos saltar directamente al error en lugar de buscarlo a mano por todo el archivo.
  
 Algo interesante para notar en este ejemplo es que el compilador nos dice el lugar del archivo donde **descubrió** que hay un error, pero el error en sí puede estar en otro lugar. En nuestro caso, el compilador recién descubre del error (la falta del ";"​) en la línea 8, pero el ";"​ en sí mismo debería estar en la línea anterior, con lo cual podríamos decir que el error está en la línea 7 en lugar de en la línea 8. Tener esto en mente es útil a la hora de corregir los programas para que compilen correctamente. Algo interesante para notar en este ejemplo es que el compilador nos dice el lugar del archivo donde **descubrió** que hay un error, pero el error en sí puede estar en otro lugar. En nuestro caso, el compilador recién descubre del error (la falta del ";"​) en la línea 8, pero el ";"​ en sí mismo debería estar en la línea anterior, con lo cual podríamos decir que el error está en la línea 7 en lugar de en la línea 8. Tener esto en mente es útil a la hora de corregir los programas para que compilen correctamente.
 +
 +===== Descuidos comunes =====
 +
 +Hay que tener cuidado de los siguientes descuidos muy comunes:
 +  * Olvidarse de **usar F9 para compilar el programa**, y en cambio usar directamente F5 para ejecutarlo. Si hacemos esto, Geany ejecutará la última versión que hayamos compilado, que puede no ser igual a la que tenemos a la vista y así generarnos confusión. Si nunca hemos compilado nada, se verá un mensaje de error al ejecutar.
 +  * Usar F9 para compilar el programa, y luego usar F5 para ejecutar el programa, **pero el programa no compiló exitosamente**. Si hacemos eso, Geany ejecutará la última versión que compiló exitosamente. Como esa no es la que tenemos escrita en el archivo (que es la que no ha compilado exitosamente),​ nuevamente esto puede causarnos confusión.
 +
 +===== Análisis del programa Hola Mundo  =====
 +
 +Entendamos ahora el contenido del programa, línea por línea. Para algunas de las líneas, no necesitaremos entender bien a fondo los motivos por los cuáles son necesarias, y en realidad lo que haremos en la práctica será copiarlas siempre igual en todos nuestros programas. De cualquier manera, comentamos a continuación todo el programa, para que podamos hacernos al menos una idea de qué hace cada cosa.
 +
 +<​code>​
 +#include <​iostream>​
 +
 +using namespace std;
 +
 +int main()
 +{
 +    cout << "Hola mundo!"​ << endl;
 +    return 0;
 +}
 +</​code>​
 +
 +La primera línea, ''#​include <​iostream>'',​ es una directiva ''#​include''​. Estas directivas se utilizan para indicarle al compilador que vamos a querer **utilizar** partes de una biblioteca estándar existente. Se le llama biblioteca a un conjunto de elementos que ya están programados,​ y que podemos entonces utilizar en nuestro programa ahorrándonos así la necesidad de programarlos nosotros. En este caso particular, la línea indica que queremos utilizar la biblioteca iostream. Al hacerlo, a continuación tendremos disponibles todos los elementos de la biblioteca iostream. En nuestro programa en particular, los elementos de esta biblioteca que utilizaremos más adelante serán "​cout"​ y "​endl"​. Se puede comprobar que si quitamos esta línea del programa, el compilador generará un error en la línea que contiene a "​cout"​ y "​endl",​ ya que al no haber incluido la biblioteca no podemos usar estos elementos.
 +
 +La línea ''​using namespace std;''​ la utilizaremos textualmente en todos nuestros programas. Los elementos de las bibliotecas estándar de C++ están todos contenidos en lo que se llama un namespace, en concreto en el namespace std (Del inglés, "​standard"​). Si no incluyéramos esta línea, tendríamos que poner ''​std::''​ delante de cualquier elemento de las bibliotecas estándar, lo cual nos resulta incómodo. Con esta línea indicamos que queremos usar todas las cosas de std "​directamente",​ sin ponerles ''​std::''​ delante.
 +Se puede comprobar por ejemplo, que si
curso-cpp/hola-mundo.txt · Última modificación: 2017/10/29 19:16 por santo