Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: TheNorvamp en 23 Septiembre 2016, 08:47 am



Título: Ayuda con este pequeño bucle
Publicado por: TheNorvamp en 23 Septiembre 2016, 08:47 am
Hola a todos, estoy empezando a estudiar programación, y en una de las clases hicimos un programa en el que usamos este bucle, pero ahora no sé como terminarlo correctamente:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. int main()
  5. {
  6.      printf("\n\t TAREA\n");
  7.      color:
  8.      Sleep(1000);
  9.      system ("color e0");
  10.      Sleep(1000);
  11.      system("color d0");
  12.      Sleep(1000);
  13.      system("color c0");
  14.      Sleep(1000);
  15.      system("color 20");
  16.      Sleep(1000);
  17.      system("color b0");
  18.      goto color;
  19. }
  20.  

Cuando empiezan a cambiar los colores, no sé cómo hacer que se detenga el proceso, sólo se queda en un bucle, pero intenté hacerlo con do-while de esta manera:
Código
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <windows.h>
  5. int main()
  6. {
  7.      do
  8.      {
  9.            Sleep(1000);
  10.            system ("color e0");
  11.            Sleep(1000);
  12.            system("color d0");
  13.            Sleep(1000);
  14.            system("color c0");
  15.            Sleep(1000);
  16.            system("color 20");
  17.            Sleep(1000);
  18.            system("color b0");
  19.      }
  20.      while( !kbhit() );
  21.      system([b]"PAUSE"[/b]);
  22. }
  23.  

Y funciona hasta cierto punto, presiono una tecla, pero debo esperar a que el ciclo termine completamente, o sea hasta que llegue al último system("color") para que se finalice, y lo que quiero es que en cuanto presione la tecla se detenga automáticamente, sin esperar que el ciclo llegue a la última línea.
Espero puedan ayudarme, gracias.


Título: Re: Ayuda con este pequeño bucle
Publicado por: MAFUS en 23 Septiembre 2016, 11:50 am
Has visto arrays?


Título: Re: Ayuda con este pequeño bucle
Publicado por: dato000 en 23 Septiembre 2016, 16:13 pm
Lo que necesita es declarar una variable q capture esa tecla que permita romper ese ciclo una vez que ha cumplido todo lo que se necesita, algo así, no tengo el compilador de c++ conmigo ahora:

Código
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <windows.h>
  5. int main()
  6. {
  7.      char tecla;
  8.  
  9.      do
  10.      {
  11.            Sleep(1000);
  12.            system ("color e0");
  13.            Sleep(1000);
  14.            system("color d0");
  15.            Sleep(1000);
  16.            system("color c0");
  17.            Sleep(1000);
  18.            system("color 20");
  19.            Sleep(1000);
  20.            system("color b0");
  21.  
  22.            printf("\n Desea continuar el bucle?? (S/N): ");
  23.            scanf ("%c",&tecla);
  24.            if(tecla == 'N' || tecla == 'n')
  25.            {
  26.                break;
  27.            }
  28.      }
  29.      while( tecla!= 'N'  || tecla != 'n' );
  30.  
  31.      return 0;
  32. }
  33.  


Seria cuestión de probar.


Título: Re: Ayuda con este pequeño bucle
Publicado por: MAFUS en 23 Septiembre 2016, 19:44 pm
Crea un array de cadenas con cada color.
Crea una variable índice con valor 0.
Bucle mientras no se haya pulsado una tecla:
    Muestra el contenido de la posición índice.
    Suma 1 al índice.
    ¿Índice está fuera del array?
        Dar valor 0 a índice.
Fin del bucle.