Autor
|
Tema: Ejercicio de Un motor C++ (Leído 3,656 veces)
|
alfremos
Desconectado
Mensajes: 5
|
Necesito ayuda con este ejercicio. Tengo que hacer un arranque de un motor en estrella triangulo. Las condiciones son: que el programa solo se ejecute cuando se le presiones una tecla (en este caso pensé en colocarle una especie de menú, tome uno que vi por aquí pero el problema es que cuando ingreso una letra el programa se queda como pegado) luego que el usuario ingrese la letra solo tiene que dar un mensaje como “se arrancó el motor en estrella” luego de esto tiene que haber un contador el cual debe marcar en pantalla unos 5 Seg y luego mostrar el mensaje “el motor paso a triangulo” la única idea que tengo hasta ahora es esta:
#include <stdio.h> #include <stdlib.h>
int main() { int fin = 0; int opcion;
while (fin == 0) { system("cls"); printf("Menú de Arranque\n\n");
printf("\t1] Arrancar motor.\n"); printf("\t2] Ayuda.\n"); printf("\t3] Salir.\n");
printf("\n\n Opción= "); scanf("%i", &opcion);
switch(opcion) { case 1: fin = 1; printf("El Motor Arranca en Estrella.\n"); break; case 2: fin = 1; printf("Para Arrancar El Motor Ingrese El Numero 1.\n"); break; case 3: fin = 1; /* No se comando pueda colocar para salir */ break;
default: fin = 0; break; }
}
system("pause"); return 0; }
Saludos y gracias de antemano
|
|
« Última modificación: 5 Mayo 2013, 07:04 am por alfremos »
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
.......................................... luego que el usuario ingrese la letra solo tiene que dar un mensaje como “se arrancó el motor en estrella” luego de esto tiene que haber un contador el cual debe marcar en pantalla unos 5 Seg y luego mostrar el mensaje “el motor paso a triangulo”
La idea no me parece mal, sólo es cuestión de completarla:#include <stdio.h> #include <stdlib.h> #include <windows.h> int main() { int opcion,i; while (1) { printf("Menu de Arranque\n\n"); printf("\t1] Arrancar motor.\n"); printf("\t2] Ayuda.\n"); printf("\t3] Salir.\n"); printf("\n\n Opcion= "); scanf("%i", &opcion); system("cls"); switch(opcion){ case 1: system("cls"); printf("El Motor en Estrella arranco.\n"); Sleep(2000); system("cls"); for (i=0;i<5;i++){ printf("Arranque en %d segundos: ",5-i); Sleep(1000); system("cls"); } printf("El Motor paso a TRIANGULO .\n"); return 1; case 2: printf("Para Arrancar El Motor Ingrese El Numero 1.\n"); break; case 3: return 0; } } }
Es una idea funcional pero a desarrollar un poco más.Saluditos!. ....
|
|
« Última modificación: 5 Mayo 2013, 17:28 pm por leosansan »
|
En línea
|
|
|
|
alfremos
Desconectado
Mensajes: 5
|
saludos gracias por la respuesta me funciono muy bien. para complementar un poco mas el programa como puedo evitar que el usuario introduzca en las opciones no un numero si no una letra? cuando se introduce una letra el programa queda pegado y no deja que siga corriendo.. la pregunta es esa como puedo limitar el programa para que solo introduzca numeros.. o que muestre algun tipo de mensaje cuando las personas ingresan letras algo como "opcion no disponible introduzca algun numero de la opcion antes mencionada"
|
|
|
En línea
|
|
|
|
pacoperico
Desconectado
Mensajes: 100
|
Usa el default en el switch case. switch(opcion){ case 1: system("cls"); printf("El Motor en Estrella arranco.\n"); Sleep(2000); system("cls"); for (i=0;i<5;i++){ printf("Arranque en %d segundos: ",5-i); Sleep(1000); system("cls"); } printf("El Motor paso a TRIANGULO .\n"); return 1; case 2: printf("Para Arrancar El Motor Ingrese El Numero 1.\n"); break; default : pritnf("opcion no valida"); break;
La instruccion switch case comprueba el valor de una determinada variable, si su valor coiincide con alguno de los valores de los case, entonces ejecuta las instrucciones de cada uno. En caso de que no concuerde con ninguno de los case se ejecuta la instruccion del default.
|
|
|
En línea
|
|
|
|
alfremos
Desconectado
Mensajes: 5
|
Gracias por responder. ya entendi como trabaja la condicion default en el switch. si el numero que introduce no es el que esta destinado a el menu de arriba va a arrojar el mensaje "opcion no valida" el problema que se sigue presentando es si el usuario teclea una letra y no un numero.. el programa arroja el mensaje "opcion no valida" pero luego no deja introducir ningun otro caracter se queda pegado! saludos y gracias nuevamente
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Creo que de esta manera funciona como quieres:#include <stdio.h> #include <stdlib.h> #include <windows.h> int main(){ int i; char opc; while (1) { printf("Menu de Arranque\n\n"); printf("\t1] Arrancar motor.\n"); printf("\t2] Ayuda.\n"); printf("\t3] Salir.\n"); do { printf("\n\n Opcion= "); scanf(" %c", &opc); if (opc<49 || opc>51) printf("Introduzca un valor de 1 a 3.\n"); }while (opc<49 || opc>51); system("cls"); switch(opc){ case '1': system("cls"); printf("El Motor en Estrella arranco.\n"); Sleep(2000); system("cls"); for (i=0;i<5;i++){ printf("Arranque en %d segundos: ",5-i); Sleep(1000); system("cls"); } printf("El Motor paso a TRIANGULO .\n"); return 1; case '2': printf("Para Arrancar El Motor Ingrese El Numero 1.\n"); break; case '3': return 0; } } }
Saluditos! ....
|
|
|
En línea
|
|
|
|
alfremos
Desconectado
Mensajes: 5
|
muchas gracias..! estoy tratando de comprender la modificacion con el comando que aplicaste, do { printf("\n\n Opcion: "); scanf(" %c", &opc); if (opc<49 || opc>51) printf("Introduzca un valor de 1 a 3.\n"); }while (opc<49 || opc>51); buscare mas informacion a ver de que otra forma lo podemos utilizar, Gracias.
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
muchas gracias..! estoy tratando de comprender la modificacion con el comando que aplicaste,
Lo que he hecho es que el dato que se introduce es de tipo char y el uno se corresponde con 49 y el tres con 51 en ASCII e impongo la condición que si no son esos valores vuelva a introducir la opción elegida. Y como opción es char en el switch los case son caracteres, por eso van entre comillas '1 ' , '2', '3'.. Saluditos! ....
|
|
|
En línea
|
|
|
|
alfremos
Desconectado
Mensajes: 5
|
pensando como hacer mas completo el programa. como podriamos detenerlo? ya logramos que arrancara en estrella, cambiara a delta pero si queremos detener la operacion? tal vez que no regrese a el menu de arranque nuevamente.. asi podemos "encender" el motor cuantas veces queramos. actualmente el programa corre y luego que pasa a triangulo el programa se cierra luego de una espera de 5 Seg printf("El Motor paso a TRIANGULO .\n\n"); printf("...Gracias, Que Tenga Un Buen Dia...\n"); Sleep(5000); return 1; case '2': printf("Ingrese SOLO Numeros.\n\n"); break; case '3': return 0; Saludos
|
|
|
En línea
|
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Motor a 1 r.p.m.
Electrónica
|
RJ-45
|
2
|
4,349
|
4 Agosto 2005, 21:18 pm
por {_The_Alwar_}
|
|
|
MOtor PaP a DC¿
Electrónica
|
Lokoo
|
1
|
2,531
|
7 Agosto 2006, 21:49 pm
por AkRoN
|
|
|
[Ejercicio] Aca tienen un ejercicio para practicar
« 1 2 3 »
Programación Visual Basic
|
Dreamaker
|
20
|
16,577
|
5 Septiembre 2010, 02:57 am
por TGa.
|
|
|
ejercicio conclase pag 70 ejercicio 1
Programación C/C++
|
flony
|
2
|
4,563
|
17 Octubre 2010, 12:16 pm
por Akai
|
|
|
Motor 2D
Programación C/C++
|
K1ll3rM4st3r01
|
1
|
3,692
|
9 Diciembre 2010, 21:13 pm
por Oblivi0n
|
|