En aquest tema, explorarem les estructures de dades en RPG, que són fonamentals per a l'organització i manipulació eficient de la informació en els programes. Aprendrem sobre els tipus d'estructures de dades disponibles, com utilitzar-les i com poden millorar la nostra programació.
Objectius del Tema
- Comprendre què són les estructures de dades i per què són importants.
- Aprendre a definir i utilitzar estructures de dades en RPG.
- Explorar exemples pràctics d'ús d'estructures de dades.
- Realitzar exercicis pràctics per reforçar els conceptes apresos.
Què són les Estructures de Dades?
Les estructures de dades són maneres d'organitzar i emmagatzemar dades per a que puguin ser utilitzades de manera eficient. En RPG, les estructures de dades ens permeten agrupar diferents tipus de dades sota un mateix nom, facilitant la seva manipulació i accés.
Tipus d'Estructures de Dades en RPG
- Records (Records Formats)
- Taules (Tables)
- Arrays
- Llistes
Definició d'Estructures de Dades en RPG
Records
Un record és una col·lecció de camps que poden tenir diferents tipus de dades. Els records són útils per agrupar informació relacionada.
Exemple de Definició de Record
En aquest exemple, hem definit un record anomenat Employee
que conté quatre camps: EmpID
, FirstName
, LastName
i Salary
.
Taules
Les taules són col·leccions de registres que es poden accedir mitjançant un índex. Són útils per emmagatzemar i accedir a grans quantitats de dades estructurades.
Exemple de Definició de Taula
Aquí, hem definit una taula EmployeeTable
que pot contenir fins a 100 registres del tipus Employee
.
Arrays
Els arrays són col·leccions de valors del mateix tipus de dades. Són útils per emmagatzemar llistes de valors.
Exemple de Definició d'Array
Aquest array Salaries
pot contenir fins a 100 valors de tipus Packed(7:2)
.
Llistes
Les llistes són col·leccions dinàmiques de valors que poden créixer o disminuir en mida. En RPG, les llistes es poden gestionar mitjançant estructures de dades dinàmiques.
Exemples Pràctics
Exemple 1: Utilitzant un Record
Dcl-Ds Employee; EmpID Char(10); FirstName Char(20); LastName Char(20); Salary Packed(7:2); End-Ds; Employee.EmpID = 'E001'; Employee.FirstName = 'John'; Employee.LastName = 'Doe'; Employee.Salary = 50000.00; Dsply ('Employee ID: ' + Employee.EmpID); Dsply ('Name: ' + Employee.FirstName + ' ' + Employee.LastName); Dsply ('Salary: ' + %Char(Employee.Salary));
Exemple 2: Utilitzant una Taula
Dcl-Ds Employee; EmpID Char(10); FirstName Char(20); LastName Char(20); Salary Packed(7:2); End-Ds; Dcl-Array EmployeeTable Dim(100) LikeDs(Employee); EmployeeTable(1).EmpID = 'E001'; EmployeeTable(1).FirstName = 'John'; EmployeeTable(1).LastName = 'Doe'; EmployeeTable(1).Salary = 50000.00; Dsply ('First Employee ID: ' + EmployeeTable(1).EmpID); Dsply ('First Employee Name: ' + EmployeeTable(1).FirstName + ' ' + EmployeeTable(1).LastName); Dsply ('First Employee Salary: ' + %Char(EmployeeTable(1).Salary));
Exercicis Pràctics
Exercici 1: Definició i Ús de Records
-
Defineix un record anomenat
Product
amb els següents camps:ProductID
(Char(10))ProductName
(Char(30))Price
(Packed(7:2))
-
Assigna valors als camps del record
Product
i mostra'ls per pantalla.
Solució
Dcl-Ds Product; ProductID Char(10); ProductName Char(30); Price Packed(7:2); End-Ds; Product.ProductID = 'P001'; Product.ProductName = 'Laptop'; Product.Price = 999.99; Dsply ('Product ID: ' + Product.ProductID); Dsply ('Product Name: ' + Product.ProductName); Dsply ('Price: ' + %Char(Product.Price));
Exercici 2: Definició i Ús de Taules
- Defineix una taula
ProductTable
que pugui contenir fins a 50 registres del tipusProduct
. - Assigna valors a dos registres de la taula
ProductTable
i mostra'ls per pantalla.
Solució
Dcl-Ds Product; ProductID Char(10); ProductName Char(30); Price Packed(7:2); End-Ds; Dcl-Array ProductTable Dim(50) LikeDs(Product); ProductTable(1).ProductID = 'P001'; ProductTable(1).ProductName = 'Laptop'; ProductTable(1).Price = 999.99; ProductTable(2).ProductID = 'P002'; ProductTable(2).ProductName = 'Smartphone'; ProductTable(2).Price = 499.99; Dsply ('First Product ID: ' + ProductTable(1).ProductID); Dsply ('First Product Name: ' + ProductTable(1).ProductName); Dsply ('First Product Price: ' + %Char(ProductTable(1).Price)); Dsply ('Second Product ID: ' + ProductTable(2).ProductID); Dsply ('Second Product Name: ' + ProductTable(2).ProductName); Dsply ('Second Product Price: ' + %Char(ProductTable(2).Price));
Resum
En aquest tema, hem après sobre les estructures de dades en RPG, incloent-hi records, taules, arrays i llistes. Hem vist com definir i utilitzar aquestes estructures per organitzar i manipular dades de manera eficient. Els exemples pràctics i exercicis ens han ajudat a comprendre millor aquests conceptes i a aplicar-los en situacions reals.
En el següent tema, explorarem com treballar amb arrays i llistes en més detall, incloent-hi operacions comunes com la inserció, eliminació i cerca de valors.
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