En este tema, aprenderemos sobre los constructos de bucle en el Lenguaje de Control (CL). Los bucles son fundamentales en la programación, ya que permiten ejecutar un bloque de código repetidamente bajo ciertas condiciones. En CL, los constructos de bucle más comunes son DO y DOWHILE.
Objetivos de Aprendizaje
- Comprender la sintaxis y el uso de los bucles
DOyDOWHILE. - Escribir programas CL que utilicen bucles para realizar tareas repetitivas.
- Identificar y corregir errores comunes en la implementación de bucles.
- Bucle
DO
DOEl bucle DO en CL se utiliza para ejecutar un bloque de código un número específico de veces. La sintaxis básica es la siguiente:
Ejemplo Práctico
Supongamos que queremos imprimir los números del 1 al 5. El código sería:
DCL VAR(&i) TYPE(*INT) LEN(4)
DO VAR(&i) FROM(1) TO(5) BY(1)
SNDPGMMSG MSG('Número: ' *CAT &i)
ENDDOExplicación del Código
DCL VAR(&i) TYPE(*INT) LEN(4): Declara una variable entera&i.DO VAR(&i) FROM(1) TO(5) BY(1): Inicia un bucle que va desde 1 hasta 5, incrementando&ien 1 en cada iteración.SNDPGMMSG MSG('Número: ' *CAT &i): Envía un mensaje con el valor actual de&i.ENDDO: Finaliza el bucle.
- Bucle
DOWHILE
DOWHILEEl bucle DOWHILE ejecuta un bloque de código mientras una condición sea verdadera. La sintaxis básica es:
Ejemplo Práctico
Supongamos que queremos imprimir los números del 1 al 5 usando DOWHILE. El código sería:
DCL VAR(&i) TYPE(*INT) LEN(4)
CHGVAR VAR(&i) VALUE(1)
DOWHILE (&i <= 5)
SNDPGMMSG MSG('Número: ' *CAT &i)
CHGVAR VAR(&i) VALUE(&i + 1)
ENDDOExplicación del Código
DCL VAR(&i) TYPE(*INT) LEN(4): Declara una variable entera&i.CHGVAR VAR(&i) VALUE(1): Inicializa&icon el valor 1.DOWHILE (&i <= 5): Inicia un bucle que se ejecuta mientras&isea menor o igual a 5.SNDPGMMSG MSG('Número: ' *CAT &i): Envía un mensaje con el valor actual de&i.CHGVAR VAR(&i) VALUE(&i + 1): Incrementa&ien 1.ENDDO: Finaliza el bucle.
Ejercicios Prácticos
Ejercicio 1: Bucle DO
Escribe un programa CL que imprima los números del 10 al 1 en orden descendente.
Solución
DCL VAR(&i) TYPE(*INT) LEN(4)
DO VAR(&i) FROM(10) TO(1) BY(-1)
SNDPGMMSG MSG('Número: ' *CAT &i)
ENDDOEjercicio 2: Bucle DOWHILE
Escribe un programa CL que imprima los números pares del 2 al 10.
Solución
DCL VAR(&i) TYPE(*INT) LEN(4)
CHGVAR VAR(&i) VALUE(2)
DOWHILE (&i <= 10)
SNDPGMMSG MSG('Número: ' *CAT &i)
CHGVAR VAR(&i) VALUE(&i + 2)
ENDDOErrores Comunes y Consejos
Error 1: Bucle Infinito
Un error común es crear un bucle infinito, donde la condición nunca se vuelve falsa. Asegúrate de que la variable de control se actualice correctamente dentro del bucle.
Error 2: Condición Incorrecta
Verifica que la condición del bucle sea correcta. Un error en la condición puede hacer que el bucle no se ejecute o se ejecute más veces de lo esperado.
Consejo: Depuración
Utiliza mensajes de depuración (SNDPGMMSG) dentro del bucle para verificar el valor de las variables en cada iteración. Esto te ayudará a identificar y corregir errores más fácilmente.
Conclusión
En esta sección, hemos aprendido sobre los constructos de bucle DO y DOWHILE en CL. Estos constructos son esenciales para realizar tareas repetitivas de manera eficiente. Asegúrate de practicar los ejemplos y ejercicios proporcionados para consolidar tu comprensión. En el próximo tema, exploraremos el manejo de errores en CL.
Curso de CL (Lenguaje de Control)
Módulo 1: Introducción a CL
- ¿Qué es el Lenguaje de Control?
- Configuración de tu Entorno
- Sintaxis y Estructura Básica
- Escribiendo tu Primer Programa CL
Módulo 2: Comandos Básicos de CL
- Introducción a los Comandos de CL
- Comandos de Gestión de Archivos
- Comandos de Gestión de Trabajos
- Comandos de Gestión del Sistema
Módulo 3: Variables y Expresiones
- Entendiendo las Variables
- Definiendo y Usando Variables
- Expresiones y Operadores
- Manipulación de Cadenas
Módulo 4: Estructuras de Control
Módulo 5: Comandos Avanzados de CL
- Operaciones Avanzadas de Archivos
- Programación Avanzada de Trabajos
- Comandos de Configuración del Sistema
- Seguridad y Permisos
