jueves, 5 de diciembre de 2013

Desmenuzando "Hola mundo"

Funciones y estructuración.



La programación estructurada parte de la idea de dividir un problema en problemas mas pequeños. Esto hace mas legible el código. Cuando uno escribe debe hacerlo con la idea de que eventualmente, alguien más lo leerá, ya sea para entenderlo, corregirlo o mejorarlo.
Con esto en mente, el lenguaje se diseñó para que el código estuviera dividido en "funciones" que son las soluciones de problemas mas pequeños. Una de las muchas funciones que incluye "C" es el "printf". Como ya viste "imprime" -por razones históricas se le quedó el nombrecito, aunque la pantalla no sea impresora- lo que tu le pones entre paréntesis. Eso que le pones entre paréntesis se llama parámetro. No te quiebres la cabeza tratando de recordar los nombres, practicando los manejarás con fluidez.

Bibliotecas.


Para poder usar la función "printf" es para lo que se escribe la primera línea: "#include <stdio.h>"  Las funciones que tiene "C" se agrupan en bibliotecas -traducidas equivocadamente como librerías-. El nombre de esta es algo críptico, pero stdio significa "standard input/output": es una biblioteca que tiene funciones para la entrada-salida: escritura en pantalla o archivo. Como esta, hay bibliotecas para tiempo (fecha y hora), manejo de directorios y muchas mas. Si esto no bastara, se pueden usar bibliotecas hechas por alguien mas o hacer las propias: lo haremos en algún momento. ¿Por que va al principio? porque  puede que usemos varias funciones de la misma biblioteca varias veces en el código; necesitamos que "el include" esté antes de usar una función de la biblioteca. Para no dejarlo regado por todos lados; se usa ponerlo al principio del archivo.

main: donde todo comienza.


Nota la palabra "main".  Esta es una función -como todos los bloques en C- con un significado especial, es el punto donde comenzará a ejecutarse el código. En este ejemplo tan sencillo, es cosa trivial, o hasta absurda que no sepa por donde empezar, pero el código puede tener muchas líneas e ir dividido en varios archivos cuando programas algo interesante -ya verás en que casos conviene que sea así-. El nombre de función "main" está seguida por un paréntesis vacío, es entonces una función sin parámetros, ya veremos mas adelante que puede tenerlos y como se manejan. Después viene una llave "{" que indica el inicio de la función "main" nuestra llamada a "printf"
y otra llave "}" que indica el final de la función. Esta es la estructura básica de construcción de bloques en "C"  función, paremetros, cuerpo.

Segundo programa.


Con esto en mente, vamos nuestro segundo programa:

#include <stdio.h>

saluda(){
    printf("Hola, Mundo\n");
}

main(){
    saluda();
    saluda();
}


Guarda, compila y antes de ejecutar ¿Que crees que haga?.

Explicado de forma rápida: tienes dos funciones: "saluda" y "main", ambas sin parámetros. La primera función "imprime" el saludo. La segunda, "main" llama dos veces a la función "saluda". Aunque la función saluda, se encuentra primero en el archivo, la que se ejecuta primero -siempre- es "main". ¿Lo ves?


Continuaremos ......









miércoles, 4 de diciembre de 2013

Iniciación al lenguaje C


Modelo 70


¿Y java? Será lo primero que se pregunte alguien. A su tiempo, claro. Empezaremos con C como ejercicio didáctico. Es un lenguaje antiguo -45 años en tiempo de avances tecnológicos es una eternidad-, cierto, pero aún vigente y dada su "portabilidad" se puede encontrar en una multitud de plataformas listas para usar el lenguaje.


Lo orientaremos a linux, porque casi todo lo necesario para programar está disponible sin costo.


Manos a la obra, pues



Primer programa:


#include <stdio.h>

main(){
printf("Hello, World\n");
}


Escribe esto en tu editor de texto sin formato ( vi, gedit o el que sea).  Guárdalo como "hello.c", o como tu quieras, pero supondremos que es este.  En el "prompt" teclea lo siguiente:

cc hello.c

Esto compila tu código, lo convierte de texto a algo que la máquina puede entender y ejecutar. Si todo transcurre sin novedad, teclea:

./a.out

Deberías ver el mensaje "Hello, World" y sólo eso.
¿Vamos bien?
¿Por que el nombrecito "a.out"? El compilador le da este nombre por defecto a la salida del compilador, a tu "ejecutable", claro hay manera de darle el nombre que tu quieras, pero ya iremos para allá. Lo importante es ver el funcionamiento básico del compilador.


Continuaremos ....