Autor
|
Tema: ayuda con este tema (Leído 4,185 veces)
|
sofia555555
Desconectado
Mensajes: 8
|
Buenas noches a todos , tengo una duda chicos estoy haciendo un programa sobre un ascensor y entonces por ejemplo esta en planta Baja (PB) son 12 pisos y quiero que nada mas tenga 4 paradas que serian PB-4-8-12 y yo elijo el numero 4 entonces quiero mostrar en pantalla lo siguiente Piso = PB es como inicia el programa pero quiero cuando arranque el ascensor muestre en pantalla la siguiente secuencia Piso= PB Piso= 1 Piso= 2 Piso= 3 Piso= 4 Y ahi se detenga entonces yo coloco lo siguiente if(piso<0){ Piso=Piso+1; Sleep(3000); // pongo 3 segundos por cada piso que sube es lo que tarda }
Mis dudas son como haria que se detenga en 4 y como haria que la variable Piso pueda cambiar de PB a numero , hay alguna variable que pueda utlizar caracteres y enteros?
|
|
|
En línea
|
|
|
|
srWhiteSkull
|
hay alguna variable que pueda utlizar caracteres y enteros?
Nooo, Pero podrías usar el cero. PD a lo mejor PB es una constante si es porque aparece en algún código que estás copiando.
|
|
|
En línea
|
|
|
|
sofia555555
Desconectado
Mensajes: 8
|
Nooo,
Pero podrías usar el cero.
PD a lo mejor PB es una constante si es porque aparece en algún código que estás copiando.
si pero en los ascensores aparece PB despues los numero de pisos asi que no lo se , no esta bien poner el 0 quisiera Que diga PB despues 1 , 2 y asi
|
|
|
En línea
|
|
|
|
srWhiteSkull
|
Pero que diga dónde? Me imagino que eso saldrá solo en la pantalla del ascensor. De todas formas con esa información no puedo ayudarte y ahora mismo me voy a dormir.
Buenas noches.
|
|
|
En línea
|
|
|
|
sofia555555
Desconectado
Mensajes: 8
|
Pero que diga dónde? Me imagino que eso saldrá solo en la pantalla del ascensor. De todas formas con esa información no puedo ayudarte y ahora mismo me voy a dormir.
Buenas noches.
Si claro lo que quiero es mostrar en pantalla como si fuera la pantalla led de los ascensores
|
|
|
En línea
|
|
|
|
K-YreX
|
Buenas noches a todos , tengo una duda chicos estoy haciendo un programa sobre un ascensor y entonces por ejemplo esta en planta Baja (PB) son 12 pisos y quiero que nada mas tenga 4 paradas que serian PB-4-8-12 y yo elijo el numero 4 entonces quiero mostrar en pantalla lo siguiente Piso = PB es como inicia el programa pero quiero cuando arranque el ascensor muestre en pantalla la siguiente secuencia Piso= PB Piso= 1 Piso= 2 Piso= 3 Piso= 4 Y ahi se detenga entonces yo coloco lo siguiente if(piso<0){ Piso=Piso+1; Sleep(3000); // pongo 3 segundos por cada piso que sube es lo que tarda }
Mis dudas son como haria que se detenga en 4 y como haria que la variable Piso pueda cambiar de PB a numero , hay alguna variable que pueda utlizar caracteres y enteros? Si quieres que se detenga en el 4 pues con un condicional, sencillo. Para el tema de mezclar letras (PB) con números (1, 2, 3...) tienes varias opciones: - Usar <string> o <char> y entonces representar los números como caracteres en vez de como números. Si luego quieres incrementar algún valor tendrás que usar una función que los transforme de <char> a <int> y después a <char> nuevamente.
- Usar <int> y que PB sea el 0. Luego cuando se vaya a mostrar la planta, hacer un condicional para que si la planta es el 0, se muestre "PB" y sino que se muestre el número de la planta.
- Igual también te sirve usar una enumeración <enum>.
|
|
|
En línea
|
cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
|
|
|
sofia555555
Desconectado
Mensajes: 8
|
Si quieres que se detenga en el 4 pues con un condicional, sencillo. Para el tema de mezclar letras (PB) con números (1, 2, 3...) tienes varias opciones: - Usar <string> o <char> y entonces representar los números como caracteres en vez de como números. Si luego quieres incrementar algún valor tendrás que usar una función que los transforme de <char> a <int> y después a <char> nuevamente.
- Usar <int> y que PB sea el 0. Luego cuando se vaya a mostrar la planta, hacer un condicional para que si la planta es el 0, se muestre "PB" y sino que se muestre el número de la planta.
- Igual también te sirve usar una enumeración <enum>.
Si logre resolver lo del piso que se detuviera , dejare por ultimo el tema de Pb y los numeros de los piso , ahora imaginemos que el ascensor llego al piso 4 abrio las puertas como hacer que duren 2 seg abiertas y despues las cierre como hacer ese condicional?
|
|
« Última modificación: 1 Marzo 2019, 03:13 am por sofia555555 »
|
En línea
|
|
|
|
K-YreX
|
Te muestro un pequeño fragmento para darte una idea y que tú puedas adaptarlo a tus necesidades. (Supongo que estás compilando desde Windows no?) #include <iostream> #include <windows.h> using namespace std; int main(){ int piso_actual = 0; int piso_final = 4; while(piso_actual < piso_final){ // tambien funciona con piso_actual != piso_final if(piso_actual == 0) cout << "Piso: PB" << endl; else cout << "Piso: " << piso_actual << endl; piso_actual++; // incremento en 1 de la variable piso_actual Sleep(2000); // retardo de 2 segundos entre piso y piso } }
Como estás empezando te comento un par de cosas: - El <if else> no tiene llaves {} por lo que sólo incluye una instrucción cada uno.
// Opcion 1 usando llaves if(var == 0){ cout << var << endl; } cout << var+1 << endl; // Opcion 2 sin usar llaves, equivalente a la opcion 1 if(var == 0) cout << var << endl; cout << var+1 << endl;
- Si el programa lo vas a compilar en Linux tienes que cambiar <windows.h> por <unistd.h> y la función <Sleep(milisegundos)> por <usleep(microsegundos)>.
- Hay más formas de mostrar el número de planta, pero esta es una de ellas. Si quieres ver cómo se haría de alguna otra forma, coméntamelo.
Espero que esto te sirva y si tienes alguna duda más, siempre puedes preguntar. Suerte
|
|
|
En línea
|
cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
|
|
|
sofia555555
Desconectado
Mensajes: 8
|
Te muestro un pequeño fragmento para darte una idea y que tú puedas adaptarlo a tus necesidades. (Supongo que estás compilando desde Windows no?) #include <iostream> #include <windows.h> using namespace std; int main(){ int piso_actual = 0; int piso_final = 4; while(piso_actual < piso_final){ // tambien funciona con piso_actual != piso_final if(piso_actual == 0) cout << "Piso: PB" << endl; else cout << "Piso: " << piso_actual << endl; piso_actual++; // incremento en 1 de la variable piso_actual Sleep(2000); // retardo de 2 segundos entre piso y piso } }
Como estás empezando te comento un par de cosas: - El <if else> no tiene llaves {} por lo que sólo incluye una instrucción cada uno.
// Opcion 1 usando llaves if(var == 0){ cout << var << endl; } cout << var+1 << endl; // Opcion 2 sin usar llaves, equivalente a la opcion 1 if(var == 0) cout << var << endl; cout << var+1 << endl;
- Si el programa lo vas a compilar en Linux tienes que cambiar <windows.h> por <unistd.h> y la función <Sleep(milisegundos)> por <usleep(microsegundos)>.
- Hay más formas de mostrar el número de planta, pero esta es una de ellas. Si quieres ver cómo se haría de alguna otra forma, coméntamelo.
Espero que esto te sirva y si tienes alguna duda más, siempre puedes preguntar. Suerte Si gracias uso windows , quiero dejar a lo ultimo lo de si esta en PB sera el 0 porque si no me complico , quisiera saber como hacer el condicional para con la funcion sleep para que cuando abra las puertas duren 2 segundos abiertas y luego las cierre despues de los dos segundos
|
|
|
En línea
|
|
|
|
K-YreX
|
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++. bool puerta_abierta = true si puerta_abierta esperar(2 segundos) puerta_abierta = false
|
|
|
En línea
|
cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
|
|
|
|
|