Basado en la Composición de Lola Cárdenas Luque.
COMO COMUNICARSE CON EL COMPUTADOR
•
• •
Imaginemos que un buen día, ante tus ojos, tienes una maravillosa máquina que la gente llama Computador. Lo miras con cautela, ¿morderá?, y lo primero que tus ojos observan, es que está compuesto de varias partes. Una de ellas, de verdad, es muy similar al televisor de la sala de estar, y te preguntas ¿podré ver la película que pasan a las 10.00 PM?. Otra de esas partes nos recuerda a las máquinas de escribir de nuestra infancia, ¿le podré mandar una carta a mi abuelita? , ¿y por dónde inserto el papel?, mmm... Sin embargo, en un Computador “normal", suele haber algo más, algo que nos recuerda 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 la revoltura de cables existente, podemos ver unas plaquitas muy finas. Un consejo: no las rompas. Tienes ante ti, al cerebro pensante de la máquina (es UN DECIR) y a todos sus súbditos. Entonces, como eres una persona emprendedora, te preguntas, "¿y cómo demonios le convenzo para que pase la película de las 10.00 PM?", "¿sabrá hacer “zapping”?", "¿podremos ser amigos?". Esto último depende de ti, y sólo de ti. Porque, Lo primero que tienes que tener pero MUY claro es que la máquina hará única y exclusivamente lo que TU le DIGAS. Lo segundo, es saber que tu máquina tiene limitaciones, lo siento mucho, pero no tiene brazos y dudo mucho que pueda hacerte la comida o la cama . Esto, debido a que está diseñada para unas tareas concretas. "¡Pero bueno, ¿puedo o no puedo ver la película de las 10.00 PM?! ". 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 es, ¿y cuál es el idioma de la máquina? ("¿Sabrá ruso? y mira cómo se lo tenía calladito!!!!"). Si eres despierto, habrás observado con especial atención cuando he dicho que hay un revoltura de cables en alguna parte. No importa tanto lo de la parte, como si importa lo de los cables. Bien, veamos: CABLES ¿Y yo para qué quiero un cable? Bueno, sí puedo estrangular al perro de la vecina, sí, pero eso no me ayuda a saber cómo hablarle a mi computador, 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. mmmm... CORRIENTE, sí, vamos bien. ¿Y qué le pasa a la corriente? ("ah, yo no sé..."). Pues que, como el dinero, *está* o *no está*. Bien!!!, vamos progresando. Si te fijas más aún, en esas placas que te he sugerido que no rompas, hay dibujitos “como en las películas futuristas” con un montón de líneas, y hay como una cajita negra grandota con un montón de patas ("¡Ah, por Dios, una cucaracha!, ¡Traingáme el insecticida!") ¡Ohh, pero si de esas patas 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 cucaracha está preparada para entender un idioma, no tan rico como el castellano (o el chileno) que le permite hacer sus cuentas, encargarle a alguien que las haga por ella ("¿tendrá una calculadora?"), y, lo más importante, por medio de esos cables, dar órdenes a diestra y siniestra 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 da vuelta cuando lo llamas. Sus colaboradores se encargan, si es que están todos lo cables enchufados, cosa que suponemos, de hacer cuentas, de enviar señales de vídeo a esa cosa "igualita al televisor de la sala de estar" para que puedas ver desde unas tristes letras blancas en fondo negro, aunque tienen su encanto, a la última novedad en 3D con muchos colores, 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 cómo!!!, ¿y para esto tanto rollo con lenguajes de programación, con la historia de la programación, con el un curso de programación, y más encima I, II y III?"). ¿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 si los combinas (00010101, 01000100). Ah, ahí has dado con la clave de todo: 0 y 1 son "el ALFABETO", y todas las formas en se puedan combinar 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 computador. 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".
2
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" por pantalla, resulta demasiado complicado. ¿Por qué? Pues porque requiere conocer al computador como a uno mismo, y si ni siquiera uno se conoce bien, que puedo esperar de conocer al computador. 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 (Para variar....!!!!). 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, uy que 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, si quiero, hoy Juana tiene un melón pero mañana le pondré ciruelas, pero NO podré cambiar lo que puede contener: sólo 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 (REALES), 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 definir o declarar las variables al principio de un algoritmo o programa. Definir o declarar no es más que decir "mira, yo quiero tres variables enteras, y quiero que una se llame Pepa, otra Juana y otra Yoli". A partir de este momento, podrás meter un -4 en Pepa, un 2 en Yoli, y hacer una suma que guardarás en Juana: Juana= Pepi+Yoli. El resultado para Juana 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 resolverás el problema, es lo que se llama ALGORITMO, y es lo que vamos a ver en el transcurso del curso (Salió verso!!!). 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. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Elijo una película de las de mi colección. Compruebo SI la TV y vídeo están conectados a la red. SI la TV está apagada, la enciendo, SI NO, pues no. Y lo mismo con el vídeo. Abro el estuche de la película. Saco la película de su estuche. Introduzco la película en el vídeo. Dejo el estuche sobre el vídeo. SI la TV no está en el canal adecuado, la cambio, SI NO, pues no. Tomo los Controles Remotos (el del TV y el del vídeo). Me pongo cómodo. Presiono PLAY en el Control remoto del vídeo.
¿Apuesto a qué no se les había ocurrido? Fíjense 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. (Es decir termina en algún momento) 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 se entiende la idea. Notar también que se ha escrito en mayúsculas las palabras SI y SI NO. Como puedes imaginar, forman parte de la manera en que se escriben algoritmos. Por ahora, los invito a que realices algoritmos de situaciones cotidianas de vuestra vida..... y luego a solucionar los problemas que te dan en la Asignatura..... A soltar la mano!!! 2
2