En aquest tema, aprendrem sobre les funcions i procediments en RPG. Aquestes estructures són fonamentals per a l'organització i reutilització del codi, així com per a la creació de programes més modulars i mantenibles.
Què són les Funcions i Procediments?
Funcions
Una funció és un bloc de codi que realitza una tasca específica i retorna un valor. Les funcions són útils per encapsular codi que es repeteix i per dividir un programa en parts més manejables.
Procediments
Un procediment és similar a una funció, però no retorna cap valor. Els procediments s'utilitzen per executar una sèrie d'instruccions que no necessiten retornar un resultat.
Definició de Funcions i Procediments en RPG
Sintaxi Bàsica
Funcions
Dcl-Proc MyFunction; Dcl-Pi MyFunction Int(10); param1 Int(10); param2 Int(10); End-Pi; // Cos de la funció Return param1 + param2; End-Proc;
Procediments
Dcl-Proc MyProcedure; Dcl-Pi *N; param1 Int(10); param2 Int(10); End-Pi; // Cos del procediment Dsply 'Executant el procediment'; End-Proc;
Explicació del Codi
Dcl-Proc
: Declara l'inici d'una funció o procediment.Dcl-Pi
: Declara la interfície del procediment (paràmetres d'entrada i tipus de retorn).Return
: Retorna un valor des d'una funció.End-Proc
: Marca el final de la funció o procediment.
Exemple Pràctic
Funció per Calcular la Suma de Dos Nombres
Procediment per Mostrar un Missatge
Utilització de Funcions i Procediments en un Programa
Dcl-Proc Main; Dcl-Pi *N; End-Pi; Dcl-S result Int(10); Dcl-S msg Char(50); result = Sum(5, 10); msg = 'El resultat és: ' + %Char(result); ShowMessage(msg); End-Proc; Dcl-Proc Sum; Dcl-Pi Sum Int(10); num1 Int(10); num2 Int(10); End-Pi; Return num1 + num2; End-Proc; Dcl-Proc ShowMessage; Dcl-Pi *N; message Char(50); End-Pi; Dsply message; End-Proc;
Exercicis Pràctics
Exercici 1: Crear una Funció per Calcular el Factorial d'un Nombre
- Defineix una funció
Factorial
que prengui un nombre enter com a paràmetre i retorni el factorial d'aquest nombre. - Utilitza la funció en un programa principal per calcular el factorial de 5 i mostrar el resultat.
Solució
Dcl-Proc Main; Dcl-Pi *N; End-Pi; Dcl-S result Int(10); Dcl-S msg Char(50); result = Factorial(5); msg = 'El factorial de 5 és: ' + %Char(result); ShowMessage(msg); End-Proc; Dcl-Proc Factorial; Dcl-Pi Factorial Int(10); num Int(10); End-Pi; Dcl-S i Int(10); Dcl-S fact Int(10) Inz(1); For i = 1 to num; fact *= i; EndFor; Return fact; End-Proc; Dcl-Proc ShowMessage; Dcl-Pi *N; message Char(50); End-Pi; Dsply message; End-Proc;
Exercici 2: Crear un Procediment per Mostrar una Taula de Multiplicar
- Defineix un procediment
MultiplicationTable
que prengui un nombre enter com a paràmetre i mostri la seva taula de multiplicar fins a 10. - Utilitza el procediment en un programa principal per mostrar la taula de multiplicar del 7.
Solució
Dcl-Proc Main; Dcl-Pi *N; End-Pi; MultiplicationTable(7); End-Proc; Dcl-Proc MultiplicationTable; Dcl-Pi *N; num Int(10); End-Pi; Dcl-S i Int(10); Dcl-S result Int(10); Dcl-S msg Char(50); For i = 1 to 10; result = num * i; msg = %Char(num) + ' x ' + %Char(i) + ' = ' + %Char(result); ShowMessage(msg); EndFor; End-Proc; Dcl-Proc ShowMessage; Dcl-Pi *N; message Char(50); End-Pi; Dsply message; End-Proc;
Errors Comuns i Consells
Errors Comuns
- No declarar correctament els paràmetres d'entrada i sortida.
- Oblidar-se de tancar les declaracions amb
End-Pi
iEnd-Proc
. - No inicialitzar les variables dins de les funcions o procediments.
Consells
- Utilitza noms descriptius per a les funcions i procediments per millorar la llegibilitat del codi.
- Divideix el codi en funcions i procediments més petits per facilitar el manteniment i la depuració.
- Documenta les funcions i procediments amb comentaris per explicar la seva funcionalitat.
Conclusió
En aquesta secció, hem après a definir i utilitzar funcions i procediments en RPG. Aquestes estructures ens permeten escriure codi més modular, reutilitzable i fàcil de mantenir. Hem vist exemples pràctics i hem realitzat exercicis per reforçar els conceptes apresos. En el següent mòdul, explorarem la gestió d'arxius en RPG.
Curs de Programació RPG
Mòdul 1: Introducció a la Programació RPG
- Què és RPG?
- Configuració del Teu Entorn de Desenvolupament
- Sintaxi i Estructura Bàsiques
- Programa Hello World
Mòdul 2: Conceptes Bàsics
Mòdul 3: Treballant amb Dades
Mòdul 4: Tècniques Avançades de Programació
Mòdul 5: RPG IV i Més Enllà
Mòdul 6: Integrant RPG amb Tecnologies Modernes
Mòdul 7: Aplicacions del Món Real
- Construint una Aplicació Simple
- Estudi de Cas: Sistema de Gestió d'Inventari
- Estudi de Cas: Sistema de Nòmines
- Millors Pràctiques i Revisió de Codi