¿Alguna vez has querido programar pero se te hace muy difícil?, ¿te topas con libros que apenas abriéndolos te hablan de clases rutinas y demás cosas que no entiendes? Si es así has venido al lugar correcto, este pequeño curso introductorio a la programación que ire escribiendo semana por semana lo hago pensando en todos aquellos geeks que quieren entender mejor aquello que los apasiona, y  ¿por qué no? Quizás vayas aún más adelante y termines siendo todo un hacker, la elección es tuya.

Parte 1: un poco de teoría

Antes que siquiera empezar a escribir la primera línea de código primero debemos tener una idea más o menos clara de lo que queremos que haga nuestro programa, es decir, diseñar el algoritmo.

Un algoritmo no es otra cosa que una serie de instrucciones para resolver alguna clase de problema, por ejemplo pensemos que se ha fundido el foco de tu cuarto:¿Qué haces?

a)      Lo dejas como está, eres una criatura de la noche

b)      Lo cambias

Si eligieras la opción a pues allí terminaría todo, ya que al parecer no hay ningún problema que resolver, sin embargo  escoger la b implica que cambiaras el foco.

Ahora que escogiste la b repasemos que haces al cambiar un foco

Desatornillas el foco

Pones uno nuevo

Fácil no?

Ahora piensa en detalle todo lo que suponen esas dos acciones, vamos, implica pararte de tu asiento, ir a ver si hay focos, si no hay ir a comprar uno, buscar algún banco o silla donde puedas alcanzar el socket, apagar el interruptor subirte al banco, quitar el foco fundido y poner el nuevo.

¿Por qué es importante esto? Porque al programar, lo haremos para una máquina que solo sabe seguir instrucciones de manera secuencial, es decir, una después de la otra y en orden. Esto hay que tenerlo en cuenta siempre de aquí a que se desarrolle la verdadera inteligencia artificial.

Ahora bien, para desarrollar el algoritmo de nuestro programa disponemos de una herramienta simple pero poderosa para organizar nuestras ideas y planear nuestro proyecto y este es el diagrama de flujo

Seguramente algunos de ustedes ya conocen el diagrama de flujo, pero pensemos en aquellos que aún se siguen preguntando que es:

Un diagrama de flujo es una simple sucesión de bloques unidos por líneas con flechas donde cada bloque significa una instrucción.

Los bloques básicos sin embargo los más importantes te los pongo a continuación

Entrada: Este bloque sirve para que nuestro programa reciba alguna informacion, como dato curioso tiene forma de tarjeta porque las tarjetas perforadas furon los primeros medios de entrada.

Salida: Este bloque representa lo que queremos que nuestro programa muestre al usuario.

Proceso: este bloque lo usamos para representar algún proceso u operación que deba realizarse en el programa.

Decisión: Cuando se llega a este bloque el programa hace una pregunta que tipicamente se contesta con un si o un no, y actúa dependiendo de la respuesta.

Ahora veamos nuesto problema original (el del foco) expuesto en un diagrama de flujo:

La regla aquí es seguir las flechas y al llegar a una decisión escoger una de las que salen.

Para hacer un diagrama de flujo no es necesario nada mas que un lápiz y papel, sin embargo esto puede ser muy engorroso, yo personalmente recomiendo el uso de Dia, un programa muy sencillo de usar aparte de ser gratis, totalmente en español y estar disponible para GNU/Linux, MS Windows y OSX; existen otras opciones como Microsoft Visio, pero  lo importante es el empeño que pongas en tus diagramas.

Por esta semana es todo, y aunque puede parecer poco te recomiendo familiarizarte con los símbolos que acabamos de ver y con seguir diagramas de flujo, ya que más adelante nos va a ser muy útil.

Como una pequeña tarea, imagina que vas en un coche y que se acaba de ponchar una llanta, trata de esquematizar lo que harías en un diagrama de flujo y mándamelo a ricardo@hogargeek.com en formato jpg, si tienes alguna duda pregunta en los comentarios para que asi también sea útil a otros.

Related Posts Plugin for WordPress, Blogger...

Creative Commons License
This work, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.5 Mexico License.