Referencias de productos:

Cámaras digitales Kodak Concord BenQ Sony
Cámaras Digitales Kodak


Descarga la lista de cámaras

Tarjetas de video GeForce ATI SIS MSI NVidia
Tarjetas de Video


Descarga lista de Tarjetas

Monitores AOC ViewSonic Biswal
Monitores

Descarga lista de Monitores

Precios actualizados a














Tutorial 0.0 de programación ::
Un programa es una serie de instrucciones lógicamente combinadas que le dicen a la computadora que hacer para luego obtener el resultado esperado.

La base de todos los lenguajes de programación está en como pensamos las cosas los seres humanos, así los programas pueden tomar decisiones, hacer muchas veces una tarea, hacer cálculos, etc.

Un primer ejemplo es cuando una persona está en frente a un semáforo, y tiene que decidir si avanza o se queda parado dependiendo del color de la luz del semáforo. Claro, como el pensamiento es mínimo a veces ni siquiera registramos que estamos ante una situación de decisión, y como lo hacemos millones de veces no le prestamos importancia, pero las computadoras son tontas, hay que decirles las cosas que queremos en extremo detalle, si no, el programa no funcionará de la manera esperada. Volviendo al semáforo, un posible pensamiento es:

SI la luz es verde ENTONCES, avanzo
SI NO, me quedo quieto.

Cuando hacemos un programa, esta situación es muy común, la de tener que decidir entre varias opciones para luego llevar a cabo determinada acción. Por lo común de esta situación todos los lenguajes de programación ofrecen una forma simple y muy parecida al lenguaje natural para resolverla, y como los lenguajes en su mayoría están hechos en ingles, las sentencias del lenguaje van a ser parecidas al lenguaje natural pero en ingles, así la situación del semáforo, se resuelve por los lenguajes con la palabra IF (SI condicional en ingles), también hay sentencias para ENTONCES (THEN en algunos lenguajes) y SI NO ( ELSE ), concretamente:


En lenguaje Pascal:

IF ( la luz es verde ) THEN avanzo
ELSE me quedo quieto;


En lenguaje C/C++:

IF ( la luz es verde ) { avanzo; }
ELSE { me quedo quieto; }


Observemos que a lo que se le aplica el IF es una frase que es verdadera o falsa, en realidad nunca decimos "SI ¿que hora es?" o "SI el teléfono", tanto "¿qué hora es?" y "el teléfono" son frases que no tienen valor de verdadero o falso, también se llaman sentencias lógicas o expresiones Booleanas, más adelante veremos que son y como se usan las expresiones Booleanas, por ahora sabemos que son verdaderas o falsas.

Otra vez en el semáforo, nosotros miramos el semáforo una vez y nos hacemos la pregunta del color de la luz unas sola vez y luego cerramos los ojos, estamos viendo constantemente (o por lo menos cada tanto) al semáforo para ver si cambió de luz, para poder cruzar o para apurarme si estoy en el medio de la calle y cambia a rojo. Si solo hacemos una pregunta y la luz estaba roja podríamos no cruzar nunca!. El pensamiento que llevamos a cabo se puede expresar así:

(En el caso que la luz esté roja y no pueda cruzar)
MIENTRAS la luz está roja, espero (hasta que esté verde).
luego cruzo.


(En el caso que la luz esté verde, puedo cruzar)
MIENTRAS la luz está verde, doy un paso (digamos que camino paso a paso).
SI estoy en la calle ENTONCES me apuro (cambió la luz a roja).


Esta situación se ve en muchas cosas del mundo real, mientras pasa algo hago otra cosa, "mientras no me canse sigo corriendo", "mientras gane sigo apostando", "mientras no engorde como torta", etc. Esta situación es también muy común en la programación, por lo tanto también tiene una solución dada por los lenguajes para manejarla. Con el semáforo queda así:

Pascal:
WHILE (la luz está roja) DO espero;
cruzo la calle;

C/C++:
WHILE (la luz está roja) { espero; }
cruzo la calle;

Pascal:
WHILE (la luz está verde) DO doy un paso;
IF (estoy en la calle) THEN me apuro;

C/C++:
WHILE (la luz está verde) { doy un paso; }
IF (estoy en la calle) { me apuro; }


(while = mientras, DO = hacer)

Podemos observar que el WHILE también es aplicado sobre una frase que es verdadera o falsa, como el IF. Se dice que WHILE es un bucle o loop, ya que si la frase que evalúa da verdadero, la acción (esperar o dar un paso en este caso) se hace varias veces, una por cada vuelta del bucle.

En le caso que no tenga tiempo para esperar si el semáforo está en rojo, solo quiero esperar 10 segundos en él para ver si cambia, si lo hace cruzo, si no tomo otra dirección (sigo caminando).

En lenguaje natural sería:

PARA los segundos, empiezo a contar desde cero, si es menor que 10 espero y cuento el siguiente segundo, si no sigo caminando en otra dirección.


Veamos como queda en un lenguaje de programación, es un poco más difícil que lo anterior:

Pascal:
FOR segundos := 1 to 10 DO (* Cuento los segundos de 1 a 10 *)
BEGIN
   espero; (* Espera 1 segundo *)
END;
sigo caminando en otra dirección;

C/C++:
FOR (segundos=1; segundos<=10; segundos++) {
   espero; // Espera 1 segundo
}
sigo caminando en otra dirección;


Podemos notar que en C/C++ la sentencia FOR (para) es mucho más complicada de entender que la de Pascal, lo que significa es que para los segundos comenzando desde uno se hace "espero", luego que termina esa acción se suma uno a los segundos (segundos++ equivale a segundos = segundos + 1), y por último se fija si el nuevo valor de segundos es menor o igual que 10, vemos que en cada vuelta se suma 1 así que en 10 vueltas va a terminar. Vuelta equivale a bucle o loop, como el WHILE, el FOR es un bucle o loop FOR.

Observemos también que el ejemplo no pregunta si la luz cambió dentro de los 10 segundos, se hizo a propósito para simplificar, luego veremos un ejemplo completo.

Paso a paso, el BEGIN de Pascal es equivalente al "{" de C/C++ y el END equivale al "}" de C/C++, estas sentencias indican donde comienza y termina el área que es afectada por el FOR, en los ejemplos anteriores agregué a propósito los "{ }" en los IF de C/C++, ya que tanto en C/C++ como en Pascal sirven para decir lo que es afectado por todas las sentencias IF, WHILE, FOR y las que veremos luego.

Por ahora vimos lo más básico de la programación pensando en lenguaje natural, más adelante veremos más cosas de los lenguajes y cuando tengamos una base comenzaremos a programar.

Pablo Pazos
25/04/2005





Novedades ::
~ Empezamos el año con nuevo diseño.

~ Ahora hay listas de precios divididas por productos con todas la información necesaria para orientarte según tus necesidades.

~ Seguimos agregando programas interesantes a nuestros Downloads!.

~ Se completó el área de desarrollo de software con información sobre el servicio, tutoriales, proyectos actuales y muestras de trabajo para descargar.

Estamos en contacto ::
Para recibir ofertas e información sobre servicios y actuaizaciones de nuestra página mandanos tu E-mail:

 E-mail:





Estadísticas