En aquest tema, aprendrem a crear i utilitzar subrutines i funcions en DCL (Digital Command Language) a OpenVMS. Les subrutines i funcions són eines poderoses que permeten modularitzar el codi, fer-lo més llegible i reutilitzable.
Objectius
- Entendre què són les subrutines i funcions.
- Aprendre a definir i cridar subrutines i funcions en DCL.
- Conèixer les diferències entre subrutines i funcions.
- Practicar amb exemples pràctics.
Què són les Subrutines i Funcions?
Subrutines
Una subrutina és un bloc de codi que es pot cridar des de diferents parts d'un programa. Les subrutines ajuden a evitar la duplicació de codi i faciliten la seva gestió.
Funcions
Una funció és similar a una subrutina, però retorna un valor. Les funcions són útils quan necessitem realitzar càlculs o operacions que produeixen un resultat que s'ha d'utilitzar posteriorment.
Definició de Subrutines en DCL
Sintaxi
Exemple
$! Definició de la subrutina $ SALUTAR: SUB $ WRITE SYS$OUTPUT "Hola, benvingut a OpenVMS!" $ RETURN $ END SALUTAR $! Crida a la subrutina $ GOSUB SALUTAR
Definició de Funcions en DCL
Sintaxi
Exemple
$! Definició de la funció $ SUMAR: FUNC $ valor1 = P1 $ valor2 = P2 $ resultat = valor1 + valor2 $ RETURN resultat $ END SUMAR $! Crida a la funció $ resultat = F$SUMAR(5, 10) $ WRITE SYS$OUTPUT "El resultat és: ", resultat
Diferències entre Subrutines i Funcions
Característica | Subrutina | Funció |
---|---|---|
Retorna un valor | No | Sí |
Crida | GOSUB | F$FUNCIO |
Ús principal | Modularitzar codi | Càlculs i operacions que produeixen un resultat |
Exercicis Pràctics
Exercici 1: Crear una Subrutina
Crea una subrutina que imprimeixi un missatge de benvinguda personalitzat. La subrutina ha de rebre el nom de l'usuari com a paràmetre.
Solució
$! Definició de la subrutina $ SALUTAR: SUB $ nom = P1 $ WRITE SYS$OUTPUT "Hola, ", nom, ", benvingut a OpenVMS!" $ RETURN $ END SALUTAR $! Crida a la subrutina $ GOSUB SALUTAR "Joan"
Exercici 2: Crear una Funció
Crea una funció que calculi el quadrat d'un nombre. La funció ha de rebre un nombre com a paràmetre i retornar el seu quadrat.
Solució
$! Definició de la funció $ QUADRAT: FUNC $ nombre = P1 $ resultat = nombre * nombre $ RETURN resultat $ END QUADRAT $! Crida a la funció $ resultat = F$QUADRAT(4) $ WRITE SYS$OUTPUT "El quadrat de 4 és: ", resultat
Errors Comuns i Consells
Errors Comuns
- No utilitzar
RETURN
al final de la subrutina o funció. - No passar els paràmetres correctament.
- Confondre la crida a una subrutina (
GOSUB
) amb la crida a una funció (F$FUNCIO
).
Consells
- Sempre documenta les teves subrutines i funcions per facilitar la seva comprensió.
- Utilitza noms descriptius per a les subrutines i funcions.
- Prova les subrutines i funcions amb diferents valors per assegurar-te que funcionen correctament.
Resum
En aquest tema, hem après a definir i utilitzar subrutines i funcions en DCL. Hem vist com modularitzar el codi per fer-lo més llegible i reutilitzable, i hem practicat amb exemples pràctics. Les subrutines i funcions són eines essencials per a qualsevol programador que treballi amb OpenVMS.
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