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
curso-cpp:hola-mundo [2016/09/23 17:43]
santo
curso-cpp:hola-mundo [2017/10/29 19:16] (actual)
santo
Línea 7: Línea 7:
 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 ​cpp>
 #include <​iostream>​ #include <​iostream>​
  
Línea 52: Línea 52:
 Por ejemplo, imaginemos que hubiéramos tipeado el siguiente programa incorrecto: Por ejemplo, imaginemos que hubiéramos tipeado el siguiente programa incorrecto:
  
-<​code>​+<​code ​cpp>
 #include <​iostream>​ #include <​iostream>​
  
Línea 86: Línea 86:
   * 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.   * 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.   * 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 cpp>
 +#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 eliminamos esta línea, el compilador genera un error en la línea que contiene a cout y endl. Sin embargo, si cambiamos la línea que los contiene por ''​std::​cout << "Hola mundo!"​ << std::​endl;''​ (colocando el ''​std::''​ delante de cout y endl), el programa pasa a compilar correctamente. Es por esto que utilizamos siempre la línea ''​using namespace std;'',​ para así evitarnos muchos ''​std::''​ en el programa.
 +
 +Luego viene la **función main()**. Más adelante aprenderemos lo que es una función, y entonces entenderemos que main es una función como cualquier otra. Por ahora, lo importante es saber que con ''​int main()''​ comienza la parte del programa donde colocaremos todas las instrucciones que la computadora ejecutará secuencialmente,​ en el orden que indiquemos. Estas instrucciones deben siempre ir rodeadas entre llaves ''​{''​ y ''​}''​. En general, las llaves ''​{''​ y ''​}''​ son utilizadas siempre en C++ para encerrar **bloques** de instrucciones,​ que se ejecutarán **en secuencia**,​ una atrás de otra, en el orden indicado.
 +
 +Por lo tanto, en todos nuestros programas tendremos una parte de la siguiente forma:
 +
 +<code cpp>
 +int main()
 +{
 +    //​...INSTRUCCIONES...
 +}
 +</​code>​
 +
 +Donde en la parte que hemos anotado con ''​...INSTRUCCIONES...'',​ colocaremos la lista de instrucciones que indicarán a la computadora qué debe hacer, en orden.En nuestro caso, esta lista tiene solamente dos instrucciones.
 +
 +Notar que **todas** las instrucciones **terminan en ";"​** : En C++, el símbolo ";"​ es el marcador de **fin de instrucción**. Es por eso que si lo omitimos, el compilador piensa que la instrucción continúa en la línea siguiente. Esto está de hecho permitido: es posible partir una instrucción entre varias líneas, y no es obligatorio colocar una sola instrucción por línea, aunque esto es lo más recomendado.
 +
 +La primera instrucción de nuestro programa es ''​cout << "Hola mundo!"​ << endl;''​. Esta instrucción le ordena a la computadora que muestre el mensaje ''"​Hola mundo!"''​ por la pantalla. ''"​Hola mundo!"''​ es lo que llamamos una //cadena de texto//, es decir, una porción de texto normal para escribir en pantalla, que siempre se escriben en C++ encerrados entre comillas ''"''​. ''​cout''​ es un elemento de la biblioteca iostream, al cual podemos **enviar** cadenas de texto para que las muestre por la pantalla. La forma de enviar cadenas a cout es con el símbolo ''<<'',​ que visualmente se asemeja a una especie de flecha que apunta hacia cout.
 +
 +Por eso ''​cout << "Hola mundo!"''​ le envía el mensaje "Hola mundo!"​ a cout para que lo imprima. Estos envíos con ''<<''​ se pueden encadenar en una misma instrucción,​ y por ejemplo podríamos haber hecho con idénticos resultados ''​cout << "​Hola"​ << " " << "​mundo!"​ << endl;''​. Notar en este caso la cadena ''"​ "'',​ que contiene únicamente un espacio en blanco.
 +
 +Finalmente, ''​endl''​ es un elemento especial que se le puede enviar a cout para indicar que se salte a la línea siguiente. En este caso, como escribimos una única línea en la pantalla, quizás no se note la importancia de saltar a la línea siguiente. Sugerimos probar para esto ejecutar dos copias de esta instrucción,​ y probar las distintas combinaciones de poner y sacar el endl para observar mejor sus efectos.
 +
 +La última instrucción del programa es ''​return 0''​. En todos nuestros programas colocaremos esta instrucción al final del main. Lo que hace esta instrucción es indicar que se debe terminar la función main (que terminará todo el programa) con el código de finalización 0 (que es un código que significa que no hubo errores y todo salió bien).
curso-cpp/hola-mundo.1474652591.txt.gz · Última modificación: 2016/09/23 17:43 por santo