C/Visual C - ciclo infinito

 
Vista:

ciclo infinito

Publicado por Wilmer (1 intervención) el 27/06/2013 07:20:42
Hola en este código en c quiero hacer un ciclo infinito pero al ejecutarlo no me imprime el valor que corresponde a la variable x, sino que me imprime el numero 0, les agradeceria si alguien sabe el por que de esto

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
  int x = 2;
  for(;;){
     printf("Ciclo Infinito\n%d\n", x);
     x*=500;
  }
  system("PAUSE");
  return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

ciclo infinito

Publicado por xve (24 intervenciones) el 27/06/2013 07:59:59
Hola Wilmer, te da 0, porque es un entero y en seguida se pasa del limite del entero...
prueba este código... utiliza un valor long, y limita su salida a 40 ciclos... veas que a partir del 30+/- se pasa del limite del long:
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
  long x = 2;
  int i;
  for(i=0;i<40;++i){
     printf("Ciclo Infinito %lu \n", x);
     x*=500;
  }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

ciclo infinito

Publicado por jordi (7 intervenciones) el 27/06/2013 11:16:06
Que se supone que singnifica for(;;) ??
a tanta abreviacion no llego xD
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

ciclo infinito

Publicado por xve (24 intervenciones) el 27/06/2013 13:34:33
for(;;) es un bucle infinito, que no termina nunca hasta que no encuentre un break;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ciclo infinito

Publicado por Chema (234 intervenciones) el 27/06/2013 18:28:26
¿Me pierdo algo ? ¿Qué son los ciclos? en Ansi C.
Yo conozco bucles, Iteraciones, y he visto algún triciclo en el circo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil

ciclo infinito

Publicado por jordi (7 intervenciones) el 01/07/2013 19:11:20
Digamos que el bucle, es para decir, corre tal codigo tantas veces, pues cada vez que se corre el codigo del bucle es un ciclo, por ejemplo, for (i=0, i<=10, i++) seria un bucle de 10 ciclos.
Aunque la verdad, yo para hacer un ciclo infinito, uso siempre el bucle while, no le veo el sentido usar un bucle for que se supone que se usa para limitar el numero de ciclos a un numero en concreto xD.
while(true)
{
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ciclo infinito

Publicado por Chema (234 intervenciones) el 01/07/2013 23:22:38
Un ciclo se caracteriza por volver al estado inicial, E.g Una rueda, Un bucle no vuelve al estado inicial.
While(1) o for(;;) siempre deben tener una condición de salida. por lo tanto no son ciclos.
Tampoco son ciclos las iteraciones que se producen dentro del bucle no tiene como objetivo volver a la misma condición inicial,por lo tanto no son ciclos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaac Daniel

ciclo infinito

Publicado por Isaac Daniel (4 intervenciones) el 03/07/2013 23:46:56
Saludos

Sr. Chema.

En parte tiene razón, pero si esta bien dicho que sea ciclo. Como dice "Un ciclo se caracteriza por volver al estado inicial", pero no es cierto que siempre tenga una condición de salida.

Ejemplo: El FOR infinito [for (;;)] (que es el expuesto en este problema) no sale si no encuentra un break

Se les dice ciclos por que vuelven a ejecutar la sentencia que esta dentro de la instrucción, entonces sí vuelven a su estado inicial (desde ese punto de vista)

Aunque seria mejor usar el termino bucle para estos casos, no es un error decir que es un ciclo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ciclo infinito

Publicado por Chema (234 intervenciones) el 04/07/2013 18:03:51
Estimado Isaac.

Un ciclo perfecto sin condición de salida es un BUG.
Si no es cíclico perfecto no es un ciclo.

En todo caso mas adecuado sería denominar a un ciclo ,ciclo_bug.
Es muy importante denominarr los elementos por el nombre que mejor represente la acción que desarrolla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaac Daniel

ciclo infinito

Publicado por Isaac Daniel (4 intervenciones) el 05/07/2013 01:11:53
Saludos

Tiene razón, pero son cosas que uno como desarrollador va conociendo conforme a la experiencia. En la escuela te lo enseñan como ciclos, y no es hasta que uno aprende a utilizarlos adecuadamente cuando nos damos tiempo que algunos conceptos están mal empleados.

Como dice si fuese 100% ciclo, siempre estaria haciendo lo mismo. La condición del FOR infinito para que salga aunque no esta declarada directamente es el BREAK, para el while y do while es la condicion que le asignes en "While (1)" por ejemplo.

Mas bien creo que se le llamo ciclo, por que ejecutan las instrucciones cuantas veces sea necesario para el programador con el argumento de salida establecido para finalizar dicha acción. estoy de acuerdo que si o se define es un BUG aparte gasto de memoria.

Pasa como con los apuntadores, array,..etc todo mundo se confunde al momento de utilizarlos adecuadamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ciclo infinito

Publicado por Chema (234 intervenciones) el 05/07/2013 13:34:17
La condición de salida puede estar fuera de while/for Eg una señal del sistema.

Programar es fácil, hacerlo bien es muy difícil. Si no tendemos a la excelencia cuando denominados los elementos podemos dar por buenas expresiones del tipo.

El arreglo de arreglos no hace la sumatoria del ciclo exitosamente. porque el apuntador no apunta con éxito al primer arreglo del ciclo.

¿Qué traductor se usa para descifrar la frase?.

Difícil es C para complicarlo más todavía.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar