lunes, noviembre 02, 2009

Programación Basica en C++ en Linux Parte 1

Bien he tenido la idea de crear esto desde hace mucho mucho tiempo, sin embargo hasta ahora lo empezaré, el objetivo es crear un minicurso fundamental de como programar usando herramientas de software libre o de código abierto. Bien tutoriales como este hay miles, pero es una pequeña contribución de mi parte, este curso es útil como comienzo, sin embargo internet y sobre todo los libros siempre serán nuestros mejores amigos =)


Introducción

C++ es un lenguaje inspirado en C, por Bjarne Stroustrup en los 80's. Es un lenguaje de alto nivel que como C permite el uso de muchas características de bajo nivel, es un lenguaje orientado a objetos, y está estandarizado desde ya bastante tiempo.

Más información http://es.wikipedia.org/wiki/C%2B%2B

Consejos antes de empezar
  • Google e internet son excelentes herramientas sabiéndolas aprovechar
  • Para programar un conocimiento adecuado de inglés es indispensable, hay mucha más documentación en inglés que en español.
  • Este curso es un pequeñisimo tutorial introductorio, espero sirva de ayuda como otros en la red.
Bien continuando, para esto usaremos herramientas GNU/Linux, Linux es un núcleo, GNU una serie de herramientas entre ellas el compilador GCC que usaremos en el curso, y demas librerias que juntas conforman los sistemas operativos Linux GNU/Linux(el nombre del sistema operativo es una discusión épica que no nos importa en este momento) Hay muchas distribuciones del sistema operativo Linux y GNU debido a que es construido por diversos grupos de desarrolladores basándose a filosofías y necesidades específicas.

Antes de continuar es bastante útil conocer más de GNU, Linux, software libre y código abierto

http://www.obtengalinux.org/
http://es.wikipedia.org/wiki/C%C3%B3digo_abierto
http://es.wikipedia.org/wiki/Software_libre
http://es.wikipedia.org/wiki/Linux

Bien, podemos usar cualquier distro que queramos, es mejor empezar con distros de fácil instalación si se desea después se puede aprender a usar las distros difíciles(o más bien tardadas) de instalar como Slackware. Distros recomendables Fedora, LinuxMint, GnewSense, Ubuntu. Para este tuto yo uso Fedora que usa paquetes RPM y yum. Lo único que variará será como instalar algunas cosas la mayoría de hecho ya están instaladas cuando usas el Sistema Operativo.


Herramientas a usar

Necesitamos para programar en C++( y de hecho muchos otros lenguajes) ciertas herramientas, en Windows estás vienen juntas en un sólo programa lo que se llama IDE, en Linux también hay IDE's, sin embargo lo más común es que vengan de forma separadas estas herramientas.
  • Sistema Operativo!! (Linux para nuestro caso)
  • Editor de Texto(gedit, vim, emacs, anjuta, bluefish, para nuestro tuto usaremos gedit)
  • Compilador de C++(lo más importante de hecho, pues traducirá nuestro código a lenguaje entendible por la máquina, usaremos GCC)
  • IDE's completas(NetBeans, Eclipse, más adelante veremos el uso básico de estas)
  • Otras Herramientas(depuradores, analizadores, subversion, etc)
Bien primero elegimos la distro deseada, yo uso Fedora, fuera de la instalación de algunas herramientas no varía la distro que uses lo demás. Gedit viene de defecto instalado, sino podemos instalarlo usando yum install gedit, apt-get install gedit. Nota. este no es un curso básico de Linux, sino de C++ en Linux, así que es bueno un conocimiento previo de Linux.
También ocuparemos el compilador GCC, lo mismo para instalarlo yum install gcc, apt-get install gcc. Por el momento no ocuparemos más.

Para programar abriremos gedit, y aquí escribiremos nuestro código, para compilar desde consola usaremos el comando "g++ nombrearchivo.cpp -o nombrearchivo.out" y una vez compilado para ejecutar usaremos "./nombrearchivo.out" o "sh nombrearchivo.out"(para esto último puede pedir usar al root, usar sudo o su -c).


Primer Programa

Como C++ es un lenguaje estandarizado,  la mayoría que lo que se escribe en otros compiladores(borlandc ++, dev c++, etc) se usará asi en GCC. El primer programa clásico "HolaMundo". Abrimos gedit y empezamos a escribir nuestro código.

Código

// Estás líneas sirven para comentar
/* Tal como estas de apertura y cierre */

#include // Para flujos de entrada/salida básicos de C++

using namespace std; /*espacio de nombre estándar, esto nos incluye cout, es un poco más detallado explicar los namespaces */

int main()
{

    cout<<"Hola!\n"; /*cout, c out, salida básica de C++, para el flujo de salida se usa el operador '<<'  y "Hola!n"  es nuestra cadena de salida, con el caracter de salto de línea '\n'*/
                                     
    return 0;    /* es una buena práctica de programación que las funciones main en C++ devuelvan un valor,  para detectar errores por ejemplo */
}




(click para agrandar)


Tal como en C, las líneas se acaban en ';' , las funciones, estructuras y clases abren y cierran con '{}',  hay diferencia entre mayúsculas y minúsculas, y las llamadas al preprocesador se usa '#'. Nota, tal como otros compiladores, GCC puede compilar código de C, pero esto es porque el compilador lo permite, en realidad un código de C no debería ser compilado por un compilador de C++.

La extensión debe ser 'cpp', podemos nombrar nuestro archivo como querramos, aqui lo guardamos como hola.cpp

Para compilar en una consola usamos el comando

g++ hola.cpp -o hola.out

Esto es para indicar al compilador que guarde el archivo compilado como hola.out(un "ejecutable" en Linux, la extensión .out de hecho puede usarse la que se quiera, es por estandarizar)

Para ejecutarlo en una terminal usamos es comando

./hola.out

'./' sirve para ejecutar el archivo
Si hemos hecho todo bien veremos una salida como eta




Consejo de programación en Linux

Quizás hayan notado que el gedit en la imagen hay una pequeña consola abajo, gedit como otros editores en linux, permiten el uso de complementos
asi que para activar ese complemento lo instalamos primero

su -c 'yum install gedit-plugins'

Una vez hecho esto, abrimos gedit vamos a Editar/Preferencias y ahi la pestaña Complementos, ahi buscamos y activamos Terminal Empotrado. Despues en Ver/Barra inferior y voila, asi no tenemos que tener una terminal abierta, basta con nuestro gedit abierto.

Bueno hasta aquí llega la primera parte de este curso, como verán lo más básico, Saludos hasta entoncés.

V.X.