En RPG no existe la estructura de Datos para almacenar Matrices como es concebida en otros lenguajes que indexan las matrices de la siguiente manera: Matriz(X,Y) = Valor (click en la imágen para agrandarla)
Se puede utilizar un artificio declarando una DS en el programa que utilizamos para representar tantas filas como se requiera, a través de la palabra clave OCCURS.
Dentro de la DS se declara un arreglo para almacenar los valores de las columnas asociados a cada fila.
Declaración de la Matriz
D*******************************
dDSfilas DS occurs(100)
d Colum 10a dim(100)
d
dVariables para indexar la matriz.
d******************************
dFila s 3S 0
dCol s 3S 0
Para llenar el elemento ubicado en la fila 1 y columna 1
Se sigue el siguiente procedimiento:
c*
c Eval Fila = 1
c Eval Col = 1
c Fila Occur Dsfilas
c eval Colum(Col) = Valor
Se puede llenar una matriz por medio de dos lazos anidados:
Se sigue el siguiente procedimiento:
c*
c Eval Fila = 1
c Dow Fila <= 100
c*
c Eval Col = 1
c Dow Col <= 100
c*
c Fila Occur Dsfilas
c Eval Colum(Col) = Valor
c*
c Eval Col = Col + 1
c Enddo
c*
c Eval Fila = Fila + 1
c*
c Enddo
También puede invertirse el concepto de llenado de la matriz si consideramos cada ocurrencia de la DS como una columna y el arreglo interno los valores de las filas asociadas a la columna donde se posiciona el Occur.
Autor: Ing. Liliana Suárez.
Si te pareció interesante, reenvialo a un amigo haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.
1 comment:
Buen día, Liliana.
No pocas son las veces en que he hallado ayuda sencilla y bien estructurada en este blogg. Sinceramente te felicito y te aliento a continuar adelante.
Muchos exitos!
Post a Comment