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
- Expresión de Control: La expresión que se evalúa y cuyo valor determina qué bloque de código se ejecutará.
- Casos: Cada posible valor de la expresión de control que tiene un bloque de código asociado.
- 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
- Declaración de la Variable: Se declara una variable
day
de tipo entero. - Asignación de Valor: Se asigna un valor a la variable
day
. En este caso,day
se establece en 3. - Sentencia
switch
: La expresión de control es la variableday
. - Casos: Cada
case
corresponde a un número del 1 al 7, y cada uno imprime el nombre del día correspondiente. - 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.
Curso de Programación en ALGOL
Módulo 1: Introducción a ALGOL
- ¿Qué es ALGOL?
- Historia y Evolución de ALGOL
- Configuración del Entorno ALGOL
- Primer Programa en ALGOL
Módulo 2: Sintaxis y Estructura Básica
- Estructura del Programa ALGOL
- Variables y Tipos de Datos
- Entrada y Salida Básica
- Operadores y Expresiones
Módulo 3: Estructuras de Control
Módulo 4: Funciones y Procedimientos
- Definición de Funciones
- Parámetros de Función y Valores de Retorno
- Funciones Recursivas
- Procedimientos en ALGOL
Módulo 5: Estructuras de Datos
Módulo 6: Temas Avanzados
Módulo 7: Aplicaciones Prácticas
- Métodos Numéricos
- Implementación de Algoritmos
- Construcción de un Compilador Simple
- Estudios de Caso y Proyectos