Les funcions incorporades en REXX són eines molt potents que permeten realitzar una àmplia varietat d'operacions sense necessitat de definir funcions personalitzades. Aquestes funcions estan disponibles de manera predeterminada i cobreixen operacions comunes com la manipulació de cadenes, operacions matemàtiques, gestió de dates i hores, entre d'altres.

Tipus de Funcions Incorporades

Les funcions incorporades en REXX es poden classificar en diverses categories:

  1. Funcions de Manipulació de Cadenes
  2. Funcions Matemàtiques
  3. Funcions de Data i Hora
  4. Funcions de Conversió
  5. Altres Funcions Utilitàries

  1. Funcions de Manipulació de Cadenes

Aquestes funcions permeten treballar amb cadenes de text de manera eficient.

  • LENGTH(cadena): Retorna la longitud de la cadena.
  • SUBSTR(cadena, inici, longitud): Retorna una subcadena de la cadena original.
  • POS(subcadena, cadena, inici): Retorna la posició de la subcadena dins de la cadena.
  • LEFT(cadena, longitud): Retorna els primers 'longitud' caràcters de la cadena.
  • RIGHT(cadena, longitud): Retorna els últims 'longitud' caràcters de la cadena.
  • STRIP(cadena, opcional, caràcter): Elimina espais o caràcters específics de l'inici i/o final de la cadena.

Exemple Pràctic

/* Exemple de funcions de manipulació de cadenes */
cadena = "Hola, món!"
longitud = LENGTH(cadena)
subcadena = SUBSTR(cadena, 1, 4)
posicio = POS("món", cadena)
esquerra = LEFT(cadena, 5)
dreta = RIGHT(cadena, 4)
cadena_neta = STRIP("   Hola, món!   ")

say "Longitud de la cadena: " longitud
say "Subcadena: " subcadena
say "Posició de 'món': " posicio
say "Primers 5 caràcters: " esquerra
say "Últims 4 caràcters: " dreta
say "Cadena neta: '" cadena_neta "'"

  1. Funcions Matemàtiques

Aquestes funcions permeten realitzar operacions matemàtiques bàsiques i avançades.

  • ABS(número): Retorna el valor absolut del número.
  • MAX(número1, número2, ...): Retorna el valor màxim entre els números proporcionats.
  • MIN(número1, número2, ...): Retorna el valor mínim entre els números proporcionats.
  • ROUND(número, decimals): Arrodoneix el número al nombre de decimals especificat.
  • SQRT(número): Retorna l'arrel quadrada del número.

Exemple Pràctic

/* Exemple de funcions matemàtiques */
num1 = -5
num2 = 3.14159
num3 = 9

valor_absolut = ABS(num1)
valor_maxim = MAX(num1, num2, num3)
valor_minim = MIN(num1, num2, num3)
arrodonit = ROUND(num2, 2)
arrel_quadrada = SQRT(num3)

say "Valor absolut de " num1 ": " valor_absolut
say "Valor màxim: " valor_maxim
say "Valor mínim: " valor_minim
say "Valor arrodonit de " num2 ": " arrodonit
say "Arrel quadrada de " num3 ": " arrel_quadrada

  1. Funcions de Data i Hora

Aquestes funcions permeten treballar amb dates i hores.

  • DATE(format): Retorna la data actual en el format especificat.
  • TIME(format): Retorna l'hora actual en el format especificat.
  • DATETIME(): Retorna la data i hora actuals.

Exemple Pràctic

/* Exemple de funcions de data i hora */
data_actual = DATE("S")
hora_actual = TIME("L")
data_hora_actual = DATETIME()

say "Data actual: " data_actual
say "Hora actual: " hora_actual
say "Data i hora actuals: " data_hora_actual

  1. Funcions de Conversió

Aquestes funcions permeten convertir dades entre diferents formats.

  • D2X(decimal): Converteix un número decimal a hexadecimal.
  • X2D(hexadecimal): Converteix un número hexadecimal a decimal.
  • C2D(cadena): Converteix una cadena a un número decimal.
  • D2C(decimal): Converteix un número decimal a una cadena.

Exemple Pràctic

/* Exemple de funcions de conversió */
decimal = 255
hexadecimal = D2X(decimal)
decimal_convertit = X2D(hexadecimal)
cadena = "123"
decimal_de_cadena = C2D(cadena)
cadena_de_decimal = D2C(decimal)

say "Decimal a hexadecimal: " hexadecimal
say "Hexadecimal a decimal: " decimal_convertit
say "Cadena a decimal: " decimal_de_cadena
say "Decimal a cadena: " cadena_de_decimal

  1. Altres Funcions Utilitàries

Aquestes funcions proporcionen funcionalitats addicionals que poden ser útils en diversos contextos.

  • RANDOM(min, max): Genera un número aleatori entre min i max.
  • SLEEP(segons): Pausa l'execució del programa durant el nombre de segons especificat.

Exemple Pràctic

/* Exemple de funcions utilitàries */
aleatori = RANDOM(1, 100)
say "Número aleatori entre 1 i 100: " aleatori

say "Pausant l'execució durant 3 segons..."
SLEEP(3)
say "Execució reprès."

Exercicis Pràctics

Exercici 1: Manipulació de Cadenes

Escriu un programa que prengui una cadena d'entrada de l'usuari i faci el següent:

  1. Mostri la longitud de la cadena.
  2. Retorni els primers 5 caràcters de la cadena.
  3. Retorni els últims 3 caràcters de la cadena.
  4. Elimini els espais en blanc de l'inici i final de la cadena.

Solució

/* Solució de l'exercici 1 */
say "Introdueix una cadena:"
pull cadena

longitud = LENGTH(cadena)
primers_5 = LEFT(cadena, 5)
ultims_3 = RIGHT(cadena, 3)
cadena_neta = STRIP(cadena)

say "Longitud de la cadena: " longitud
say "Primers 5 caràcters: " primers_5
say "Últims 3 caràcters: " ultims_3
say "Cadena neta: '" cadena_neta "'"

Exercici 2: Operacions Matemàtiques

Escriu un programa que prengui tres números d'entrada de l'usuari i faci el següent:

  1. Mostri el valor màxim.
  2. Mostri el valor mínim.
  3. Calculi i mostri l'arrel quadrada del primer número.

Solució

/* Solució de l'exercici 2 */
say "Introdueix tres números separats per espais:"
pull num1 num2 num3

valor_maxim = MAX(num1, num2, num3)
valor_minim = MIN(num1, num2, num3)
arrel_quadrada = SQRT(num1)

say "Valor màxim: " valor_maxim
say "Valor mínim: " valor_minim
say "Arrel quadrada del primer número: " arrel_quadrada

Conclusió

Les funcions incorporades en REXX són eines essencials que faciliten la programació i permeten realitzar operacions complexes de manera senzilla i eficient. Dominar aquestes funcions és fonamental per a qualsevol programador que vulgui treballar amb REXX de manera efectiva. En el proper tema, explorarem la gestió d'errors en REXX, una habilitat crucial per escriure programes robustos i fiables.

© Copyright 2024. Tots els drets reservats