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') ENDSUBR
Explicació del Codi
- PGM: Inici del programa.
- DCL VAR(&RESULT) TYPE(*CHAR) LEN(10): Declaració d'una variable
&RESULT
de 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
&RESULT
a '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') ENDPROC
Explicació del Codi
- PGM: Inici del programa.
- DCL VAR(&RESULT) TYPE(*CHAR) LEN(10): Declaració d'una variable
&RESULT
de tipus caràcter amb una longitud de 10. - CALLPROC PROC(MYPROC) PARM(&RESULT): Crida al procediment
MYPROC
passant la variable&RESULT
com a paràmetre. - ENDPGM: Final del programa.
- PROC MYPROC: Definició del procediment
MYPROC
. - DCL VAR(&RESULT) TYPE(*CHAR) LEN(10): Declaració de la variable
&RESULT
dins del procediment. - CHGVAR VAR(&RESULT) VALUE('World'): Canvia el valor de la variable
&RESULT
a '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) ENDSUBR
Exercici 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) ENDSUBR
Errors Comuns i Consells
- No Declarar Variables: Assegura't de declarar totes les variables abans d'utilitzar-les.
- Oblidar
ENDSUBR
oENDPROC
: Sempre tanca les subrutines i els procediments ambENDSUBR
oENDPROC
. - 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