Practica 6. Menu con ciclos

Ver el tema anterior Ver el tema siguiente Ir abajo

Practica 6. Menu con ciclos

Mensaje por GoOrK el Sáb Mayo 07, 2011 6:41 pm

Tarde per ahi esta

Spoiler:
Código:
#include <stdio.h>
#include <math.h>
void escogemenu(int);  //Prototipo de las funciones
void seno(void);
void tangente(void);
void coseno(void);
void menutrigonom(void);
void menumat(void);
void potencia(void);
void raiz(void);
void logaritmo(void);

void principal()
{
   int a;  //declaro una variable como int para menos espacio en memoria
   // que sera lo capturado en teclado,
   clrscr();
   printf("Herramienta para matematicas\n");
   printf("1) Funciones trigonometricas\n");
   printf("2) Funciones matematicas\n");
   printf("3) Salir\n");
   a=getch(); //captura la tecla
   escogemenu(a); //llama a esta funcion enviandole la tecla apretada
   getch();
}

void trigonometricas()
{
   printf(" 1) Sen de x\n");  //menu desplegado de trigonometricas
   printf(" 2) Cos de x\n");
   printf(" 3) Tan de x\n");
   printf(" 4) Menu principal\n");
   menutrigonom();//manda a llamar los casos que posee el menu
   getch();
}

void matematicas()
{
   //aqui se despliega el menu matematicas
   printf(" 1) Elevar un numero a cualquier potencia\n");
   printf(" 2) Obtener la raiz cuadrada de cualquier numero\n");
   printf(" 3) El logaritmo de un numero\n");
   printf(" 4) Regresar al menu anterior\n");
   menumat(); //manda a llamar los casos qu posee el menu matematicas
   getch();
}

void escogemenu(a)
{
   switch (a){ //inician las evaluaciones de la tecla presionada
         case '1': clrscr();trigonometricas(); break; //lo que hace si es 1
         case '2': clrscr();matematicas(); break; //si es 2
         case '3': exit(0); //si es 3 se saldra de la alpicacion
         default :{ printf("Funcion no valida, presione una tecla para reintentar");
            getch();
            principal();} //opcion no valida y nos regresa al menu principal
        }//fin switch
}

void menutrigonom()
{
   char a;
   a=getch();//capura la tecla presionada por el usuario
   do{  //iniciamos un ciclo para mostrar funcion no valida, siempre que no se inserte una tecla pedida
   switch (a){ //se inician los casos para comparaciones
         case '1': seno(); break;
         case '2': coseno(); break;
         case '3': tangente(); break;
         case '4': principal(); break;
         default : {printf("\nEscoja una opcion valida");
            menutrigonom(); //nos pide una opcion valida y vuelve a evaluar otra tecla presionada
            }
        }
   }while(a!='4');
}

void menumat()
{
   //mismo comportamiento que el menutrigonom
   char a;
   a=getch();
   do{
   switch (a){
         case '1': potencia(); break;
         case '2': raiz(); break;
         case '3': logaritmo(); break;
         case '4': principal(); break;
         default : {printf("\nEscoja una opcion valida");
            menumat();
            }
        }
   }while(a!='4');
}


void seno()
{
   int x;    //aqui se declara una variable que sera util para calcular seno
   clrscr();
   printf(" Funcion seno \n  Inserte el angulo X :");
   scanf("%d",&x);
   printf("\nEl resultado Sen(x) = %f ",sin(x));
   printf("\nTienes estas opciones\n\nCalcular:\n");
   trigonometricas();//al terminar el calculo muestra las opciones que contiene esta funcion
}


void coseno()
{
   //mismo comportamiento que en seno
   int x;
   clrscr();
   printf(" Funcion coseno \n  Inserte el angulo X :");
   scanf("%d",&x);
   printf("El resultado Cosen(x) = %f ",cos(x));
   printf("\nTienes estas opciones\n\nCalcular:\n");
   trigonometricas();
}

void tangente()
{
   //mismo comportamiento que en seno
   int x;
   clrscr();
   printf(" Funcion tangente \n  Inserte el angulo X :");
   scanf("%d",&x);
   printf("El resultado Tan(x) = %f ",tan(x));
   printf("\nTienes estas opciones\n\nCalcular:\n");
   trigonometricas();
}

void potencia()
{
   //mismo comportamiento que en seno
   int x,y;
   clrscr();
   printf("Inserte el numero y despues la potencia : ");
   scanf("%d %d",&x,&y);
   printf("El resultado de elevar %d a %d es = %.2f",x,y,pow(x,y));//usamos pow incluido en math.h para elevar las potencias
   printf("\nTienes estas opciones\n\nCalcular:\n");
   matematicas();
}

void raiz()
{
   int x;
   clrscr();
   printf("Iserte el numero a sacar raiz");
   scanf("%d",&x);
   if(x<0) {printf("Resultado complejo inserte otro valor"); //aqui tenemos una condicion ya que no podemos permitir un valor menor a 0 ya que el resultado es complejo
   printf("\nTienes estas opciones\n\nCalcular:\n");
   matematicas();}
   else {printf("El resultado es %f",sqrt(x));
   printf("\nTienes estas opciones\n\nCalcular:\n");
   matematicas();}
}

void logaritmo()
{
   int x;
   clrscr();
   printf("Inserte un valor para sacar el logaritmo :");
   scanf("%d",&x);
   if(x<=0){printf("Resultado complejo inserte otro valor"); //condicion para evitar resultados complejos
   printf("\nTienes estas opciones\n\nCalcular:\n");
   matematicas();}
   else {printf("El logaritno natural de %d es = %f",x,log(x));
   printf("\nTienes estas opciones\n\nCalcular:\n");
   matematicas();}
}

void main()
{
   principal();
}

_________________
avatar
GoOrK
Admin
Admin

Mensajes : 53
Fecha de inscripción : 18/02/2011
Edad : 24

http://goorkuabcinc.activo.ws

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.