En aquest tema, aprendrem sobre les funcions i subrutines en REXX, que són fonamentals per a l'organització i reutilització del codi. Les funcions i subrutines permeten dividir el codi en blocs més petits i manejables, facilitant la seva comprensió i manteniment.
Continguts
Introducció a les Funcions i Subrutines
Les funcions i subrutines són blocs de codi que realitzen tasques específiques. La diferència principal entre elles és que les funcions solen retornar un valor, mentre que les subrutines no ho fan necessàriament.
Definició de Funcions
En REXX, una funció es defineix utilitzant la paraula clau RETURN
per retornar un valor. Aquí teniu un exemple bàsic de funció que suma dos nombres:
Crida a Funcions
Per cridar una funció en REXX, simplement utilitzem el seu nom seguit dels paràmetres entre parèntesis. Aquí teniu un exemple de com cridar la funció sumar
definida anteriorment:
Passatge de Paràmetres
Els paràmetres es passen a les funcions mitjançant la instrucció PARSE ARG
. Aquí teniu un exemple de funció que calcula el factorial d'un nombre:
/* Definició d'una funció que calcula el factorial d'un nombre */ factorial: procedure parse arg n if n = 0 then return 1 return n * factorial(n - 1)
Subrutines
Les subrutines són similars a les funcions, però no necessiten retornar un valor. Es defineixen utilitzant la paraula clau CALL
. Aquí teniu un exemple de subrutina que imprimeix un missatge:
/* Definició d'una subrutina que imprimeix un missatge */ imprimirMissatge: procedure parse arg missatge say missatge return
Per cridar la subrutina imprimirMissatge
, utilitzem la instrucció CALL
:
Exemples Pràctics
Exemple 1: Funció per calcular el màxim de dos nombres
/* Definició d'una funció que calcula el màxim de dos nombres */ maxim: procedure parse arg a, b if a > b then return a return b /* Crida a la funció maxim */ resultat = maxim(10, 20) say "El màxim és:" resultat
Exemple 2: Subrutina per imprimir una taula de multiplicar
/* Definició d'una subrutina que imprimeix una taula de multiplicar */ imprimirTaula: procedure parse arg n do i = 1 to 10 say n "x" i "=" n * i end return /* Crida a la subrutina imprimirTaula */ call imprimirTaula 5
Exercicis Pràctics
Exercici 1: Funció per calcular la potència d'un nombre
Escriu una funció anomenada potencia
que calculi la potència d'un nombre donat una base i un exponent.
/* Definició de la funció potencia */ potencia: procedure parse arg base, exponent if exponent = 0 then return 1 return base * potencia(base, exponent - 1) /* Crida a la funció potencia */ resultat = potencia(2, 3) say "2 elevat a 3 és:" resultat
Exercici 2: Subrutina per imprimir una sèrie de Fibonacci
Escriu una subrutina anomenada imprimirFibonacci
que imprimeixi els primers n
nombres de la sèrie de Fibonacci.
/* Definició de la subrutina imprimirFibonacci */ imprimirFibonacci: procedure parse arg n a = 0 b = 1 do i = 1 to n say a temp = a + b a = b b = temp end return /* Crida a la subrutina imprimirFibonacci */ call imprimirFibonacci 10
Conclusió
En aquesta secció, hem après a definir i utilitzar funcions i subrutines en REXX. Hem vist com passar paràmetres a les funcions i subrutines, i hem practicat amb exemples i exercicis pràctics. Les funcions i subrutines són eines poderoses per organitzar i reutilitzar el codi, i són essencials per a la programació eficient en REXX. En el proper tema, explorarem les funcions incorporades en REXX.
Curs de Programació REXX
Mòdul 1: Introducció a REXX
- Què és REXX?
- Configuració de l'Entorn REXX
- Hola Món en REXX
- Sintaxi i Estructura Bàsica
- Variables i Tipus de Dades
Mòdul 2: Conceptes Bàsics de Programació
- Operadors i Expressions
- Estructures de Control: IF/THEN/ELSE
- Bucles: DO i LEAVE
- Entrada i Sortida
- Manipulació Bàsica de Cadenes
Mòdul 3: Programació Intermèdia en REXX
- Funcions i Subrutines
- Funcions Incorporades
- Gestió d'Errors
- Operacions d'Entrada/Sortida de Fitxers
- Treballant amb Arrays
Mòdul 4: Programació Avançada en REXX
- Manipulació Avançada de Cadenes
- Tècniques de Parsing
- Interfície amb Programes Externs
- Macros REXX
- Optimització del Rendiment