En aquest tema, aprendrem sobre les estructures de control en DCL (Digital Command Language) a OpenVMS. Les estructures de control són fonamentals per a la programació, ja que permeten controlar el flux d'execució dels scripts. Veurem les següents estructures de control:
- Condicionals (IF-THEN-ELSE)
- Bucles (FOR, WHILE, REPEAT-UNTIL)
- Comandes de control de flux (GOTO, EXIT)
- Condicionals (IF-THEN-ELSE)
Els condicionals permeten executar diferents blocs de codi basant-se en una condició. La sintaxi bàsica és la següent:
Exemple:
$! Exemple de condicional IF-THEN-ELSE $ SET VERIFY $ x = 10 $ IF x .GT. 5 THEN $ WRITE SYS$OUTPUT "x és major que 5" $ ELSE $ WRITE SYS$OUTPUT "x és menor o igual a 5" $ ENDIF
Explicació:
SET VERIFY
activa la visualització de les comandes mentre s'executen.x = 10
assigna el valor 10 a la variablex
.IF x .GT. 5 THEN
comprova six
és major que 5.WRITE SYS$OUTPUT
imprimeix el missatge corresponent.
- Bucles
2.1. Bucle FOR
El bucle FOR
s'utilitza per repetir un bloc de codi un nombre determinat de vegades. La sintaxi és:
Exemple:
$! Exemple de bucle FOR $ SET VERIFY $ FOR i = 1 TO 5 DO $ WRITE SYS$OUTPUT "Valor de i: ", i $ ENDFOR
Explicació:
FOR i = 1 TO 5 DO
repeteix el bloc de codi peri
des de 1 fins a 5.WRITE SYS$OUTPUT
imprimeix el valor dei
en cada iteració.
2.2. Bucle WHILE
El bucle WHILE
repeteix un bloc de codi mentre una condició sigui certa. La sintaxi és:
Exemple:
$! Exemple de bucle WHILE $ SET VERIFY $ x = 1 $ WHILE x .LE. 5 DO $ WRITE SYS$OUTPUT "Valor de x: ", x $ x = x + 1 $ ENDWHILE
Explicació:
x = 1
inicialitza la variablex
a 1.WHILE x .LE. 5 DO
repeteix el bloc de codi mentrex
sigui menor o igual a 5.x = x + 1
incrementax
en 1 en cada iteració.
2.3. Bucle REPEAT-UNTIL
El bucle REPEAT-UNTIL
repeteix un bloc de codi fins que una condició sigui certa. La sintaxi és:
Exemple:
$! Exemple de bucle REPEAT-UNTIL $ SET VERIFY $ x = 1 $ REPEAT $ WRITE SYS$OUTPUT "Valor de x: ", x $ x = x + 1 $ UNTIL x .GT. 5
Explicació:
x = 1
inicialitza la variablex
a 1.REPEAT
inicia el bucle.UNTIL x .GT. 5
finalitza el bucle quanx
és major que 5.
- Comandes de Control de Flux
3.1. GOTO
La comanda GOTO
permet saltar a una etiqueta específica dins del codi. La sintaxi és:
Exemple:
$! Exemple de GOTO $ SET VERIFY $ x = 1 $ GOTO SALT $ WRITE SYS$OUTPUT "Aquesta línia no s'executarà" $ SALT: $ WRITE SYS$OUTPUT "S'ha saltat a l'etiqueta SALT"
Explicació:
GOTO SALT
salta a l'etiquetaSALT
.WRITE SYS$OUTPUT
imprimeix el missatge després de l'etiquetaSALT
.
3.2. EXIT
La comanda EXIT
finalitza l'execució del script. La sintaxi és:
Exemple:
$! Exemple de EXIT $ SET VERIFY $ WRITE SYS$OUTPUT "Abans de l'EXIT" $ EXIT $ WRITE SYS$OUTPUT "Aquesta línia no s'executarà"
Explicació:
EXIT
finalitza l'execució del script immediatament.
Exercicis Pràctics
Exercici 1
Escriu un script que imprimeixi els nombres de 1 a 10 utilitzant un bucle FOR
.
Solució:
Exercici 2
Escriu un script que imprimeixi els nombres de 1 a 10 utilitzant un bucle WHILE
.
Solució:
Exercici 3
Escriu un script que imprimeixi els nombres de 1 a 10 utilitzant un bucle REPEAT-UNTIL
.
Solució:
Resum
En aquest tema, hem après sobre les estructures de control en DCL, incloent condicionals (IF-THEN-ELSE
), bucles (FOR
, WHILE
, REPEAT-UNTIL
) i comandes de control de flux (GOTO
, EXIT
). Aquestes estructures són essencials per controlar el flux d'execució dels scripts i permeten crear programes més dinàmics i flexibles.
Curs de Programació OpenVMS
Mòdul 1: Introducció a OpenVMS
- Què és OpenVMS?
- Història i Evolució d'OpenVMS
- Conceptes Bàsics i Terminologia
- Visió General de l'Arquitectura del Sistema
- Instal·lació i Configuració
Mòdul 2: Comandes Bàsiques d'OpenVMS
- Introducció a DCL (Digital Command Language)
- Comandes de Gestió de Fitxers
- Comandes de Gestió de Processos
- Comandes de Gestió del Sistema
- Ús de l'Ajuda i la Documentació
Mòdul 3: Sistema de Fitxers d'OpenVMS
- Estructura del Sistema de Fitxers
- Tipus i Atributs de Fitxers
- Operacions amb Fitxers
- Gestió de Directoris
- Control d'Accés i Seguretat
Mòdul 4: Scripting amb DCL
- Introducció al Scripting amb DCL
- Variables i Tipus de Dades
- Estructures de Control
- Subrutines i Funcions
- Gestió d'Errors
Mòdul 5: Gestió del Sistema OpenVMS
- Gestió de Comptes d'Usuari
- Gestió de Discs i Volums
- Procediments de Còpia de Seguretat i Restauració
- Monitorització del Sistema i Optimització del Rendiment
- Gestió de Parches i Actualitzacions
Mòdul 6: Xarxes a OpenVMS
- Conceptes Bàsics de Xarxes
- Configuració de TCP/IP
- Configuració de DECnet
- Serveis i Protocols de Xarxa
- Resolució de Problemes de Xarxa
Mòdul 7: Programació Avançada a OpenVMS
- Introducció als Llenguatges de Programació d'OpenVMS
- Ús de C a OpenVMS
- Ús de Fortran a OpenVMS
- Ús de COBOL a OpenVMS
- Interfície amb Serveis del Sistema
Mòdul 8: Clúster d'OpenVMS
- Introducció als Clústers
- Configuració i Gestió de Clústers
- Comunicació en Clúster
- Failover i Equilibri de Càrrega
- Seguretat en Clúster
Mòdul 9: Seguretat a OpenVMS
- Conceptes de Seguretat i Millors Pràctiques
- Autenticació i Autorització d'Usuaris
- Auditoria i Monitorització
- Xifrat de Dades
- Resposta i Recuperació d'Incidents