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:

/* Definició d'una funció que suma dos nombres */
sumar: procedure
  parse arg a, b
  return a + b

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:

/* Crida a la funció sumar */
resultat = sumar(5, 3)
say "El resultat de la suma és:" resultat

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:

/* Crida a la subrutina imprimirMissatge */
call imprimirMissatge "Hola, món!"

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.

© Copyright 2024. Tots els drets reservats