Bucles infinitos
No me he cansado de repetir (todavía) que los programas informáticos no son otra cosa que conjuntos de instrucciones que el ordenador "comprende" y ejecuta secuencialmente. Por ejemplo, imaginemos un programa formado por tres instrucciones que se leerán en orden (primero la 1, luego la 2 y por último la 3):
- Pide al usuario que escriba su nombre
- Escribe en la impresora el nombre del usuario
- Fin
Todo esto son mecanismos que nos permiten alterar de alguna manera el flujo del programa. Imaginemos que quisieramos pedir e imprimir el nombre de 3 usuarios con el programa anterior. Una forma sería:
- Pide al usuario que escriba su nombre
- Escribe en la impresora el nombre del usuario
- Pide al usuario que escriba su nombre
- Escribe en la impresora el nombre del usuario
- Pide al usuario que escriba su nombre
- Escribe en la impresora el nombre del usuario
- Fin
- Repite las siguientes instrucciones 3 veces:
- Pide al usuario que escriba su nombre
- Escribe en la impresora el nombre del usuario
- Fin
Y también puede ser que la condición que seleccionemos se verifique siempre... con lo cual el ordenador quedará permanentemente ejecutando las instrucciones que compongan el bucle. Por ejemplo, el bucle...
- Repite la siguiente instrucción siempre que 1 sea igual a 1
- No hagas nada
Tal vez piense que evitarlos debe de ser trivial, pero rara vez se sabe de antemano cuántas veces se ejecutará un bucle, y puede ser que suceda algo que no hayamos previsto en el diseño que desencadene una secuencia sin fin... tiene su cosa, no crea...
Bien, ahora imagine un programa con esta pinta:
- Ejecuta la instrucción número 1
Por cierto, que tiene usted mucha suerte: si fuera un ordenador jamás habría llegado a leer esto, sino que se habría quedado eternamente leyendo el bucle anterior... ¿Por qué? Bien, se trata de algo que veremos en la próxima entrada :-P
5 Comentarios:
Pocas veces me he reido tanto como con el chiste aquel del programador muerto en la ducha con un bote de champú en las manos que decía:
- Lavar
- Enjuagar
- Repetir
:D
¡jajajajaja! ¡no me acordaba! xD me encantan estas cosas :-P
Estos bucles son los responsables de que a veces una videconsola se quede "pollo"? Que se cuelge vamos.
Con ese ultimo parrafo me he acordado de la pelicula "colega, donde esta mi coche?" y me he reido bastante, en la escena de los tatuajes: "Ei, que pone en el mio? -Tio, y en el mio? -Mola, pero que pone en el mio? -Tio, y en el mio? -MOlA!, pero que pone en el mio?..." xD
Oh, y fuiste tu quien puso el video del algoritmo japo? De unos japos haciendo lo mismo, creo que del programa pitagara noseke.
Yo tengo un par de colegas que tenian problemas con entender lo que hace un bucle... o algo asi...
espero el proximo articulo! =P
Hola a todos y gracias por los comentarios,
Flup: Las consolas pueden colgarse por (casi) los mismos motivos que los ordenadores (los explico en éste artículo). Por otro lado, y sin ser un entendido en el tema, la causa más frecuente de que las consolas se queden bloqueadas suele deberse a problemas físicos: lentes sucias, discos estropeados y deterioro de los componentes, por ser aparatos sometidos a un intenso desgaste.
Y de lo último que mencionas no tengo ni idea :-P Pero si encuentras tal vídeo no dudes en enviar el link en un comentario o a través de la dirección del blog.
Arth: No es lo mismo un bucle que un bucle infinito: el primero es una estrategia habitual en programación, mientras que el segundo es un fallo de las aplicaciones. Partiendo de esa base, el problema que explicas se debe probablemente a un archivo o un componente de una web que ha sido accidentalmente borrado o dañado. El mensaje informando del error está previsto para que los diseñadores de la web lo arreglen: está dirigido a los autores o a los usuarios, pero por una falta de previsión en el diseño de la tecnología se presenta a los usuarios. En efecto, tú no tienes nada que depurar... simplemente la web tiene un fallo.
De todos modos para consultas generales y no del todo relacionadas con el contenido del post, puede ser una buena idea utilizar el correo electrónico: así garantizarás que tu duda sea resuelta adecuadamente en el consultorio SF.
¡Saludos y gracias a todos!
Recuerda que nos hemos mudado a nosololinux.com
<< Home