
Una de las principales aplicaciones es la elaboración de un “menú de opciones” dentro de un programa.
Sintaxis switch (expresion) { case c1: // código a ejecutar en caso de que expresion == c1 break;
case c2: // código a ejecutar en caso de que expresion == c2 break;
…
default: // código (opcional) a ejecutar en caso de que no se cumpla // ninguna de las condiciones anteriores } * Es importante recordar que c1, c2, etc. deben ser constantes enteras!
Ejemplo: menú de opciones int a, b, r, opcion; cout << “1.- Suma” << endl; cout << “2.- Resta” << endl; cout << “3.- Producto” << endl; cout << “4.- División” << endl; cout << “Elige una opción: “ << endl; cin << opcion; switch (opcion) { case 1: r = a + b; break; case 2: r = a – b; break; case 3: r = a * b; break; case 4: r = a / b; break; default: cout << “Opcion invalida” << endl; } cout << “El resultado es “ << r << endl; int a, b, r, opcion; cout << “1.- Suma” << endl; cout << “2.- Resta” << endl; cout << “3.- Producto” << endl; cout << “4.- División” << endl; cout << “Elige una opción: “ << endl; cin << opcion; if (opcion == 1) { r = a + b; } else { if (opcion == 2) { r = a – b; } else { if (opcion == 3) { r = a * b; } else { if (opcion == 4) { r = a / b; } else { cout << “Opcion invalida” << endl; } } } } cout << “El resultado es “ << r << endl; Usando switch Usando if
Práctica En la música occidental, las notas Do, Re, Mi, Fa, Sol, La, y Si suelen representarse mediante las letras C, D, E, F, G, A, y B, respectivamente.
Elabore un programa que tome como entrada la letra (mayúscula o minúscula) correspondiente a una nota e imprima su nombre. Si la letra dada no corresponde a una nota, el programa debe indicarlo mediante un mensaje de error.
Sugerencia: utilice el tipo char para almacenar caracteres y recuerde que las constantes de este tipo se escriben entre apóstrofos (e.g., ‘a’, ‘z’, ‘*’, etc.).
Ejercicio Considere el siguiente problema: 3 misioneros y 3 caníbales desean cruzar un río usando una balsa para 2 pasajeros. En ningún momento puede haber mas caníbales que misioneros en cualquier orilla del río. Los movimientos válidos consisten en trasladar uno o dos personajes de una orilla a otra, alternando en cada movimiento el origen y destino.
Estructuras de iteración Las estructuras de iteración se utilizan cuando es necesario repetir un cierto bloque de código un número determinado o indeterminado de veces.
Todas las estructuras de iteración se basan en la ejecución de un bloque de código de manera repetida mientras el valor de una expresión booleana de control sea verdadero.
Por lo tanto, es muy importante asegurarse de que la condición se vuelve falsa en algún momento, de manera que el programa no quede atascado en un ciclo infinito.
Instrucción while Sintaxis:
while (expresion) { // Código a ejecutar de manera repetida // mientras la expresión sea verdadera }
Ejemplo El siguiente programa calcula el factorial de n, donde n es dado por el usuario:
int main() { int i, n, factorial; cout << “Dame el valor de n: “; cin >> n; factorial = 1; i = 1; while (i <= n) { factorial = factorial * i; i = i + 1; } cout << “El factorial de “ << n << “ es “ << factorial << endl; }
Práctica Elabore un programa que pida al usuario un entero positivo n. Luego, el programa debe pedir al usuario n enteros usando un ciclo. El programa deberá encontrar el mayor, menor, y promedio de los valores dados por el usuario e imprimirlos al final.
Instrucción do…while La instrucción while siempre verifica primero que la condición de control sea verdadera antes de ejecutar el bloque de código.
Si se desea ejecutar el bloque de código al menos una vez antes de verificar la condición, se puede usar la instrucción do…while:
do { // bloque de código a ejecutar al menos una vez } while (expresion);
Página siguiente |