/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

cadena en casacada urgente!!!!!

 
      Índice del Foro elrincondelc.com -> Acción requerida
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
krlox15



Registrado: 05 Dic 2005
Mensajes: 3

MensajePublicado: 05/12/2005 8:23 pm
Título: cadena en casacada urgente!!!!!

hola necesito que me ayuden con un super problema esque quiero un programa que capture una cadena y que esa cadena simule la caida en casacada de cada uno de los caracteres.[b][/b]
Volver arriba
macu



Registrado: 01 May 2005
Mensajes: 227
Ubicación: Galicia

MensajePublicado: 06/12/2005 3:25 am
Título:

Está hecho en dev-c++.

Código:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#define PANTALLA STD_OUTPUT_HANDLE
#define PAUSA 300

void gotoxy(int, int);

int main()
{
   char cadena[]="hola, k tal?";
   register int i, j;
   
   for(i=0; i<strlen(cadena); i++)
   {
      if(i)
          for(j=0; j<i; j++)
          {
             gotoxy(i, j);
             printf("%c\n", cadena[i]);
             Sleep(PAUSA);
             gotoxy(i, j);
             printf(" ");
         }
      printf("%c\n", cadena[i]);   
   }
   
    system("pause");
    return EXIT_SUCCESS;
}

void gotoxy(int x, int y)
{
    COORD pos;
   
   pos.X = y;
   pos.Y = x;
   
   SetConsoleCursorPosition(GetStdHandle(PANTALLA), pos);   
}
Volver arriba
macu



Registrado: 01 May 2005
Mensajes: 227
Ubicación: Galicia

MensajePublicado: 06/12/2005 9:34 am
Título:

He cambiado el codigo para que el efecto sea totalmente en cascada.

Código:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#define PANTALLA STD_OUTPUT_HANDLE
#define PAUSA 300

void gotoxy(int, int);

int main()
{
   char cadena[]="hola, k tal?";
   register int i, j;
   
   for(i=0; i<strlen(cadena); i++)
   {
      for(j=0; j<i; j++)
      {
         gotoxy(j, i);
         printf("%c", cadena[i]);
         Sleep(PAUSA);
         gotoxy(j-1, i);
         printf(" ");
      }
      
      if(i)
          gotoxy(j-1, i);
      printf("%c", cadena[i]);   
   }
   
    system("pause");
    return EXIT_SUCCESS;
}

void gotoxy(int x, int y)
{
    COORD pos;
   
   pos.X = y;
   pos.Y = x;
   
   SetConsoleCursorPosition(GetStdHandle(PANTALLA), pos);   
}
Volver arriba
candres



Registrado: 04 Oct 2005
Mensajes: 36

MensajePublicado: 06/12/2005 9:45 am
Título: ass

hola macu , mira me intereso este tema , y vi el programa y es muy bueno , pero no entiendo bien el proceso que haces , podrias por favor explicar el procedimiento? GRACIAS
Volver arriba
macu



Registrado: 01 May 2005
Mensajes: 227
Ubicación: Galicia

MensajePublicado: 06/12/2005 12:48 pm
Título:

Bien, explicaré la siguiente parte que es la única que puede resultar un poco confusa:

Código:

// 1.
for(i=0; i<strlen(cadena); i++)
   {
                // 2.
      for(j=0; j<i; j++)
      {
         gotoxy(j, i);
         printf("%c", cadena[i]);
         Sleep(PAUSA);
         gotoxy(j-1, i);
         printf(" ");
      }
      
      if(i)  // Este if sobraría
          gotoxy(j-1, i);
      printf("%c", cadena[i]);   
   }


1. Vamos a recorrer toda la cadena para visualizar las letras en forma de cascada.
2. Vamos a empezar a crear el efecto. Cada letra se situará desplazada una fila y una columna, hacia la derecha y abajo respectivamente.
Cada letra se irá visualizando desde la posición inicial (fila 0, columna X), donde X es será el número de letra, hasta la final, es decir, una fila más abajo y una columna más a la derecha.

El efecto cascada está creado puesto que se saca por pantalla la letra correspondiente, se hace una pausa, y se borra, este ciclo sigue hasta que llega a la posición final. Cuando salimos de este for, ponemos finalmente la letra correspondiente y pasamos a la siguiente.

Sé que no me explico muy bien, pero puedes mirar detenidamente el código poco a poco y llegar a entenderlo mejor.
Volver arriba
krlox15



Registrado: 05 Dic 2005
Mensajes: 3

MensajePublicado: 06/12/2005 8:26 pm
Título: gracias pero!!!!

gracias pero esque lo necesito para el compilador mas viejo de turbo c en el que las letras son todas amarillas y la pantalla es azul y ni siquiera utiliza el cursor todavia espero que me puedas ayudar me urge.
Volver arriba
      Índice del Foro elrincondelc.com -> Acción requerida
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com