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

  1. Records (Records Formats)
  2. Taules (Tables)
  3. Arrays
  4. 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

Dcl-Ds Employee;
  EmpID      Char(10);
  FirstName  Char(20);
  LastName   Char(20);
  Salary     Packed(7:2);
End-Ds;

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

Dcl-Array EmployeeTable Dim(100) LikeDs(Employee);

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

Dcl-Array Salaries Dim(100) Packed(7:2);

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

  1. Defineix un record anomenat Product amb els següents camps:

    • ProductID (Char(10))
    • ProductName (Char(30))
    • Price (Packed(7:2))
  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

  1. Defineix una taula ProductTable que pugui contenir fins a 50 registres del tipus Product.
  2. 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.

© Copyright 2024. Tots els drets reservats