ayuda con este tema

Iniciado por sofia555555, 28 Febrero 2019, 05:32 AM

0 Miembros y 1 Visitante están viendo este tema.

sofia555555

Cita de: YreX-DwX en  1 Marzo 2019, 03:51 AM
Para hacer eso lo mejor es controlar el estado de las puertas con una variable booleana <bool> cuyos posibles valores son true(1) y false(0). Como ya has visto como se usa la función <Sleep()> y cómo funcionan los condicionales, te dejo la respuesta en pseudocódigo para que tú te encargues de pasarlo a C++. :-X

bool puerta_abierta = true
si puerta_abierta
    esperar(2 segundos)
    puerta_abierta = false


Jajaja que maldad  :-( no entiendo como pseudocodigo?

sofia555555


K-YreX

Cita de: sofia555555 en  1 Marzo 2019, 04:00 AM
Jajaja que maldad  :-( no entiendo como pseudocodigo?
El pseudocódigo se emplea para representar algoritmos (fragmentos de código) de forma fácil de entender para las personas, con un lenguaje más natural y que luego ya puedes transformarlo en código para el lenguaje que tú quieras.
Como puedes ver, ese fragmento que te he dejado si lo copias tal cual en el programa no va a funcionar. Eso es porque ahora tienes que adaptar esa idea a la sintaxis del lenguaje de programación que sea, C++ en este caso.
Más que nada porque si te lo hago en C++ pues ya te estoy dando la solución hecha para copiar y pegar... :-X
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;

sofia555555

Cita de: YreX-DwX en  1 Marzo 2019, 04:08 AM
El pseudocódigo se emplea para representar algoritmos (fragmentos de código) de forma fácil de entender para las personas, con un lenguaje más natural y que luego ya puedes transformarlo en código para el lenguaje que tú quieras.
Como puedes ver, ese fragmento que te he dejado si lo copias tal cual en el programa no va a funcionar. Eso es porque ahora tienes que adaptar esa idea a la sintaxis del lenguaje de programación que sea, C++ en este caso.
Más que nada porque si te lo hago en C++ pues ya te estoy dando la solución hecha para copiar y pegar... :-X

Lo hice asi

Código (cpp) [Seleccionar]

if (Puertas == "ABIERTAS"){
Sleep(2000);
Puertas = PuertasC;
}


pero ahora si por ejemplo van al piso 4 , el programa va subiendo piso a piso cada 1 seg entonces cuando va en el 3 se queda en el piso 3 los dos segundos de las puertas y llega al 4 y ahora no abre las puertas como lo hacia antes de meter ese if


PuertasC es una dato tipo string PuertasC = "CERRADAS";

K-YreX

Si no veo el resto del código no sé muy bien dónde tienes el problema.
Aparte te recomiendo que la variable sea de tipo <bool>, no <string>. Te dejo aquí un ejemplo para que lo ejecutes y veas como quedaría. Luego siempre puedes añadir o quitar cosas para dejarlo como quieras. :-X
Código (cpp) [Seleccionar]

int main(){
    int piso_actual = 0;
    int piso_destino = 4;
    bool puertas_abiertas = false;
    // mientras las puertas esten cerradas y estemos por debajo del destino, subimos
    while(!puertas_abiertas && piso_actual < piso_destino){
        cout << "Piso: " << piso_actual << " Subiendo..." << endl;
        Sleep(2000); // 2 segundos para subir cada piso
        piso_actual++;
    }
    if(piso_actual == piso_destino){
        cout << "Ha llegado al piso " << piso_actual << endl;
        cout << "Abriendo puertas..." << endl;
        Sleep(1000); // tiempo que tardan en abrirse las puertas
        puertas_abiertas = true;
        cout << "Puertas abiertas" << endl;
        Sleep(2000); // esperamos 2 segundos para volver a cerrar las puertas
        cout << "Cerrando puertas..." << endl;
        Sleep(1000); // tiempo que tardan en cerrarse
        puertas_abiertas = false;
        cout << "Puertas cerradas" << endl;
    }
}
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;