Cobol - Confirmenme si esto es cierto...

 
Vista:

Confirmenme si esto es cierto...

Publicado por Tammy (2 intervenciones) el 26/02/2005 20:57:48
hola... debo entregar otro programa trabajando con matrices.. debo hacer una matriz inicial y otra posterior en esa debo copiar los valores de la primera matriz creada, la cuestion es q debo aumentar una posicion en la matriz y apartir de hay es decir en la segunda posicion empezar a copiarlos... y los valores q van sobrando en cada fila ir colocandolas en la filas que sigue y asi sucesivamente cuando llegue al final el ultimo valor va a quedar fuera del alcance de la matriz y debo indicarle q se introduzca en la primera posicion q es la unica q esta vacia... lo q pense el al comenzar el ciclo donde se pasan los datos de una matrçiz a otra iniciar j(columnas) en dos para q comience desde esa posicion pero no esto segura como indicarle en cobol q el valor q sobre en esa fila lo coloque en la q sigue...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Solución para copiar valores de una matriz a otra y manejar el desbordamiento de valores

Publicado por Alejandro (300 intervenciones) el 06/09/2023 16:33:47
Puedes lograr esto en Cobol siguiendo estos pasos:

1. Define tus matrices: Debes definir dos matrices en tu programa, una para la matriz original y otra para la matriz de destino. Asegúrate de que ambas tengan suficientes dimensiones para almacenar todos los valores que necesitas.

1
2
3
4
5
01 Matriz-Original OCCURS 10 TIMES.
   02 Valor PIC X(10) OCCURS 10 TIMES.
 
01 Matriz-Destino OCCURS 10 TIMES.
   02 Valor PIC X(10) OCCURS 10 TIMES.

En este ejemplo, se asume que tienes 10 filas y 10 columnas en tus matrices. Puedes ajustar las dimensiones según tus necesidades.

2. Copia los valores de la matriz original a la matriz de destino: Utiliza un bucle anidado para recorrer ambas matrices y copiar los valores de la matriz original a la matriz de destino a partir de la segunda columna.

1
2
3
4
5
6
PERFORM VARYING I FROM 1 BY 1 UNTIL I > 10
    PERFORM VARYING J FROM 1 BY 1 UNTIL J > 10
        MOVE Matriz-Original(I, J) TO Matriz-Destino(I, J + 1)
    END-PERFORM
    MOVE Valor-Que-Sobra TO Matriz-Destino(I, 1)
END-PERFORM

En este código, estamos copiando los valores desde la matriz original a la matriz de destino comenzando desde la segunda columna y moviendo los valores que sobran a la primera columna.

3. Manejo del valor que queda fuera de la matriz: Después de copiar los valores, debes manejar el valor que queda fuera del alcance de la matriz. Puedes hacerlo moviendo ese valor a la primera columna de la siguiente fila.

1
MOVE Valor-Que-Sobra TO Matriz-Destino(1, 1)

Esto asegurará que el valor que queda fuera de la matriz se coloque en la primera posición de la siguiente fila.

Recuerda ajustar las dimensiones y los detalles según tus necesidades específicas. El código proporcionado es un ejemplo general para ayudarte a comprender el enfoque, pero debes adaptarlo a tu situación real.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar