Estás en: Inicio >> Foros >> Informática >> Programación
Programación /

[C/C++] simulacion en dev C++

Participa en el tema [C/C++] simulacion en dev C++ en el foro Programación.
holas amig@s, kisiera saber si me podrian aiudar cn un ejercicio q me dejaron en ...

Buscar en este tema:
 
  •  
    brenda hg escribió el 31/07/2007 a las 13:49 hs.
     
    ¿Mensaje inapropiado?
    #1 [C/C++] simulacion en dev C++
    holas amig@s, kisiera saber si me podrian aiudar cn un ejercicio q me dejaron en la U, bueno mi prof nos dejo un ejercicio de simulacion q se trataba de un semaforo, bueno crear mediante clases un programa q simule la accion de un semaforo, o sea q cambie verde, amarillo , rojo i retorne de la sgte manera, rojo, amarillo, verde claro eso es lo correcto, pero el q staba hcdo sale defrente verde,amarillo , rojo i no retorna de esa manera =`( , wawa,
    chekeen lo q fui avanzando la verdad spero q me aiuden ,=(,i kisiera saber si hay alguna galeria en dev C++, q es la q trabajo, en la q me pueda salir a colores, mismo semaforo jeje, si la compilan veran q sale x unos segundos, es como un demo, pero eso de los colores capaz salgn como fondo, o al menos en el color d las letras, x fa cuento con uds gracias.. =D

    #include<iostream>
    #include<conio.h>

    using namespace std;

    class luz
    {
    public:
    void color(int var);
    void mostrar();
    };

    void luz::color(int var)
    {
    if(var==1) {cout<<" ROJO\n ";}
    if(var==2) {cout<<" AMARILLO\n ";}
    if(var==3) {cout<<" VERDE\n ";}
    };

    void luz::mostrar()
    {
    for(int i=1;i<=8;i++)
    { system("cls");
    for(int j=1;j<=3;j++)
    { color(j);
    for(int t=0;t<=100000000;t++) {}
    }
    }
    }

    int main()
    {
    luz l;
    l.mostrar();
    getch();
    }
    +
     
    0
    Me gusta
     
    http://www.psicofxp.com/forums/programacion.313/491875-c-c-simulacion-en-dev-c.html
    | Más
  • Usuario inexistente escribió el 31/07/2007 a las 14:44 hs. ¿Mensaje inapropiado?

    #2 Re: simulacion en dev C++

    De enserio, me esmeré por entenderte, pero no lo consigo , tenés un chino muy raro, capaz que es egipcio qué se yo

    ¿vos querés que lo que escriba salga con el color que vos querés?, algo así como si es verde, que imprima verde de color verde, si es azul que imprima azul de color azul, etc?
    Me gusta este mensaje
  • CxPzT escribió el 31/07/2007 a las 14:44 hs. ¿Mensaje inapropiado?

    #3 Re: simulacion en dev C++

    Te paso 2 versiones. Espero que funcionen.

    ROJO AMARILLO VERDE AMARILLO ROJO

    void luz::color(int var)
    {
    if(var==1|| var==5) {cout<<" ROJO\n ";}
    if(var==2|| var==4) {cout<<" AMARILLO\n ";}
    if(var==3) {cout<<" VERDE\n ";}
    };

    void luz::mostrar()
    {
    for(int i=1;i<=8;i++)
    { system("cls");
    for(int j=1;j<=5;j++)
    { color(j);
    for(int t=0;t<=100000000;t++) {}
    }
    }
    }

    ROJO AMARILLO VERDE VERDE AMARILLO ROJO

    void luz::color(int var)
    {
    if(var==1|| var==6) {cout<<" ROJO\n ";}
    if(var==2|| var==5) {cout<<" AMARILLO\n ";}
    if(var==3|| var==4) {cout<<" VERDE\n ";}
    };

    void luz::mostrar()
    {
    for(int i=1;i<=8;i++)
    { system("cls");
    for(int j=1;j<=6;j++)
    { color(j);
    for(int t=0;t<=100000000;t++) {}
    }
    }
    }
    Me gusta este mensaje
  • brenda hg escribió el 31/07/2007 a las 15:04 hs. ¿Mensaje inapropiado?

    #4 Re: simulacion en dev C++

    ¿vos querés que lo que escriba salga con el color que vos querés?, algo así como si es verde, que imprima verde de color verde, si es azul que imprima azul de color azul, etc?[/quote]

    jeje bueno creo q ahi si la captaste, pasa q como es un modelo de semaforo, se veria mejor si las letras osea rojo, amarillo ,verde salgan de ese color respectivamente, o no se el fondo tb he escuchado q se puede hacer, xq como veras lo clasico es fondo negro i letras blancas ,jojo asi q qeria variar esa parte, algunos d mis compañeros han hecho asi, y bueno io x mi aprte stoi averiguando q galeria se usa i todo eso jeje, gracias = x pregntar OH! a vcs no m explico bien lo siento
    Me gusta este mensaje
  • Usuario inexistente escribió el 31/07/2007 a las 21:28 hs. ¿Mensaje inapropiado?

    #5 Re: simulacion en dev C++

    Originalmente publicado por brenda hg Ver mensaje
    ¿vos querés que lo que escriba salga con el color que vos querés?, algo así como si es verde, que imprima verde de color verde, si es azul que imprima azul de color azul, etc?
    jeje bueno creo q ahi si la captaste, pasa q como es un modelo de semaforo, se veria mejor si las letras osea rojo, amarillo ,verde salgan de ese color respectivamente, o no se el fondo tb he escuchado q se puede hacer, xq como veras lo clasico es fondo negro i letras blancas ,jojo asi q qeria variar esa parte, algunos d mis compañeros han hecho asi, y bueno io x mi aprte stoi averiguando q galeria se usa i todo eso jeje, gracias = x pregntar OH! a vcs no m explico bien lo siento [/quote]

    está bien, pero no me refería a tu forma de explicar, sino a tu forma de escribir (un dolor de cabeza entender qué quisiste escribir). Una cosa, no es galería es librería, y si tus compañeros lo hicieron podrías preguntarle con qué lo hicieron y empezar a investigar por ahí, en google debe haber mucha info dando vuelta.
    Me gusta este mensaje
  • ExtrañoInocente escribió el 02/08/2007 a las 10:22 hs. ¿Mensaje inapropiado?

    #6 Re: simulacion en dev C++

    El ejercicio se resuelve facil, te paso otra opcion mas orientada a objetos y con la cual seria bastante facil entender los diferentes cambios de estado...

    Código:
    /**
     * Esta es una interfaz de estado semaforo que define los diferentes estados que un semaforo tendrá.
     * Esto es Rojo, Amarillo, Verde y la forma de interactuar con ellos.
     */
    class EstadoSemaforo {
    public:
    /**
     * Metodo virtual que muestra el color actual en pantalla
     */
    virtual void mostrar(Semaforo* semaforo) = 0;
    
    /**
     * Actualiza el estado del semaforo (color) despues de un determinado tiempo.
     */
    virtual void actualizar(Semaforo* semaforo) = 0;
    };
    
    /**
     * Esta es una clase concreta de estado semaforo que representa el estado Rojo.
     */
    class EstadoRojo : public EstadoSemaforo {
    public:
    /**
     * Actualiza el estado del semaforo (color) a su siguiente estado despues de un determinado tiempo.
     */
    virtual void actualizar(Semaforo* semaforo) {
             EstadoSemaforo* proximoEstado  = semaforo->ESTADO_AMARILLO;
             semaforo->setEstado(proximoEstado);
     }
    
    /**
     * Muestra el estado actual del semaforo por pantalla.
     */
    virtual void mostrar(Semaforo* semaforo) {
        std::cout << "Semaforo en Rojo" << std::endl;
     }
    };
    
    /**
     * Esta es una clase concreta de estado semaforo que representa el estado Verde
     */
    class EstadoVerde : public EstadoSemaforo {
    public:
    /**
     * Actualiza el estado del semaforo (color) a su siguiente estado despues de un determinado tiempo.
     */
    virtual void actualizar(Semaforo* semaforo) {
             EstadoSemaforo* proximoEstado  = semaforo->ESTADO_ROJO;
             semaforo->setEstado(proximoEstado);
     }
    
    /**
     * Muestra el estado actual del semaforo por pantalla.
     */
    virtual void mostrar(Semaforo* semaforo) {
        std::cout << "Semaforo en Verde" << std::endl;
     }
    };
    
    /**
     * Esta es una clase concreta de estado semaforo que representa el estado Amarillo.
     */
    class EstadoRojo : public EstadoSemaforo {
    public:
    /**
     * Actualiza el estado del semaforo (color) a su siguiente estado despues de un determinado tiempo.
     */
    virtual void actualizar(Semaforo* semaforo) {
             EstadoSemaforo* proximoEstado  = semaforo->ESTADO_VERDE;
             semaforo->setEstado(proximoEstado);
     }
    
    /**
     * Muestra el estado actual del semaforo por pantalla.
     */
    virtual void mostrar(Semaforo* semaforo) {
        std::cout << "Semaforo en Amarillo" << std::endl;
     }
    };
    
    /**
     * Esta es una clase concreta de semaforo
     */
    class Semaforo {
    private:
    EstadoSemaforo* ESTADO_VERDE;
    EstadoSemaforo* ESTADO_AMARILLO;
    EstadoSemaforo* ESTADO_ROJO;
    EstadoSemaforo* estadoActual;
    
    public:
    
    friend class EstadoSemaforo;
    
    Semaforo() {
       ESTADO_VERDE = new EstadoVerde;
       ESTADO_AMARILLO = new EstadoAmarillo;
       ESTADO_ROJO = new EstadoRojo;
       setEstado(ESTADO_ROJO);
    }
    
    virtual ~Semaforo() {
       delete ESTADO_VERDE;
       delete ESTADO_ROJO;
       delete ESTADO_AMARILLO;
    }
    
    virtual void setEstado(EstadoSemaforo* nuevoEstado) {
        this->estadoActual = nuevoEstado;
     }
    
    virtual EstadoSemaforo* getEstado() {
       return this->estadoActual;
     }
    
    /**
     * Actualiza el estado del semaforo (color) a su siguiente estado despues de un determinado tiempo.
     */
    virtual void actualizar() {
             this->getEstado()->actualizar(this);
     }
    
    /**
     * Muestra el estado actual del semaforo por pantalla.
     */
    virtual void mostrar() {
        this->getEstado()->mostrar(this);
     }
    
    virtual void correr() {
       while (true) {
          for( int counter = 0; counter < 10000; counter++) {
               this->mostrar();
               this->actualizar();
          }
       };
    };
    };
    
    Y para usar todo seria algo asi:
    
    Semaforo* semaforo = new Semaforo;
    
    semaforo->correr();
    
    Espero que se haya entendido.de esta forma te evitas todos los if engorrosos dentro del mostrar y te permite agregar todos los estados posibles, que desees y la transicion que desees, sin modificar la clase semaforo. Ademas si necesitas agregar funcionalidad cuando el semaforo este en un color determinado lo haces en un determinado lugar y la clase semaforo queda intacta.

    Con respecto a mostrar todo en colores, te puedo decir que si usas Borland C++ Compiler tenes la libreria Conio para trabajar con colores, En Dev-C++ hay un port para esa libreria, y tambien tenes la posibilidad de usar la libreria bastante vieja InterViews (creo que asi se llamaba, con la que esta hecho el compilador de Turbo Pascal) de Borland que si bien fue hecho para Pascal hay ports para C y C++.

    Si trabajas en Linux siempre podes usar la libreria NCurses.

    Saludos
    Pablo
    Me gusta este mensaje
  • #7 Re: simulacion en dev C++

    OIS UN PROGRAMA K HAGA STO PLIS ME LO ENCARGARON DE TARE [IMG]file:///C:/DOCUME%7E1/ELIZAB%7E1/CONFIG%7E1/Temp/msohtml1/01/clip_image002.jpg[/IMG]
    Me gusta este mensaje
  • #8 Re: simulacion en dev C++

    Originalmente publicado por minixita Ver mensaje
    OIS UN PROGRAMA K HAGA STO PLIS ME LO ENCARGARON DE TARE [IMG]file:///C:/DOCUME%7E1/ELIZAB%7E1/CONFIG%7E1/Temp/msohtml1/01/clip_image002.jpg[/IMG]
    Attacha bien la imagen, y te sugiero que postees dudas sobre tus ejercicios, y no la resolucion del mismo ya que si es una tarea que te asignaron, nunca vas a terminar aprendiendo... Empeza con tu tarea, lee documentacion y si no te sale algo o estas trabado / a, postea que problema tenes, que dudas y algo de codigo para que te ayudemos porque tampoco tenemos bola de cristal, ni leemos el tarot...

    Saludos
    Pablo
    Me gusta este mensaje
Estás en: Inicio >> Foros >> Informática >> Programación


Estadísticas del tema
  • 7 RESPUESTAS
  • 3537 VISTAS
  • 5 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB