martes, 30 de septiembre de 2014

sentenia switch case

La sentencia switch() en Lenguaje C es una sentencia de selección. Esta sentencia permite seleccionar las acciones a realizar de acuerdo al valor que tome una variable.
Modo de uso:
switch(variable)
{
        case valor_1:
                //acciones
                break;
        case valor_2:
                //acciones
                break;
                .
                .
                .
        case valor_n:
                //acciones
                break;
        defalut:
                //acciones
                break;
}
Si el valor que toma la variable no coincide con los valores especificados en los casos, se
realizarán las acciones definidas en la etiqueta default.
Ejemplos:
1.  Escriba un programa en Lenguaje C que solicite el ingreso de un número del 1 al 9 y que muestre por pantalla el número seleccionado en letras.
Solución: numeroenletras.cpp
#include <stdio.h>
void main()
{
        int opcion;
        printf("Ingrese un numero entero: ");
        scanf("%d",&opcion);
        switch(opcion)
        {
                case 1:
                         printf("Ha ingresado el numero uno\n");
                         break;
                case 2:
                         printf("Ha ingresado el numero dos\n");
                         break;
                case 3:
                         printf("Ha ingresado el numero tres\n");
                         break;
                case 4:
                         printf("Ha ingresado el numero cuatro\n");
                         break;
                case 5:
                         printf("Ha ingresado el numero cinco\n");
                         break;
                case 6:
                         printf("Ha ingresado el numero seis\n");
                         break;
                case 7:
                         printf("Ha ingresado el numero siete\n");
                         break;
                case 8:
                         printf("Ha ingresado el numero ocho\n");
                         break;
                case 9:
                         printf("Ha ingresado el numero nueve\n");
                         break;
                defalut:
                         printf("Ha ingresado un numero no valido\n");
                         break;
        }
}
2.  Escriba un programa en Lenguaje C que solicite el ingreso de dos números enteros y que luego permita seleccionar si se sumarán, restarán dividirán o multiplicarán y muestre el resultado por pantalla.
Solución: opciones.cpp
#include <stdio.h>
void main()
{
        int opcion,a,b,resultado;
        printf("Ingrese un numero entero [a]: ");
        scanf("%d",&a);
        printf("Ingrese un numero entero [b]: ");
        scanf("%d",&b);
        printf("Menu\n");
        printf("1. Sumar\n");
        printf("2. Restar\n");
        printf("3. Dividir\n");
        printf("4. Multiplicar\n");
        printf("Elija una operacion: ");
        scanf("%d",&opcion);
        switch(opcion)
        {
                case 1:
                         resultado=a+b;
                         printf("%d + %d = %d\n",a,b,resultado);
                         break;
                case 2:
                         resultado=a-b;
                         printf("%d - %d = %d\n",a,b,resultado);
                         break;
                case 3:
                         resultado=a/b;
                         printf("%d / %d = %d\n",a,b,resultado);
                         break;
                case 4:
                         resultado=a*b;
                         printf("%d x %d = %d\n",a,b,resultado);
                         break;
                defalut:
                         printf("Opcion no valida\n");
                         break;
        }
}


1º) Pida por teclado el número (dato entero) de un día de la semana.
2º) Muestre por pantalla el nombre (dato cadena) correspondiente a dicho día.

Nota: Si el número de día introducido es menor que 1 ó mayor que 7, se mostrará el mensaje: "ERROR: Día incorrecto.".

En pantalla se podrá ver algo parecido a:

   Introduzca dia de la semana: 2

   Martes
O también:

   Introduzca dia de la semana: 9

   ERROR: Dia incorrecto.
Solución propuesta:titulo: díasdelasemana.cpp
#include <stdio.h>

int main()
{
   int dia;

   printf( "\n   Introduzca dia de la semana: " );
   scanf( "%d", &dia );

   switch ( dia )
   {
      case 1 : printf( "\n   Lunes" );
               break;
      case 2 : printf( "\n   Martes" );
               break;
      case 3 : printf( "\n   Miercoles" );
               break;
      case 4 : printf( "\n   Jueves" );
               break;
      case 5 : printf( "\n   Viernes" );
               break;
      case 6 : printf( "\n   Sabado" );
               break;
      case 7 : printf( "\n   Domingo" );
               break;
   default : printf( "\n   ERROR: Dia incorrecto."
);
   }

   return 0;
}


) Muestre el listado de los signos del zodíaco, con sus números asociados.
2º) Pida por teclado un número (dato entero) asociado a un signo del zodíaco.
3º) Muestre la categoría a la que pertenece el signo del zodíaco seleccionado.

