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ó
Factorialque 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
MultiplicationTableque 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-PiiEnd-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
