Introducción a la programación

Pongamos que, un buen d�a, ante tus ojos, tienes una maravillosa m�quina que la gente llama ordenador.

La miras con cautela (�morder�?), y lo primero que tus ojos observan, es que consta de varios trozos. Uno de ellos, de verdad, es clavado a la tele de la salita (�podr� ver la peli de la 2 desde aqu�?). Otro de esos trozos recuerda a las m�quinas de escribir de nuestra infancia (�le podr� mandar una carta a mi abuela?; �y por d�nde meto el papel?).

Sin embargo, en un ordenador "medio", suele haber algo m�s, que lo primero que recuerda es a una caja grande de zapatos, con la diferencia de que no tiene zapatos dentro.

Se le suele llamar "torre" (pues yo no veo ning�n castillo) o, simplemente, caja. Si la abrimos, entre todo el marem�gnum de cables existente, podemos ver unas plaquitas muy finas. Un consejo: no las rompas. Tienes ante ti, al cerebro pensante (es un decir) de la m�quina, y a todos sus s�bditos.

Entonces, como eres una persona emprendedora, te preguntas, "�y c�mo demonios le convenzo para que se ponga la peli de la 2?", "�sabr� hacer ganchillo?", "�podremos hacernos amigos?". Esto �ltimo depende de ti, y s�lo de ti. Porque, lo primero que tienes que tener pero que muy claro es que la m�quina har� �nica y exclusivamente lo que t� le digas. Lo segundo, es saber que tu m�quina tiene limitaciones (lo siento mucho, pero sin brazos dudo mucho que pueda hacerte la comida) y que est� dise�ada para unas tareas concretas ("�pero bueno, �puedo o no puedo ver la peli de la 2?!"). Lo tercero: tienes que aprender el lenguaje de la m�quina. Porque, claro, si le recitas alg�n poema, nadie te salvar� de su gesto de indiferencia: no te entiende. La pregunta l�gica, pues, �y cu�l es el idioma de la m�quina? ("�que no sabr� ruso y mira c�mo se lo calla?").

Si eres despierto, habr�s observado con especial atenci�n cuando he dicho que hay un marem�gnum de cables en alguna parte. No importa tanto lo de la parte como lo de los cables. Bien, veamos: cables. �Y yo para qu� quiero un cable? Bueno, s�, puedo querer estrangular al perro de la vecina, vale, pero eso no me ayuda a saber c�mo hablarle a mi m�quina (ni siquiera al perro de la vecina). �Por d�nde �bamos? Ah, s�... CABLES. Bueno, ahora que lo pienso, por los cables pasa la corriente. Uuummm... CORRIENTE, s�, vamos bien.

�Y qu� le pasa a la corriente? ("ah, yo no s�, preg�ntale a ver"). Pues que, como el dinero, *est�* o *no est�*. Vale, vamos progresando.

Si te fijas m�s a�n, en esas placas que te he sugerido que no rompas, hay dibujitos como los de las "pelis" futuristas con un mont�n de l�neas, y hay como una cajita negra grandota con un mont�n de patitas ("�Agh, por Diox, una cucaracha!, �Traedme el insecticida!") �Vaya, pero si de esas patitas salen m�s de esas l�neas!

No te enga�es: esas l�neas son cables, y la cucaracha grande es la que manda. Esa cucarachita est� preparada para entender un idioma (no tan rico como el castellano) que le permite hacer sus cuentas, encargarle a alguien que las haga por ella ("�tiene una calculadora?"), y, lo m�s importante, por medio de esos cables, dar �rdenes a diestro y siniestro a sus s�bditos y recibir las respuestas de los mismos.

Tiene muchas responsabilidades encima, para ser una cosa tan chica. Y suele responder al nombre de "procesador" (aunque no se gira cuando le llamas).

Sus colaboradores se encargan (si est�n todos lo cables enchufados como toca, cosa que presuponemos) de hacer cuentas, de enviar se�ales de v�deo a esa cosa "clavada a la tele de la salita" para que puedas ver desde unas tristes letras blancas en fondo negro (aunque tienen su encanto) a la �ltima novedad en 3D con muchos colorines, de permitirnos que al pulsar una tecla aparezca por esa pantalla, en fin... �todo un mundo!

Y el procesador, para que le hablen, simplemente necesita que le digas: "0" o "1". ("�Pero bueno, �y para esto tanto rollo con que si lenguajes de programaci�n que si historias?"). �Qu� significa esto? �Por qu�, de entre todas las posibles formas de comunicaci�n, ha ido a elegir la m�s est�pida?

Bueno, en realidad no lo es tanto. Lo que quiere decir es, "0": ausencia de corriente. "1": presencia de corriente. Es la manera m�s f�cil. Pero esto no acaba aqu�. Como podr�s imaginar, los 0 y 1 pueden aparecer de muchas maneras. Ah, ah� has dado con la clave de todo: 0 y 1 son "el alfabeto", pero todas las formas en que pueden aparecer son sus "palabras" (aunque no te recomendar�a que asociaras palabra con esto).

Ya est� claro: tengo que saber hablar en 0 y 1 si quiero tener alg�n tipo de relaci�n con mi ordenador. Pero no es nada "humano", digamos intuitivo. Lo ideal ser�a que pudiera hablarle de forma que se parezca m�s a mi manera de hablar, puesto que no estamos ahora para ir aprendiendo idiomas tan "ex�ticos".

