Sobre bucles
2 participantes
Página 1 de 1.
Sobre bucles
Bueno he aquí mi primera aportación al foro de programación, una pequeña lección sobre bucles con el que podreis hacer algunas monerías para ir empezando en programación. El lenguaje que yo utilizo es una especie de híbrido entre C y C++, con el fin de evitar los punteros y la programación dirigida a objetos, y el compilador el popular G++ de Linux (mas concretamente Ubuntu).
Bueno lo primero deciros que hay dos tipos de bucles: Con condición inicial y con condición final.
Los primeros evalúan la condición de permanencia en el bucle primero, y luego ejecutan las instrucciones del bucle. Cuando terminan de ejecutar el cuerpo del bucle, vuelven a evaluar la condición y si es favorable ejecutarán otra vez el bucle y si no pasarán a lo siguiente. Estos dos bucles son el bucle FOR y el bucle WHILE.
La sintaxis del bucle FOR es:
for(i=0;i<=z;i++){ //i=0, inicialización del contador del bucle
cuerpo del bucle; //i<=<, el bucle se ejecutará siempre y cuando i sea menor o igual que z
}//i++: Cuando finaliza la ejecución del bucle, el contador i incrementa en 1 su valor.
Sintaxis del bucle WHILE: /*cond=condición de permanencia en el bucle. El bucle se
while(cond){ ejecutará mientras esta condición sea true*/
cuerpo;
}
Estos dos bucles, al comprobar la condición de permanencia al principio es posible que no se lleguen a ejecutar nunca, porque la condición de permanencia sea false al principio.
Bucles con condición final:
En estos bucles, la condición de permanencia es evaluada al final de la primera iteración, es decir, que como mínimo se ejecutan una vez. Un bucle de este tipo es el bucle DO WHILE, que tiene la siguiente sintaxis:
do{ /*Aquí, primero se ejecuta el cuerpo y luego se evalúa la condición
cuerpo del bucle; de permanencia. Igual que antes, cuando la condición de permanencia
}while(cond); sea false, el compilador saldrá del bucle y pasará a lo siguiente.*/
MUCHO OJO: Un bucle infinito es un peligro al que nos enfrentamos por despiste, que puede hacer que el programa pete y en códigos complejos es un poco jodio de encontrar el fallo. Ejemplo de bucle infinito:
for(i=1;i>0;i++){
cout<<"Hola, mundo cruel e injusto"<<endl;
}
Este bucle se ejecutará infinitamente, es decir, hasta que haya un desbordamiento de memoria o hasta que pulsemos ctrl+C (Recomendado), ya que el contador i se inicializa a 0 y luego en cada iteración va aumentando en uno su valor, por lo que siempre será mayor que cero y la condición de permanencia siempre se cumplirá. Cuidado con esto.
Bueno esto es solo una pequeña introducción al tema de bucles. Me ha parecido importante postear esto ya que los bucles son muy utilizados en cualquier programa y ofrecen muchas posibilidades (Muchísimas más de las que podría poner aquí). Si alguien tiene alguna duda o sugerencia de ampliación sobre esto que me lo diga y le intentaré contestar.
Espero que esto os sirva de algo.
Bueno lo primero deciros que hay dos tipos de bucles: Con condición inicial y con condición final.
Los primeros evalúan la condición de permanencia en el bucle primero, y luego ejecutan las instrucciones del bucle. Cuando terminan de ejecutar el cuerpo del bucle, vuelven a evaluar la condición y si es favorable ejecutarán otra vez el bucle y si no pasarán a lo siguiente. Estos dos bucles son el bucle FOR y el bucle WHILE.
La sintaxis del bucle FOR es:
for(i=0;i<=z;i++){ //i=0, inicialización del contador del bucle
cuerpo del bucle; //i<=<, el bucle se ejecutará siempre y cuando i sea menor o igual que z
}//i++: Cuando finaliza la ejecución del bucle, el contador i incrementa en 1 su valor.
Sintaxis del bucle WHILE: /*cond=condición de permanencia en el bucle. El bucle se
while(cond){ ejecutará mientras esta condición sea true*/
cuerpo;
}
Estos dos bucles, al comprobar la condición de permanencia al principio es posible que no se lleguen a ejecutar nunca, porque la condición de permanencia sea false al principio.
Bucles con condición final:
En estos bucles, la condición de permanencia es evaluada al final de la primera iteración, es decir, que como mínimo se ejecutan una vez. Un bucle de este tipo es el bucle DO WHILE, que tiene la siguiente sintaxis:
do{ /*Aquí, primero se ejecuta el cuerpo y luego se evalúa la condición
cuerpo del bucle; de permanencia. Igual que antes, cuando la condición de permanencia
}while(cond); sea false, el compilador saldrá del bucle y pasará a lo siguiente.*/
MUCHO OJO: Un bucle infinito es un peligro al que nos enfrentamos por despiste, que puede hacer que el programa pete y en códigos complejos es un poco jodio de encontrar el fallo. Ejemplo de bucle infinito:
for(i=1;i>0;i++){
cout<<"Hola, mundo cruel e injusto"<<endl;
}
Este bucle se ejecutará infinitamente, es decir, hasta que haya un desbordamiento de memoria o hasta que pulsemos ctrl+C (Recomendado), ya que el contador i se inicializa a 0 y luego en cada iteración va aumentando en uno su valor, por lo que siempre será mayor que cero y la condición de permanencia siempre se cumplirá. Cuidado con esto.
Bueno esto es solo una pequeña introducción al tema de bucles. Me ha parecido importante postear esto ya que los bucles son muy utilizados en cualquier programa y ofrecen muchas posibilidades (Muchísimas más de las que podría poner aquí). Si alguien tiene alguna duda o sugerencia de ampliación sobre esto que me lo diga y le intentaré contestar.
Espero que esto os sirva de algo.
real_94- Mensajes : 48
Fecha de inscripción : 31/01/2010
Edad : 33
Re: Sobre bucles
Bueno, cada uno tiene su pequeña idea de interpretar los bucles xD. Lo paso a C, porque esto es C#.
Re: Sobre bucles
Como que interpretar los bucles? Aver jaime ke esto no es un poema ke no tiene vuelta de hoja jejeje. Lo que no se es si habra alguna discrepancia en la sintaxis ke enseñen en otros sitios lo ke no se, pero bueno asi lo se yo ke no es poco jejeje
real_94- Mensajes : 48
Fecha de inscripción : 31/01/2010
Edad : 33
Re: Sobre bucles
A eso me refiero, a que cada profesor lo explica de una manera, y si quieres que se entere la gente cuanto más llano mejor xD (incluyendome a mí por supuesto)
Error mío
Vale perdonad mi ignorancia, por eso no lo entendía demasiado. Esto efectivamente es C++ y no C#, así que lo cambio de nuevo a C++. Vaya cachondeo esto de la programación.
Re: Sobre bucles
ayyy gañan ke era c++++++++++++++++
real_94- Mensajes : 48
Fecha de inscripción : 31/01/2010
Edad : 33
Bucles bucles bucles bucles bucles bucles bucles bucles.....
Bueno a ver si vamos animando el foro un pokejo ke así no hay manera. Lanzo una question facililla para ver si alguien se anima. ¿Quién puede decirme cómo hacer un bucle FOR utilizando un bucle WHILE? Es muy facil y, ya que estamos, Jaime no la contestes enseguida a ver si alguien más la ve y se anima, aunque en el post de programación sólo hablamos tu y yo jejeje.
Dentro de un par de días daré la respuesta si es que nadie la ha dado ya para entonces.
Dentro de un par de días daré la respuesta si es que nadie la ha dado ya para entonces.
real_94- Mensajes : 48
Fecha de inscripción : 31/01/2010
Edad : 33
Re: Sobre bucles
Ante la avalancha de soluciones dadas al problema planteado aquí dejo la solución para que la compareís con la que, seguramente todos los que estais registrados en el foro, habreis implementado:
int i=0; //Definición e inicialización de la variable de control del bucle.
while(i<=5){//Controlador del bucle
//Cuerpo de intrucciones del bucle, que puede ser este u otro cualquiera jejeje
cout<<"Este foro no lo lee nadie, y menos el post de programación"<<endl;
i++ //aumento del valor de la variable i en 1
/*También se podriá poner
i=i+1 ó incluso i+=1
*/
}
int i=0; //Definición e inicialización de la variable de control del bucle.
while(i<=5){//Controlador del bucle
//Cuerpo de intrucciones del bucle, que puede ser este u otro cualquiera jejeje
cout<<"Este foro no lo lee nadie, y menos el post de programación"<<endl;
i++ //aumento del valor de la variable i en 1
/*También se podriá poner
i=i+1 ó incluso i+=1
*/
}
real_94- Mensajes : 48
Fecha de inscripción : 31/01/2010
Edad : 33
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|