SENTENCIA en caso (switch) La sentencia en caso (switch) hace que se seleccione un grupo de instrucciones entre varios grupos disponibles. La selección se basa en el valor de una expresión que se incluye en la instrucción en caso (switch). Sintaxis del pseudocódigo: en caso (expresion) casos Diagrama de Flujo:
Sintaxis del código: switch (expresión) { case : }donde: expresión devuelve un valor entero, aunque también puede ser de tipo char. case: generalmente es compuesta y especifica las opciones posibles a seguir. Cada opción se expresa como un grupo de una o más instrucciones individuales dentro de la instrucción global incluida. Para cada opción, la primera instrucción dentro del grupo debe ser precedida por una o mas etiquetas >. Las etiquetas case deben ser, únicas dentro de una instrucción switch dada. La sintaxis de cada grupo de instrucciones es: case expresión: instrucción 1 instrucción 2 .................. instrucción n o en el caso de varias etiquetas case, case expresión 1: case expresión 2: ................................ case expresión m: instrucción 1 instrucción 2 .................. instrucción n Cuando se ejecuta la instrucción switch, se evalúa la expresión y se transfiere el control directamente al grupo de instrucciones cuya etiqueta case tenga el mismo valor que el de expresión. Si ninguno de los valores de las etiquetas case coincide con el valor de expresión, entonces no se realizará ninguno de los grupos de instrucción switch y se transfiere el control a la instrucción que se encuentre a continuación del switch.
Ejemplo: switch(eleccion = getchar()) { case 'r': case 'R': printf("\nROJO"); break; case 'a': case 'A': printf("\nAZUL"); break; case 'b': case 'B': printf("\nBLANCO"); break; } Una variación del programa es la siguiente: switch(eleccion = toupper(getchar())) { case 'R': printf("ROJO"); break; case 'A': printf("AZUL"); break; case 'B': printf("BLANCO"); break; default: printf("ERROR"); } La instrucción switch contiene ahora un grupo default, el cual genera un mensaje de error si ninguna de las etiquetas case coincide con expresión. En este ejemplo, la variable indicador es de tipo entero, y x e y son variables de coma flotante.
33. Realizar un programa que lea dos enteros y un carácter. Si el carácter es un +, se imprime la suma; si es un -, se imprime la diferencia, si es un *, se imprime el producto; si es un /, se imprime el cociente; y si es un % se imprime el resto. (OPERACIONES.CPP)
En este ejemplo las etiquetas case son numéricas. Para la sentencia switch, el valor de la expresión puede ser tipo int o char, pero no de tipo float ni double. El valor de la etiqueta case debe ser el mismo tipo que el de expresión. 1. Realizar un programa donde se necesita saber si un determinado carácter es una vocal. (VOCAL.CPP) /*programa vocales */
int indicador;float x,y;void main(void){ clrscr(); printf("Escoge un numero entre -1 y 3, que sea entero: "); scanf("%d",&indicador); printf("Dame el valor de x: "); scanf("%f",&x); clrscr(); switch(indicador) { case -1: y =fabs(x); printf("El valor absoluto de x es: y= %.2f",y); break; case 0: y = sqrt(x); printf("La raiz cuadrada de x es: y= %.2f",y); break; case 1: y = x; printf("El valor de y es igual a x: y= %.2f",y); break; case 2: case 3: y = 2 * (x-1); printf("El valor y es, y= %.2f",y); break; default: y = 0; printf("El valor de y es, y=%.0f",y); } getch();}
char car;void main(void){ clrscr(); printf("Escribe una letra: "); scanf("%c",&car); switch(tolower(car)) { case 'a': case 'e': case 'i': case 'o':case 'u': printf("\n%c es una vocal \n",car); break; default: printf("\n%c NO ES UNA VOCAL \n",car); } getch();}2. Realizar un programa donde dada una nota de un examen escribir lo que se indica en la siguiente tabla. (NOTA.CPP)
char nota;void main(void){ clrscr(); printf("Proporciona la calificacion (A-F) y pulse enter: "); scanf("%c",¬a); switch(toupper(nota)) { case 'A': puts("Excelente, Examen superado"); break; case 'B': puts("Notable, Suficiencia"); break; case 'C': puts("Aprobado"); break; case 'D': case 'F': puts("Suspendido"); break; default: puts("No es posible esta nota"); } puts("\nFinal del programa"); getch();}
char opera;int e,c,resultado;void main (void){ clrscr(); gotoxy(5,5); printf("Escoge alguno de los siguientes operadores:"); gotoxy(20,10); printf("OPERADOR FUNCION"); gotoxy(24,12); printf("+ SUMA "); gotoxy(24,14); printf("- RESTA "); gotoxy(24,16); printf("* MULTIPLICA "); gotoxy(24,18); printf("/ DIVIDE "); gotoxy(24,20); printf("% RESIDUO "); gotoxy(40,24); scanf("%c",&opera); gotoxy(15,30); printf("Proporciona dos numeros: "); scanf("%d %d",&c,&e); clrscr(); switch(opera) { case '+': resultado= c+e; gotoxy(15,25); printf("La suma es: %d",resultado); break; case '-': resultado= c-e; gotoxy(15,25); printf("La resta es: %d",resultado); break; case '*': resultado= c*e; gotoxy(15,25); printf("La multiplicacion es: %d",resultado); break; case '/': resultado= c/e; gotoxy(15,25); printf("La divisi¢n es: %d",resultado); break; case '%': resultado= c%e; gotoxy(15,25); printf("El resto es : %d",resultado); break; default: gotoxy(20,25); printf("ERROR, NO SE PUEDE REALIZAR NINGUNA OPERACION"); } getch();}
4. Programa que calcula el descuento de un cliente dependiendo de la bolita que obtenga aleatoriamente.
int c;float tc,pf;void main (void){ clrscr(); randomize(); /* Inicializa el generador de números pseudoaleatorios. Impide que se repitan las mismas secuencias de números aleatorios en diferentes ejecuciones. */ printf("Proporciona el total de la compra: $"); scanf("%f",&tc); c=rand()%4; // Genera un número (entero) pseudoaleatorio en el rango de 0 a 215. printf("El color de tu bolita es:"); switch(c) { case 0: printf ("BLANCA"); printf("Descuento del 0%"); pf=tc-(tc*0.0); break; case 1: printf ("ROJA"); printf("Descuento del 50%"); pf=tc-(tc*0.5); break; case 2: printf ("VERDE"); printf("Descuento del 30%"); pf=tc-(tc*0.3); break; case 3: printf ("AZUL"); printf("Descuento del 15%"); pf=tc-(tc*0.15); break; default: printf ("ERROR NO EXISTE BOLITA PARA DESCUENTO"); } printf("El Total a pagar es: $%.2f",pf); getch();}
introduccion
Ejemplos
Ejemplos3
ejemplos2
Ejemplos4
There are no comments, be the first and leave one below:
Want to create your own Notes for free with GoConqr? Learn more.