En este tema, aprenderemos sobre las estructuras de control en DCL (Digital Command Language) de OpenVMS. Las estructuras de control son fundamentales para la programación, ya que permiten dirigir el flujo de ejecución de un script en función de condiciones y bucles.

Contenido

Introducción a las Estructuras de Control

Las estructuras de control en DCL permiten tomar decisiones y repetir acciones en función de condiciones específicas. Las principales estructuras de control en DCL son las condicionales y los bucles.

Condicionales

IF...THEN...ELSE

La estructura IF...THEN...ELSE permite ejecutar comandos basados en una condición. La sintaxis básica es la siguiente:

$ IF <condición> THEN <comando>
$ IF <condición> THEN <comando1> ELSE <comando2>

Ejemplo:

$ SET VERIFY
$ x = 10
$ IF x .GT. 5 THEN WRITE SYS$OUTPUT "x es mayor que 5"
$ IF x .LE. 5 THEN WRITE SYS$OUTPUT "x es menor o igual a 5" ELSE WRITE SYS$OUTPUT "x es mayor que 5"

En este ejemplo, x se compara con 5, y se imprime un mensaje en función del resultado de la comparación.

GOTO

La instrucción GOTO permite saltar a una etiqueta específica en el script. La sintaxis básica es:

$ GOTO <etiqueta>
...
<etiqueta>:
<comandos>

Ejemplo:

$ SET VERIFY
$ x = 10
$ IF x .GT. 5 THEN GOTO MAYOR
$ WRITE SYS$OUTPUT "x es menor o igual a 5"
$ GOTO FIN
$MAYOR:
$ WRITE SYS$OUTPUT "x es mayor que 5"
$FIN:
$ WRITE SYS$OUTPUT "Fin del script"

En este ejemplo, si x es mayor que 5, el script salta a la etiqueta MAYOR.

Bucles

FOR

El bucle FOR permite repetir un conjunto de comandos un número específico de veces. La sintaxis básica es:

$ FOR <variable> IN <inicio>:<fin> DO <comando>

Ejemplo:

$ SET VERIFY
$ FOR i IN 1:5 DO WRITE SYS$OUTPUT "Iteración ", i

En este ejemplo, el bucle FOR imprime el número de iteración desde 1 hasta 5.

WHILE

El bucle WHILE permite repetir un conjunto de comandos mientras una condición sea verdadera. La sintaxis básica es:

$ WHILE <condición> DO <comando>

Ejemplo:

$ SET VERIFY
$ x = 1
$ WHILE x .LE. 5 DO WRITE SYS$OUTPUT "x = ", x
$ x = x + 1

En este ejemplo, el bucle WHILE imprime el valor de x mientras x sea menor o igual a 5.

Ejercicios Prácticos

Ejercicio 1: Condicionales

Escribe un script que verifique si un número es par o impar.

Solución:

$ SET VERIFY
$ numero = 7
$ IF (numero .AND. 1) .EQ. 0 THEN WRITE SYS$OUTPUT "El número es par" ELSE WRITE SYS$OUTPUT "El número es impar"

Ejercicio 2: Bucles

Escribe un script que imprima los números del 1 al 10 utilizando un bucle FOR.

Solución:

$ SET VERIFY
$ FOR i IN 1:10 DO WRITE SYS$OUTPUT "Número: ", i

Ejercicio 3: Bucles y Condicionales

Escribe un script que imprima los números del 1 al 10, pero que indique si el número es par o impar.

Solución:

$ SET VERIFY
$ FOR i IN 1:10 DO -
$ IF (i .AND. 1) .EQ. 0 THEN WRITE SYS$OUTPUT i, " es par" ELSE WRITE SYS$OUTPUT i, " es impar"

Conclusión

En esta sección, hemos aprendido sobre las estructuras de control en DCL, incluyendo las condicionales IF...THEN...ELSE y GOTO, así como los bucles FOR y WHILE. Estas estructuras son esenciales para crear scripts más dinámicos y funcionales en OpenVMS. Asegúrate de practicar los ejercicios para reforzar tu comprensión y prepararte para los temas más avanzados.

Curso de Programación en OpenVMS

Módulo 1: Introducción a OpenVMS

Módulo 2: Comandos Básicos de OpenVMS

Módulo 3: Sistema de Archivos de OpenVMS

Módulo 4: Scripting con DCL

Módulo 5: Gestión del Sistema OpenVMS

Módulo 6: Redes en OpenVMS

Módulo 7: Programación Avanzada en OpenVMS

Módulo 8: Clustering en OpenVMS

Módulo 9: Seguridad en OpenVMS

Módulo 10: Solución de Problemas y Optimización

© Copyright 2024. Todos los derechos reservados