(Inicio) (Artículos) (Charlas) (Documentos) (Programas) (Chorradas) (Otros)

CUPCE (CUrso de Programación por Correspondencia Electrónica)
 Ficha técnica
Autor: Esteban Manchado Velázquez
Fecha: Mayo de 1999
Tema: Programación

Introducción

Las computadoras interpretan al pie de la letra TODO lo que se les dice (desde el punto de vista del programador, al menos), _aunque_no_tenga_el_más_mínimo_sentido_. Esto, con frecuencia, se convierte en una desventaja, porque da lugar a muchos errores. Pero cuando uno tiene experiencia, puede llegar a ser una ventaja, porque cualquier idea que se nos ocurra la podemos reflejar en un programa, aunque parezca no tener sentido. Esta característica hay que tenerla en cuenta *siempre*: todas las órdenes que demos a una computadora han de ser literales, sin posibilidad de dobles sentidos ni interpretación por parte de la máquina.

Y aquí vienen en nuestra ayuda los algoritmos, que son series de pasos a dar para realizar una acción. De hecho, los programas no son más que descripciones de un proceso (algoritmos) expresadas de una manera que la máquina pueda entender. Simplificando, diremos que en realidad la computadora entiende muchas formas de describir los pasos que ha de dar. A todas estas formas las llamaremos lenguajes de programación. En este curso nos centraremos en un lenguaje en particular (uno didáctico, llamado simplemente "lenguaje algorítmico"), aunque la mayoría de los conceptos son directa o indirectamente aplicables a los demás.

Variables

En cualquier tratamiento de información necesitamos recordar resultados de operaciones o guardar datos de algún tipo. Cada dato que queramos "guardar" o "recordar" tendrá que permanecer en algún "depósito" con un nombre que nos permita identificarlo sin ambigüedades. En programación, estos lugares se llaman "variables", por analogía con las matemáticas (la informática es casi matemáticas aplicadas a las máquinas).

Estas variables son datos de un tipo concreto (números enteros, números con decimales, letras, ristras de caracteres, etc. [1]) etiquetados con un nombre. Así, si guardamos un valor en una variable, siempre que la consultemos tendrá el último valor que le asignamos. Pero una vez volvamos a modificarla, *perderá* el valor anterior, que será imposible de recuperar, y quedará con el valor nuevo.

[1] Aunque algunos lenguajes de programación no hacen estas distinciones.

Coherencia (o sobre la cordura de las computadoras)

Bajo este curioso título quiero hacer una puntualización importante: cuando se programa, uno siempre da algo "por sentado". Las instrucciones que damos a la máquina por lo general se dan "en un contexto", pensando que se sabe utilizar el programa. Si nos cambian las especificaciones o no nos dan las entradas esperadas, el programa se comportará aleatoriamente. A estas especificaciones las llamamos condiciones, que es lo que se tiene que cumplir para que el programa funcione correctamente.

Por ejemplo, supongamos que escribimos un programa que cuente hacia adelante desde 1 hasta el número que nos digan. La condición obvia, por tanto, sería que la "entrada" al programa sea un número mayor que uno. Si el número que nos dan es "hola, pepe" o -1, el programa actuará de forma aleatoria, porque no se han cumplido las condiciones (que ni "hola, pepe" ni -1 son números mayores que uno). Esto *no* significa en absoluto que no debamos comprobar que se cumplen las condiciones. Muy al contrario, por lo general conviene comprobarlas y actuar adecuadamente.

Saber esto (que el comportamiento de la computadora es aleatorio si no se cumplen las condiciones) es muy útil no sólo al programar, sino al utilizar en general la computadora.

Primeros pasos en lenguaje algorítmico (introducción)

Para describir un programa (una sucesión de pasos que dar para ejecutar una acción) necesitamos una serie de convenciones que entiendan tanto el ordenador [1] como el programador. De hecho, toda la informática se basa en éstas. Esta serie de convenciones forman lo que llamamos un lenguaje de programación (hay muchos para elegir). Para empezar, aprenderemos uno llamado "lenguaje algorítmico", que sólo se utiliza con fines didácticos.

Ya que hemos estado hablando de variables hace poco, aprenderemos cómo asignar valores a las variables, a declararlas (informar al programa de que vamos a utilizarlas) y a consultarlas.

En el capítulo de las variables dijimos que éstas eran de un tipo determinado. Por ahora, sólo manejaremos dos tipos de datos: los enteros (números enteros) y las ristras de caracteres (sucesiones de caracteres que van juntos y en un orden determinado). Éstas se utilizan para guardar "mensajes", como por ejemplo "hola" o "soy una ristra". Es importante notar que los espacios también cuentan, son caracteres, así que "hola" es una ristra de 4 caracteres, y "soy una ristra" tiene 14, no 12. Los números enteros pueden guardar cualquier valor numérico, siempre que no tenga decimales. En la práctica, estos números tienen un mínimo número y un máximo número representables, y, como siempre, si intentamos guardar un número mayor que el máximo o menor que el mínimo, se guardará un número cualquiera [2].

[1] Realmente el ordenador no comprende directamente los lenguajes de programación que utilizamos, es una abstracción.

[2] En realidad no es aleatorio, pero no será el que nosotros queramos. Para explicar esto, habría que explicar cómo representan los ordenadores los números, y no vale la pena.


(Inicio) (Artículos) (Charlas) (Documentos) (Programas) (Chorradas) (Otros)