En aquest tema, explorarem com crear i utilitzar biblioteques i extensions personalitzades en MUMPS. Aquestes eines permeten als programadors reutilitzar codi, millorar la modularitat i ampliar les funcionalitats del llenguatge MUMPS.

Objectius del Tema

  • Entendre què són les biblioteques i extensions personalitzades.
  • Aprendre a crear i utilitzar biblioteques en MUMPS.
  • Explorar exemples pràctics d'extensions personalitzades.
  • Proporcionar exercicis pràctics per reforçar els conceptes apresos.

Què són les Biblioteques i Extensions Personalitzades?

Biblioteques

Les biblioteques són col·leccions de funcions, procediments i rutines que es poden reutilitzar en diferents programes. En MUMPS, les biblioteques permeten organitzar el codi de manera modular i facilitar la seva reutilització.

Extensions Personalitzades

Les extensions personalitzades són mòduls o paquets que amplien les funcionalitats del llenguatge MUMPS. Aquestes extensions poden incloure noves funcions, procediments o interfícies amb altres llenguatges o sistemes.

Creació de Biblioteques en MUMPS

Passos per Crear una Biblioteca

  1. Definir les Funcions i Procediments: Escriu les funcions i procediments que vols incloure a la biblioteca.
  2. Organitzar el Codi: Agrupa les funcions i procediments en un fitxer o conjunt de fitxers.
  3. Carregar la Biblioteca: Utilitza el codi per carregar la biblioteca en el teu entorn de desenvolupament MUMPS.

Exemple de Biblioteca

; Fitxer: myLibrary.m
; Descripció: Biblioteca d'exemples amb funcions matemàtiques

; Funció per sumar dos números
SUM(a, b)
 QUIT a + b

; Funció per restar dos números
SUBTRACT(a, b)
 QUIT a - b

; Funció per multiplicar dos números
MULTIPLY(a, b)
 QUIT a * b

; Funció per dividir dos números
DIVIDE(a, b)
 IF b=0 QUIT "Error: Divisió per zero"
 QUIT a / b

Utilització de la Biblioteca

; Carregar la biblioteca
DO ^myLibrary

; Utilitzar les funcions de la biblioteca
SET result = $$SUM(5, 3)
WRITE "La suma de 5 i 3 és: ", result, !

SET result = $$DIVIDE(10, 2)
WRITE "La divisió de 10 per 2 és: ", result, !

Creació d'Extensions Personalitzades

Passos per Crear una Extensió

  1. Identificar la Funcionalitat: Defineix quina funcionalitat vols afegir al llenguatge MUMPS.
  2. Desenvolupar el Codi: Escriu el codi necessari per implementar la funcionalitat.
  3. Integrar l'Extensió: Assegura't que l'extensió es pugui carregar i utilitzar fàcilment en els teus programes MUMPS.

Exemple d'Extensió Personalitzada

; Fitxer: stringUtils.m
; Descripció: Extensió per treballar amb cadenes de text

; Funció per convertir una cadena a majúscules
TOUPPER(str)
 NEW result
 SET result=$ZCONVERT(str,"U")
 QUIT result

; Funció per convertir una cadena a minúscules
TOLOWER(str)
 NEW result
 SET result=$ZCONVERT(str,"L")
 QUIT result

Utilització de l'Extensió

; Carregar l'extensió
DO ^stringUtils

; Utilitzar les funcions de l'extensió
SET upperStr = $$TOUPPER("hola món")
WRITE "Cadena en majúscules: ", upperStr, !

SET lowerStr = $$TOLOWER("HOLA MÓN")
WRITE "Cadena en minúscules: ", lowerStr, !

Exercicis Pràctics

Exercici 1: Crear una Biblioteca de Funcions Matemàtiques

  1. Crea una biblioteca anomenada mathLibrary.m que inclogui funcions per calcular el quadrat, el cub i la potència d'un número.
  2. Escriu un programa que carregui aquesta biblioteca i utilitzi les funcions per calcular el quadrat, el cub i la potència de diversos números.

Exercici 2: Desenvolupar una Extensió per Treballar amb Dates

  1. Crea una extensió anomenada dateUtils.m que inclogui funcions per obtenir la data actual, sumar dies a una data i restar dies d'una data.
  2. Escriu un programa que carregui aquesta extensió i utilitzi les funcions per treballar amb dates.

Solucions als Exercicis

Solució a l'Exercici 1

; Fitxer: mathLibrary.m
; Descripció: Biblioteca de funcions matemàtiques

; Funció per calcular el quadrat d'un número
SQUARE(x)
 QUIT x * x

; Funció per calcular el cub d'un número
CUBE(x)
 QUIT x * x * x

; Funció per calcular la potència d'un número
POWER(x, y)
 NEW result
 SET result=1
 FOR i=1:1:y SET result=result*x
 QUIT result
; Programa per utilitzar la biblioteca mathLibrary
DO ^mathLibrary

SET num = 3
WRITE "El quadrat de ", num, " és: ", $$SQUARE(num), !
WRITE "El cub de ", num, " és: ", $$CUBE(num), !
WRITE "El ", num, " elevat a la potència 4 és: ", $$POWER(num, 4), !

Solució a l'Exercici 2

; Fitxer: dateUtils.m
; Descripció: Extensió per treballar amb dates

; Funció per obtenir la data actual
CURRENTDATE()
 QUIT $ZDATE($HOROLOG,"DD/MM/YYYY")

; Funció per sumar dies a una data
ADDDAYS(date, days)
 NEW hdate
 SET hdate=$ZDATEH(date,"DD/MM/YYYY")
 SET hdate=hdate+days
 QUIT $ZDATE(hdate,"DD/MM/YYYY")

; Funció per restar dies d'una data
SUBTRACTDAYS(date, days)
 NEW hdate
 SET hdate=$ZDATEH(date,"DD/MM/YYYY")
 SET hdate=hdate-days
 QUIT $ZDATE(hdate,"DD/MM/YYYY")
; Programa per utilitzar l'extensió dateUtils
DO ^dateUtils

WRITE "La data actual és: ", $$CURRENTDATE(), !
WRITE "Sumar 10 dies a la data actual: ", $$ADDDAYS($$CURRENTDATE(), 10), !
WRITE "Restar 5 dies de la data actual: ", $$SUBTRACTDAYS($$CURRENTDATE(), 5), !

Conclusió

En aquest tema, hem après a crear i utilitzar biblioteques i extensions personalitzades en MUMPS. Aquestes eines són essencials per millorar la modularitat, la reutilització del codi i ampliar les funcionalitats del llenguatge. Amb els exercicis pràctics, has tingut l'oportunitat de posar en pràctica els conceptes apresos i desenvolupar les teves pròpies biblioteques i extensions.

© Copyright 2024. Tots els drets reservats