Las sentencias switch case en ALGOL son una herramienta poderosa para la toma de decisiones múltiples. Permiten ejecutar diferentes bloques de código basados en el valor de una expresión. Este tipo de estructura es útil cuando se tienen múltiples condiciones que evaluar y se desea evitar el uso excesivo de sentencias if-else.

Conceptos Clave

  1. Expresión de Control: La expresión que se evalúa y cuyo valor determina qué bloque de código se ejecutará.
  2. Casos: Cada posible valor de la expresión de control que tiene un bloque de código asociado.
  3. Caso por Defecto: Un bloque de código que se ejecuta si ninguno de los casos especificados coincide con el valor de la expresión de control.

Sintaxis Básica

La sintaxis de una sentencia switch case en ALGOL es la siguiente:

switch (expresión) begin
    case valor1:
        // Bloque de código para valor1
    case valor2:
        // Bloque de código para valor2
    ...
    case valorN:
        // Bloque de código para valorN
    default:
        // Bloque de código por defecto
end

Ejemplo Práctico

Vamos a ver un ejemplo práctico para entender mejor cómo funcionan las sentencias switch case en ALGOL. Supongamos que queremos escribir un programa que imprima el nombre del día de la semana basado en un número del 1 al 7.

begin
    integer day;
    day := 3;  // Cambia este valor para probar diferentes casos

    switch (day) begin
        case 1:
            print("Lunes");
        case 2:
            print("Martes");
        case 3:
            print("Miércoles");
        case 4:
            print("Jueves");
        case 5:
            print("Viernes");
        case 6:
            print("Sábado");
        case 7:
            print("Domingo");
        default:
            print("Número de día inválido");
    end
end

Explicación del Código

  1. Declaración de la Variable: Se declara una variable day de tipo entero.
  2. Asignación de Valor: Se asigna un valor a la variable day. En este caso, day se establece en 3.
  3. Sentencia switch: La expresión de control es la variable day.
  4. Casos: Cada case corresponde a un número del 1 al 7, y cada uno imprime el nombre del día correspondiente.
  5. Caso por Defecto: Si day no es un número del 1 al 7, se imprime "Número de día inválido".

Ejercicio Práctico

Ejercicio 1

Escribe un programa en ALGOL que tome un número del 1 al 12 y devuelva el nombre del mes correspondiente. Si el número no está en el rango de 1 a 12, debe imprimir "Número de mes inválido".

Solución

begin
    integer month;
    month := 5;  // Cambia este valor para probar diferentes casos

    switch (month) begin
        case 1:
            print("Enero");
        case 2:
            print("Febrero");
        case 3:
            print("Marzo");
        case 4:
            print("Abril");
        case 5:
            print("Mayo");
        case 6:
            print("Junio");
        case 7:
            print("Julio");
        case 8:
            print("Agosto");
        case 9:
            print("Septiembre");
        case 10:
            print("Octubre");
        case 11:
            print("Noviembre");
        case 12:
            print("Diciembre");
        default:
            print("Número de mes inválido");
    end
end

Retroalimentación y Consejos

  • Errores Comunes: Un error común es olvidar el bloque default, lo cual puede llevar a que no se manejen adecuadamente los valores fuera del rango esperado.
  • Consejo: Siempre incluye un caso por defecto para manejar valores inesperados y evitar comportamientos indeterminados en tu programa.

Conclusión

Las sentencias switch case en ALGOL son una forma eficiente de manejar múltiples condiciones basadas en el valor de una expresión. Son especialmente útiles cuando se tienen muchas condiciones que evaluar y se desea mantener el código limpio y legible. Con la práctica, aprenderás a utilizarlas de manera efectiva en tus programas.

En el próximo módulo, exploraremos las funciones y procedimientos en ALGOL, lo que te permitirá modularizar tu código y reutilizar bloques de lógica de manera eficiente.

© Copyright 2024. Todos los derechos reservados