En aquest tema, explorarem les subrutines i els procediments en el Llenguatge de Control (CL). Les subrutines i els procediments són eines fonamentals per organitzar i modularitzar el codi, permetent la reutilització i la simplificació de tasques complexes.
Què són les Subrutines i els Procediments?
Subrutines
Una subrutina és un bloc de codi que es pot cridar des de diferents parts d'un programa. Les subrutines permeten dividir el codi en parts més petites i manejables, facilitant la seva lectura i manteniment.
Procediments
Un procediment és similar a una subrutina, però sovint es refereix a una funció que realitza una tasca específica i pot retornar un valor. En CL, els procediments es defineixen i es criden de manera similar a les subrutines.
Definició de Subrutines
Sintaxi Bàsica
Per definir una subrutina en CL, utilitzem la comanda SUBR. Aquí teniu un exemple bàsic:
PGM
DCL VAR(&RESULT) TYPE(*CHAR) LEN(10)
CALLSUBR SUBR(MYSUBR)
ENDPGM
SUBR MYSUBR
CHGVAR VAR(&RESULT) VALUE('Hello')
ENDSUBRExplicació del Codi
- PGM: Inici del programa.
- DCL VAR(&RESULT) TYPE(*CHAR) LEN(10): Declaració d'una variable
&RESULTde tipus caràcter amb una longitud de 10. - CALLSUBR SUBR(MYSUBR): Crida a la subrutina
MYSUBR. - ENDPGM: Final del programa.
- SUBR MYSUBR: Definició de la subrutina
MYSUBR. - CHGVAR VAR(&RESULT) VALUE('Hello'): Canvia el valor de la variable
&RESULTa 'Hello'. - ENDSUBR: Final de la subrutina.
Definició de Procediments
Sintaxi Bàsica
Els procediments en CL es defineixen amb la comanda PROC. Aquí teniu un exemple bàsic:
PGM
DCL VAR(&RESULT) TYPE(*CHAR) LEN(10)
CALLPROC PROC(MYPROC) PARM(&RESULT)
ENDPGM
PROC MYPROC
DCL VAR(&RESULT) TYPE(*CHAR) LEN(10)
CHGVAR VAR(&RESULT) VALUE('World')
ENDPROCExplicació del Codi
- PGM: Inici del programa.
- DCL VAR(&RESULT) TYPE(*CHAR) LEN(10): Declaració d'una variable
&RESULTde tipus caràcter amb una longitud de 10. - CALLPROC PROC(MYPROC) PARM(&RESULT): Crida al procediment
MYPROCpassant la variable&RESULTcom a paràmetre. - ENDPGM: Final del programa.
- PROC MYPROC: Definició del procediment
MYPROC. - DCL VAR(&RESULT) TYPE(*CHAR) LEN(10): Declaració de la variable
&RESULTdins del procediment. - CHGVAR VAR(&RESULT) VALUE('World'): Canvia el valor de la variable
&RESULTa 'World'. - ENDPROC: Final del procediment.
Exercicis Pràctics
Exercici 1: Crear una Subrutina
Crea una subrutina que multipliqui dos nombres i emmagatzemi el resultat en una variable.
Solució
PGM
DCL VAR(&NUM1) TYPE(*DEC) LEN(5 0) VALUE(5)
DCL VAR(&NUM2) TYPE(*DEC) LEN(5 0) VALUE(10)
DCL VAR(&RESULT) TYPE(*DEC) LEN(10 0)
CALLSUBR SUBR(MULTIPLY)
ENDPGM
SUBR MULTIPLY
CHGVAR VAR(&RESULT) VALUE(&NUM1 * &NUM2)
ENDSUBRExercici 2: Crear un Procediment
Crea un procediment que rebi un nom com a paràmetre i retorni una salutació personalitzada.
Solució
PGM
DCL VAR(&NAME) TYPE(*CHAR) LEN(10) VALUE('John')
DCL VAR(&GREETING) TYPE(*CHAR) LEN(20)
CALLPROC PROC(GREET) PARM(&NAME &GREETING)
ENDPGM
PROC GREET
DCL VAR(&NAME) TYPE(*CHAR) LEN(10)
DCL VAR(&GREETING) TYPE(*CHAR) LEN(20)
CHGVAR VAR(&GREETING) VALUE('Hello, ' *CAT &NAME)
ENDSUBRErrors Comuns i Consells
- No Declarar Variables: Assegura't de declarar totes les variables abans d'utilitzar-les.
- Oblidar
ENDSUBRoENDPROC: Sempre tanca les subrutines i els procediments ambENDSUBRoENDPROC. - Passar Paràmetres Correctament: Quan cridis procediments, assegura't de passar els paràmetres correctament.
Resum
En aquesta secció, hem après a:
- Definir i utilitzar subrutines i procediments en CL.
- Modularitzar el codi per millorar la seva llegibilitat i mantenibilitat.
- Passar paràmetres a procediments per realitzar tasques específiques.
Amb aquests coneixements, estàs preparat per escriure codi CL més organitzat i eficient. En el següent mòdul, explorarem les comandes avançades de CL per aprofundir encara més en les capacitats d'aquest llenguatge.
Curs de CL (Llenguatge de Control)
Mòdul 1: Introducció al CL
- Què és el Llenguatge de Control?
- Configuració del Teu Entorn
- Sintaxi i Estructura Bàsiques
- Escrivint el Teu Primer Programa CL
Mòdul 2: Comandes Bàsiques de CL
- Introducció a les Comandes de CL
- Comandes de Gestió de Fitxers
- Comandes de Gestió de Treballs
- Comandes de Gestió del Sistema
Mòdul 3: Variables i Expressions
- Comprenent les Variables
- Definint i Utilitzant Variables
- Expressions i Operadors
- Manipulació de Cadenes
Mòdul 4: Estructures de Control
Mòdul 5: Comandes Avançades de CL
- Operacions Avançades de Fitxers
- Programació Avançada de Treballs
- Comandes de Configuració del Sistema
- Seguretat i Permisos
