Sei sulla pagina 1di 6

En esta prctica el alumno debe usar las estructuras de control selectivas mltiples y compuestas en C++, para la resolucin del

laboratorio.

Estructura switch

Aunque la sentencia if de C++ es muy potente, en ocasiones su escritura puede resultar tediosa, sobre todo en casos en los que el programa presenta varias elecciones despus de chequear una expresin: seleccin mltiple o multialternativa. En situaciones donde el valor de una expresin determina qu sentencias sern ejecutadas es mejor utilizar una sentencia switch en lugar de una if.

Por ejemplo, la sentencia switch:

Tiene el mismo efecto que la siguiente sentencia if:

switch (operador) { case + : resultado = A + B; break; case - : resultado = A - B; break; case * : resultado = A * B; break; case / :

if (operador == +) resultado = A + B; else if (operador == -) resultado = A - B; else if (operador == *) resultado = A * B; else if (operador == /) resultado = A / B; else cout << "Operador invalido";

resultado = A / B; break; default : cout << "Operador invalido"; }

En este ejemplo se observa que el valor de la expresin operador (en este caso slo una variable) determina qu sentencias se van a ejecutar. Esta expresin recibe el nombre de selector de la estructura selectiva mltiple. Tambin se puede apreciar la mayor simplicidad de la primera sentencia.

La palabra reservada break permite que el flujo de programa se detenga justo despus de la ejecucin de la sentencia anterior a ese break, impidiendo que se ejecuten las sentencias correspondientes a las siguientes alternativas del switch. Por tanto, debemos obligatoriamente acabar cada bloque de sentencias correspondiente a cada alternativa con una sentencia break.

Por otro lado, la alternativa default es opcional y engloba un conjunto de sentencias (que puede ser vaco, contener una sola sentencia o varias) que se ejecutan en caso de que ninguna de las alternativas del switch tenga un valor coincidente con el resultado de evaluar la expresin del selector.

UGMA

Practica N 3. Programacion I

Pg. 3

UGMA

Practica N 3. Programacion I

Pg. 4

La notacin BNF de la sentencia switch es:

<sent_switch>::= switch (<expresion>) { {case <caso> [break]} [default <sec_sent>] } <caso> ::= <expresion_constante> : <sec_sent>

Una sentencia switch contiene un selector (en el ejemplo, operador), cuyo tipo debe ser int, char o enumerado. Cuando una sentencia switch se ejecuta, el valor del selector se compara con las etiquetas case. Si alguna de ellas concuerda con ese valor se ejecutar la correspondiente secuencia de sentencias. Si queremos que varias alternativas tengan el mismo conjunto de sentencias a ejecutar, podemos hacer como en el siguiente

Ejemplo:

switch (selector) { case 1: case 2: cout << "Salida para los casos 1 y 2" << endl; break; case 3: cout << "Salida para el caso 3" << endl; break; default: cout << "Salida para los restantes casos" << endl; }

UGMA

Practica N 3. Programacion I

Pg. 5

Ejemplo:
Programa que lee un numero del 1 al 7 y muestra el nombre del dia de la semana al que corresponde #include <iostream.h> #include <conio.h>

void main() { int num; cout<<Ingrese un Numero del 1 al 7 ; cin>>num; switch (num) { case 1:cout << "DOMINGO" << endl; break; case 2:cout << "LUNES" << endl; break; case 3:cout << "MARTES" << endl; break; case 4:cout << "MIERCOLES" << endl; break; case 5:cout << "JUEVES" << endl; break; case 6:cout << "VIERNES" << endl; break; case 7:cout << "SABADO" << endl; break; default: cout << "Numero Invalido. Debe ser del 1 al 7" << endl; }

UGMA

Practica N 3. Programacion I

Pg. 6

System(pause); }

Laboratorio:

1) Realizar un programa en c++ , que muestre un men con las siguientes opciones: a. Verificar si un numero es par o no b. Calcular la potencia de un numero, dado la base y el exponente c. Salir

2) Realizar un programa que lea una letra introducida por el usuario y debe decir si es una
vocal, y que vocal es (debe validar maysculas y minsculas)