Y entonces llega el ser humano con su ingenio, y decide inventarse un lenguaje m�s sencillo con el que hablarle a la m�quina: y naci� el ensamblador. Pero, para una persona cuyo objetivo m�s ambicioso (por ahora) es escribir un "Hola Mundo", resulta demasiado complicado. �Por qu�? Pues porque requiere conocer a la m�quina como a uno mismo, y si uno mismo no llega a conocerse bien, qu� me direis de su m�quina.

As�, en un alarde de ingenio, el ser humano repite jugada, y se inventa otros lenguajes que, ahora s�, son m�s parecidos a nuestra forma de pensar.

Estos lenguajes, como todo, hay que aprend�rselos, pero tienen una ventaja, y es que hay varios puntos en com�n.

Todos constan de unos determinados tipos de variables. Una variable es como una caja, donde ahora puedo meter un zapato y ma�ana un tomate. Ahora, yo puedo haber etiquetado mis cajas y decir "aqu� s�lo fruta": ser� una variable de tipo FRUTA. O, "aqu� s�lo legumbres": ser� una variable de tipo LEGUMBRE. Esto es interesante, porque en el momento en que yo vea FRUTA, ya s� que dentro no hay cerveza (y tendr� que buscar en otro sitio, jo, qu� sed...). Pero no s�lo eso: yo s� que tengo muchas cajas para frutas, pero puedo querer bautizarlas ("t� ser�s la caja de frutas Juana"), y as� llamarlas por su nombre. Podr� cambiar (o no) su contenido (hoy Juana tiene un mel�n pero ma�ana le pondr� ciruelas), pero NO lo que puede contener: FRUTA.

Esto tambi�n lo tiene en com�n los lenguajes de programaci�n. S�lo que sus variables son de otro TIPO. Pueden ser enteros (s�, como los n�meros que nos ense�aron en la infancia), n�meros con decimales, cadenas de caracteres (no es m�s que un caracter detr�s de otro) y otros que ahora no comentamos (quedan para m�s adelante).

Lo normal es declarar las variables al principio de un programa. Declarar no es m�s que decir "mira, yo quiero tres variables enteras, y quiero que una se llame Pepi, otra Juani y otra Yoli". A partir de este momento, podr�s meter un -4 en Pepi, un 2 en Yoli, y hacer Pepi+Yoli. El resultado ser� -2.

Vaya, esto se pone interesante. �Qu� m�s cosas me permite hacer un lenguaje de programaci�n? Pues me permite hacer operaciones conocidas por todos como sumar, restar, multiplicar y dividir.

Los lenguajes de programaci�n, cuentan todos en su haber con un juego de "instrucciones". Una instrucci�n no es m�s que una orden que nosotros le damos a la m�quina.

Y es que, al fin y al cabo, un PROGRAMA no es m�s que una secuencia de instrucciones (escritas en alg�n lenguaje de programaci�n) pensado para RESOLVER alg�n tipo de PROBLEMA. Si no sabemos resolver este problema, no podremos escribir el programa.

A ti se te puede ocurrir una manera de resolverlo. A tu vecino, otra. Este METODO con el que resolveis el problema, es lo que se llama ALGORITMO, y es lo que vamos a ver en este cursito c�mo se hacen.

Un algoritmo no es m�s que una secuencia de pasos que, seguidos uno a uno, me permiten resolver un problema.

Por ejemplo, cuando quiero ver una pel�cula de v�deo, podr�a hacer:

  1. Elijo una pel�cula de las de mi colecci�n.
  2. Compruebo SI TV y v�deo est�n conectados a la red (y procedo).
  3. SI la TV est� apagada, la enciendo, SI NO, pues no. Y lo mismo con el v�deo.
  4. Abro el estuche de la pel�cula.
  5. Saco la pel�cula de su estuche.
  6. Introduzco la pel�cula en el v�deo. Dejo el estuche sobre el v�deo.
  7. SI la TV no est� en el canal adecuado, la cambio, SI NO, pues no.
  8. Cojo los mandos a distancia (el del TV y el del v�deo).
  9. Me pongo c�modo.
  10. Pulso PLAY en el mando del v�deo.

�A qu� no se os hab�a ocurrido?

Fijaos bien en unos detalles que son fundamentales y que aparecen en este algoritmo:

  1. La descripci�n de cada paso no me lleva a ambig�edades: los pasos son absolutamente expl�citos y no inducen a error.
  2. El n�mero de pasos es finito.

Y es que no puedes tener eternamente pensando a la m�quina si pretendes que te d� alg�n resultado en alg�n momento.

Podr�a poner una definici�n rigurosa de lo que es un algoritmo, pero me parece que con esto se coge la idea.

Notar tambi�n que he escrito en may�sculas las palabras SI y SI NO. Como podeis imaginar, formar parte de la manera en que se escriben algoritmos.

Por ahora, os invito a que describais algor�tmicamente situaciones cotidianas de vuestra vida. En la pr�xima entrega har� un resumencito escribiendo las cosas de forma algo m�s rigurosa (al principio lo que importa es que se entiendan las ideas), completar� lo dicho sobre las variables, y seguiremos por esos pecaminosos senderos del mundo de la programaci�n: las instrucciones de control de un programa.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
SIGUIENTE ARTÍCULO