Nota: Si el número introducido por el usuario, no está asociado a ningún signo del zodíaco, se mostrará el mensaje: "ERROR: <número> no está asociado a ningún signo.".

En pantalla veremos:
   Listado de signos del zodiaco:

   1. Aries
   2. Tauro
   3. Geminis
   4. Cancer
   5. Leo
   6. Virgo
   7. Libra
   8. Escorpio
   9. Sagitario
   10. Capricornio
   12. Acuario
   13. Piscis

   Introduzca numero de signo: 7

   Es un signo de Aire.
O también:
   Listado de signos del zodiaco:

   1. Aries
   2. Tauro
   3. Geminis
   4. Cancer
   5. Leo
   6. Virgo
   7. Libra
   8. Escorpio
   9. Sagitario
   10. Capricornio
   12. Acuario
   13. Piscis

   Introduzca numero de signo: 15

   ERROR: 15 no esta asociado a ningun signo.
Una posible solución es: titulo: zodiacos.cpp
#include <stdio.h>

int main()
{
   int numero;

   printf( "\n   Listado de signos del zodiaco:" );
   printf( "\n\n   1. Aries" );
   printf( "\n   2. Tauro" );
   printf( "\n   3. Geminis" );
   printf( "\n   4. Cancer" );
   printf( "\n   5. Leo" );
   printf( "\n   6. Virgo" );
   printf( "\n   7. Libra" );
   printf( "\n   8. Escorpio" );
   printf( "\n   9. Sagitario" );
   printf( "\n   10. Capricornio" );
   printf( "\n   11. Acuario" );
   printf( "\n   12. Piscis" );
   printf( "\n\n   Introduzca numero de signo: " );

   scanf( "%d", &numero );

   switch ( numero )
   {
      case  1 :
      case  5 :
      case  9 : printf( "\n   Es un signo de Fuego." );
                break;
      case  2 :
      case  6 :
      case 10 : printf( "\n   Es un signo de Tierra." );
                break;
      case  3 :
      case  7 :
      case 11 : printf( "\n   Es un signo de Aire." );
                break;
      case  4 :
      case  8 :
      case 12 : printf( "\n   Es un signo de Agua." );
                break;
     default : printf( "\n   ERROR: %d no esta asociado a ningun signo.", numero );
   }

   return 0;
}
Otra solución es: titulo: otrozodiaco.cpp
#include <stdio.h>
#include <string.h>

int main()
{
   int numero;
   char categoria[7];

   printf( "\n   Listado de signos del zodiaco:" );
   printf( "\n\n   1. Aries" );
   printf( "\n   2. Tauro" );
   printf( "\n   3. Geminis" );
   printf( "\n   4. Cancer" );
   printf( "\n   5. Leo" );
   printf( "\n   6. Virgo" );
   printf( "\n   7. Libra" );
   printf( "\n   8. Escorpio" );
   printf( "\n   9. Sagitario" );
   printf( "\n   10. Capricornio" );
   printf( "\n   11. Acuario" );
   printf( "\n   12. Piscis" );
   printf( "\n\n   Introduzca numero de signo: " );

   scanf( "%d", &numero );

   switch ( numero % 4 )
   {
      case  1 : strcpy( categoria, "Fuego" );
                break;
      case  2 : strcpy( categoria, "Tierra" );
                break;
      case  3 : strcpy( categoria, "Aire" );
                break;
      case  0 : strcpy( categoria, "Agua" );
   }

   if ( numero >= 1 && numero <= 12 )
      printf( "\n   Es un signo de %s.", categoria );
   else
      printf( "\n   ERROR: %d no esta asociado a ningun signo.",
              numero );

   return 0;
}


No hay comentarios:

Publicar un comentario