jueves, 29 de octubre de 2009

Aprende a Programar: 1 - Conceptos básicos

Hice este manual para aprender a programar con C++ cuando estaba en la universidad, ahora lo publico en mi blog para que le pueda servir a quienes quieran iniciarse en la programación desde cero.

El compilador


Para hacer un programa, nosotros no podemos usar nuestro lenguaje para decirle al ordenador qué es lo que quermos que haga, ya que no nos entendería. Nuestro lenguaje es demasiado ambiguo.
Los ordenadores entienden un lenguaje muy distinto al nuestro, llamado "lenguaje máquina", cuyo "abecedario" está compuesto únicamente por ceros y unos. Por tanto hay un pequeño problema de "comunicacion".
Para solucionar este problema se han ido creando diferentes lenguajes más cercanos al nuestro, llamados lenguajes de alto nivel, de forma que nos resulte más fácil "decirle" al ordenador lo que queremos que haga. En C++, como en otros lenguajes, le "diremos" al ordenador lo que queremos que haga mediante instrucciones, de forma cada instrucción será una línea de texto acabada en punto y coma.

Una vez que hemos hecho un programa con un lenguaje de alto nivel (por ejemplo C ó C++) necesitamos a "alguien" que se encargue de traducir el programa a lenguaje máquina para que el ordenador lo entienda. Pues bien, esta tarea es la que realiza el compilador. Por tanto al acto de convertir el código (el algoritmo) en un programa ejecutable se le llama compilar. Si en el código del programa existe algún fallo de tipo sintáctico o mal uso de lenguaje que estemos manejando, el programa no se compilará y el compilador nos indicará los fallos que existen para que los arreglemos.

¿Qué necesito para empezar?

Para empezar necesitaremos básicamente un editor de textos donde escribir el código, y un compilador, eso es todo ;-) Existen editores de textos que colorean el código conforme vamos escribiendo para tenerlo más estructurado y que sea más comprensible.
Si vas a trabajar en GNU/Linux puedes usar cualquiera de los editores de texto existentes (Kate, Vim, Nano, Emacs, etc...) y usar el compilador g++ de GNU.
Existen "entornos de desarrollo", de forma que la edición del código y la compilación la haremos en el mismo entorno. Esto es recomendable si vas a hacer proyectos suficientemente grandes como para usar varios ficheros (cada fichero contiene código sólamente, se usan varios para tener el código más estructurado), de forma que facilita y acelera diversas tareas. En GNU/Linux hay muchos entornos de desarrollo, por ejemplo Anjuta.
Si vas a programar usando Microsoft Windows, existe un buen entorno de desarrollo llamado Devcpp (devc++), que incluye el editor de textos y el compilador en el mismo programa.

Si eliges programar en GNU/Linux con G++, el procedimiento a seguir sería el siguiente: Crear un archivo con tu editor favorito, con extensión *.cc ó *.cpp. Escribir el código necesario. Y por último, ejecutar en la consola: "g++ nombre_codigo.cc" (sin las comillas evidentemente). Con lo cual el compilador G++ convierte el código en un programa ejecutable, el cual podremos ejecutar escribiendo: "./nombre_ejecutable".

Si eliges programar con un entorno de desarollo, tendrás que crear un nuevo proyecto de un programa de consola. Escribir el código necesario, seleccionar la opción "compilar" del entorno que estés usando. Y finalmente seleccionar la opción "ejecutar" para ver el resultado del programa.

Las librerias

Mediante código vamos a decirle al ordenador lo que queremos que haga mediante instrucciones. Pues bien, algunas instrucciones están almacenadas en lo que se denominan librerías que necesitaremos incluir en nuestro fichero de código.
Explicándolo de una forma algo vulgar pero sencilla de entender; imaginemos que tú eres un programa, y el usuario te da la instrucción "RESOLVER TAL PROBLEMA DE FISICA CUÁNTICA". Pues bien, si no sabes física cuántica, antes tendrías que leerte algunos libros, ¿verdad?. Pues digamos que cuando escribes un programa, has de decirle a éste los "libros" que debe "leerse" para poder realizar las instrucciones que tú le digas.
Existen muchas librerías para C++, incluso cuando aprendas a programar en C++ tú mismo podrás crear tus propias librerías.
Para incluir una librería en nuestro programa (dicho a nuestro modo: para que "el programa se lea un libro") debemos indicarlo al principio del código. Por ejemplo con:
#INCLUDE <iostream>

indicaríamos al programa que incluya la librería iostream, librería elemental para realizar operaciones de entrada/salida que veremos y explicaremos más adelante.

Los namespaces

El concepto de 'namespace' o espacio de nombres es muy sencillo. Simplemente son contenedores de librerías, es decir, que las librerías están agrupadas en namespaces, así evitamos conflictos si existen diferentes librerías con el mismo nombre. Para usar un namespace, en nuestro programa, lo indicaremos después de los 'includes':
#include <iostream>
#include <string>

using namespace std;

En este manual no profundizaremos en el tema de las librerías y los espacios de nombres, ya que nuestro objetivo es que te inicies en la programación en general, aunque para ello usemos un lenguaje en concreto.

Comentarios

Cuando escribes el código de un programa, es conveniente que vayas realizando algunas notas en éste para que cuando, al cabo de un tiempo, veas el código entiendas qué estas haciendo en cada momento.
Quizá ahora no le veas mucho sentido a esto, pero cuando empieces a hacer tus primeros programas irás pensando en anotar cosas.
Una vez escribiendo código, un comentario se escribe así:
//Esto es un comentario de una sola línea

/*Esto es un comentario de
varias líneas*/

Con la primera forma, mediante "//" estamos indicándole al compilador que no haga caso de lo que se encuentre después de encontrar las dos barras.
Con la segunda forma, estamos diciéndole al compilador que ignore lo que se encuentre desde que aparece "/*" hasta que se encuentra "*/". Así que esos comentarios aparecerán en el código, pero no afectarán para nada al programa.

No hay comentarios:

Publicar un comentario