elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ejercicio de Un motor C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ejercicio de Un motor C++  (Leído 3,368 veces)
alfremos

Desconectado Desconectado

Mensajes: 5



Ver Perfil
Ejercicio de Un motor C++
« en: 5 Mayo 2013, 07:01 am »

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 Desconectado

Mensajes: 1.314


Ver Perfil
Re: Ejercicio de Un motor C++
« Respuesta #1 en: 5 Mayo 2013, 17:14 pm »

..........................................
 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:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. int main()
  5. {
  6.   int opcion,i;
  7.  
  8.   while (1)  {
  9.        printf("Menu de Arranque\n\n");
  10.        printf("\t1] Arrancar motor.\n");
  11.        printf("\t2] Ayuda.\n");
  12.        printf("\t3] Salir.\n");
  13.        printf("\n\n Opcion= ");
  14.        scanf("%i", &opcion);
  15.        system("cls");
  16.        switch(opcion){
  17.            case 1:
  18.                system("cls");
  19.                printf("El Motor  en Estrella arranco.\n");
  20.                Sleep(2000);
  21.                 system("cls");
  22.                 for (i=0;i<5;i++){
  23.                    printf("Arranque en %d segundos: ",5-i);
  24.                    Sleep(1000);
  25.                    system("cls");
  26.                }
  27.               printf("El Motor paso a TRIANGULO .\n");
  28.               return 1;
  29.            case 2:
  30.                printf("Para Arrancar El Motor Ingrese El Numero 1.\n");
  31.                break;
  32.            case 3:
  33.                return 0;
  34.        }
  35.    }
  36. }
  37.  

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 Desconectado

Mensajes: 5



Ver Perfil
Re: Ejercicio de Un motor C++
« Respuesta #2 en: 5 Mayo 2013, 22:05 pm »

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 Desconectado

Mensajes: 100


Ver Perfil
Re: Ejercicio de Un motor C++
« Respuesta #3 en: 5 Mayo 2013, 22:25 pm »

Usa el default en el switch case.

Código
  1. switch(opcion){
  2.            case 1:
  3.                system("cls");
  4.                printf("El Motor  en Estrella arranco.\n");
  5.                Sleep(2000);
  6.                 system("cls");
  7.                 for (i=0;i<5;i++){
  8.                    printf("Arranque en %d segundos: ",5-i);
  9.                    Sleep(1000);
  10.                    system("cls");
  11.                }
  12.               printf("El Motor paso a TRIANGULO .\n");
  13.               return 1;
  14.            case 2:
  15.                printf("Para Arrancar El Motor Ingrese El Numero 1.\n");
  16.                break;
  17.            default :
  18.                  pritnf("opcion no valida");
  19.                  break;
  20.  

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 Desconectado

Mensajes: 5



Ver Perfil
Re: Ejercicio de Un motor C++
« Respuesta #4 en: 6 Mayo 2013, 00:43 am »

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 Desconectado

Mensajes: 1.314


Ver Perfil
Re: Ejercicio de Un motor C++
« Respuesta #5 en: 6 Mayo 2013, 01:15 am »

Creo que de esta manera funciona como quieres:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. int main(){
  5.    int i;
  6.    char opc;
  7.    while (1)  {
  8.        printf("Menu de Arranque\n\n");
  9.        printf("\t1] Arrancar motor.\n");
  10.        printf("\t2] Ayuda.\n");
  11.        printf("\t3] Salir.\n");
  12.        do {
  13.            printf("\n\n Opcion= ");
  14.            scanf(" %c", &opc);
  15.            if (opc<49 || opc>51)
  16.                printf("Introduzca un valor de 1 a 3.\n");
  17.            }while (opc<49 || opc>51);
  18.        system("cls");
  19.        switch(opc){
  20.            case '1':
  21.                system("cls");
  22.                printf("El Motor  en Estrella arranco.\n");
  23.                Sleep(2000);
  24.                 system("cls");
  25.                 for (i=0;i<5;i++){
  26.                    printf("Arranque en %d segundos: ",5-i);
  27.                    Sleep(1000);
  28.                    system("cls");
  29.                }
  30.               printf("El Motor paso a TRIANGULO .\n");
  31.               return 1;
  32.            case '2':
  33.                printf("Para Arrancar El Motor Ingrese El Numero 1.\n");
  34.                break;
  35.            case '3':
  36.                return 0;
  37.        }
  38.    }
  39. }
  40.  
  41.  

Saluditos! ....   
En línea

alfremos

Desconectado Desconectado

Mensajes: 5



Ver Perfil
Re: Ejercicio de Un motor C++
« Respuesta #6 en: 6 Mayo 2013, 02:11 am »

muchas gracias..! estoy tratando de comprender la modificacion con el comando que aplicaste,

Citar
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 Desconectado

Mensajes: 1.314


Ver Perfil
Re: Ejercicio de Un motor C++
« Respuesta #7 en: 6 Mayo 2013, 03:02 am »

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 Desconectado

Mensajes: 5



Ver Perfil
Re: Ejercicio de Un motor C++
« Respuesta #8 en: 6 Mayo 2013, 04:24 am »

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

Citar
              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

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Ejercicio de Un motor C++
« Respuesta #9 en: 6 Mayo 2013, 14:37 pm »


Para que vuelva al menú después de arrancar basta con cambiar el "return" del case '1' por "break". Si es otra cosa avisa.

Saluditos!.... ..
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Motor a 1 r.p.m.
Electrónica
RJ-45 2 4,129 Último mensaje 4 Agosto 2005, 21:18 pm
por {_The_Alwar_}
MOtor PaP a DC¿
Electrónica
Lokoo 1 2,336 Último mensaje 7 Agosto 2006, 21:49 pm
por AkRoN
[Ejercicio] Aca tienen un ejercicio para practicar « 1 2 3 »
Programación Visual Basic
Dreamaker 20 15,642 Último mensaje 5 Septiembre 2010, 02:57 am
por TGa.
ejercicio conclase pag 70 ejercicio 1
Programación C/C++
flony 2 4,279 Último mensaje 17 Octubre 2010, 12:16 pm
por Akai
Motor 2D
Programación C/C++
K1ll3rM4st3r01 1 3,442 Último mensaje 9 Diciembre 2010, 21:13 pm
por Oblivi0n
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines