En aquest mòdul, aprendrem sobre les estructures de dades fonamentals en RPG: els arrays i les llistes. Aquestes estructures són essencials per emmagatzemar i manipular col·leccions de dades de manera eficient.

Objectius del Mòdul

  • Entendre què són els arrays i les llistes.
  • Aprendre a declarar i inicialitzar arrays i llistes en RPG.
  • Manipular elements dins d'arrays i llistes.
  • Aplicar operacions comunes com la cerca, l'ordenació i la iteració.

Què és un Array?

Un array és una col·lecció d'elements del mateix tipus emmagatzemats en posicions contigües de memòria. Els arrays permeten accedir als elements mitjançant un índex numèric.

Declaració i Inicialització d'Arrays

En RPG, podem declarar un array utilitzant la paraula clau DCL-S o DCL-DS per a arrays més complexos. Aquí teniu un exemple bàsic:

DCL-S myArray CHAR(10) DIM(5);

Aquest codi declara un array de 5 elements, on cada element és una cadena de caràcters de longitud 10.

Inicialització d'Arrays

Podem inicialitzar un array en el moment de la seva declaració:

DCL-S myArray CHAR(10) DIM(5) INZ('A' : 'B' : 'C' : 'D' : 'E');

Accés als Elements d'un Array

Podem accedir als elements d'un array utilitzant l'índex de l'element:

myArray(1) = 'Z'; // Assigna 'Z' al primer element de l'array
DSPLY myArray(1); // Mostra el valor del primer element

Iteració sobre un Array

Podem utilitzar un bucle FOR per iterar sobre els elements d'un array:

FOR i = 1 TO %ELEM(myArray);
    DSPLY myArray(i);
ENDFOR;

Què és una Llista?

Una llista és una col·lecció d'elements que poden ser de diferents tipus i longituds. Les llistes són més flexibles que els arrays, però poden ser més complexes de gestionar.

Declaració i Inicialització de Llistes

En RPG, podem utilitzar estructures de dades per crear llistes. Aquí teniu un exemple bàsic:

DCL-DS myList;
    element1 CHAR(10);
    element2 PACKED(5:2);
    element3 DATE;
END-DS;

Accés als Elements d'una Llista

Podem accedir als elements d'una llista utilitzant el nom de l'element:

myList.element1 = 'Hello';
DSPLY myList.element1;

Iteració sobre una Llista

Podem utilitzar un bucle FOR per iterar sobre els elements d'una llista si sabem el nombre d'elements:

FOR i = 1 TO 3;
    SELECT;
        WHEN i = 1;
            DSPLY myList.element1;
        WHEN i = 2;
            DSPLY myList.element2;
        WHEN i = 3;
            DSPLY myList.element3;
    ENDSL;
ENDFOR;

Exercicis Pràctics

Exercici 1: Declaració i Inicialització d'un Array

  1. Declara un array de 10 elements de tipus INTEGER.
  2. Inicialitza l'array amb els valors del 1 al 10.
  3. Mostra tots els elements de l'array.

Solució

DCL-S myArray INT(10) DIM(10) INZ(1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : 10);

FOR i = 1 TO %ELEM(myArray);
    DSPLY myArray(i);
ENDFOR;

Exercici 2: Manipulació d'una Llista

  1. Declara una llista amb tres elements: un CHAR(10), un PACKED(5:2) i un DATE.
  2. Assigna valors a cada element de la llista.
  3. Mostra els valors de cada element.

Solució

DCL-DS myList;
    element1 CHAR(10);
    element2 PACKED(5:2);
    element3 DATE;
END-DS;

myList.element1 = 'Hello';
myList.element2 = 123.45;
myList.element3 = %DATE();

DSPLY myList.element1;
DSPLY myList.element2;
DSPLY myList.element3;

Resum

En aquest mòdul, hem après sobre els arrays i les llistes en RPG. Hem vist com declarar, inicialitzar i manipular aquestes estructures de dades. També hem practicat amb exercicis per reforçar els conceptes apresos. En el proper mòdul, explorarem tècniques avançades de programació per millorar les nostres habilitats en RPG.

© Copyright 2024. Tots els drets reservats