Resultados 1 al 7 de 7

Tema: (AYUDA) Problema en codigo COBOL

  1. #1
      Acabo de llegar...
    M

    Registrado
    febrero de 2023
    Ubicación
    Buenos Aires
    Edad
    26
    Mensajes
    26
    Última visita
    22.11.2023

    Agradecimientos
     
    Recibidos
    0
    Enviados
    5

    Citaciones y menciones
     
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    0

    Predeterminado (AYUDA) Problema en codigo COBOL

    Hola soy nuevo en el foro como tambien un principiante en COBOL.
    Estoy estudiando el lenguaje hace ya casi un mes y estoy intentando desarrollar este programita como forma de práctica y me he encontrado con varios problemas.

    Lo que tiene que hacer el programa:

    "Una compania de seguros tiene contratados a n vendedores. Cada vendedor realiza
    multiples ventas a la semana. La politica de pagos de la compania es que cada vendedor
    recibe un sueldo base más un 10% extra por comisiones de sus ventas. El gerente de la
    compania desea saber, por un lado, cuanto dinero deber¡a pagar en la semana a cada
    vendedor por concepto de comisiones de las ventas realizadas, y por otro lado, cua¡nto
    deberia pagar a cada vendedor como sueldo total (sueldo base + comisiones). Para cada
    vendedor ingresar cuanto es su sueldo base, cuantas ventas realizó y cuanto cobró por
    cada venta."

    Mi código (incompleto):

    COBOL Código:
    1.        IDENTIFICATION DIVISION.
    2.        PROGRAM-ID.                PROG-PAGOS-F.
    3.        AUTHOR.                    LUCAS GALEANO.
    4.        DATE-WRITTEN.              1/2/2023.
    5.  
    6.        ENVIRONMENT DIVISION.
    7.        INPUT-OUTPUT SECTION.
    8.        FILE-CONTROL.
    9.            SELECT REG-VENDEDORES ASSIGN TO "REG-MAESTRO.DAT"
    10.                ORGANIZATION IS LINE SEQUENTIAL.
    11.  
    12.            SELECT REG-VENTAS     ASSIGN TO "REG-VENTAS-MAESTRO.DAT"
    13.                ORGANIZATION IS LINE SEQUENTIAL.
    14.  
    15.        DATA DIVISION.
    16.        FILE SECTION.
    17.        FD REG-VENDEDORES.
    18.        01 VENDEDORES              PIC 9(14).
    19.  
    20.        FD REG-VENTAS.
    21.        01 COB-VENTAS              PIC 9(5).
    22.  
    23.  
    24.        WORKING-STORAGE SECTION.
    25.        01 WS-VENDEDORES.
    26.            05 WS-EMPLEADO            PIC 999.
    27.            05 WS-SUELDO-BASE         PIC 9(5).
    28.            05 WS-CANTIDAD-VENTAS     PIC 999.
    29.            05 WS-TOTAL-EMPLEADOS     PIC 999.
    30.            05 WS-COBRO-VENTAS        PIC 9(5).
    31.        01 WS-TABLAS.
    32.            05 WS-REGISTRO-COBROS     PIC 9(5)
    33.                                      OCCURS 100 TIMES.
    34.        77 CONTADOR                   PIC 99 VALUE ZEROS.
    35.  
    36.        PROCEDURE DIVISION.
    37.        BEGIN-OUTPUT.
    38.            OPEN OUTPUT REG-VENDEDORES.
    39.            DISPLAY "INGRESE DATOS SOLICITADOS".
    40.            DISPLAY "INGRESE CANTIDAD TOTAL DE EMPLEADOS:".
    41.            ACCEPT WS-TOTAL-EMPLEADOS.
    42.            PERFORM INGRESO-DATOS-EMPLEADOS.
    43.            PERFORM VARYING CONTADOR FROM 1 BY 1
    44.                            UNTIL CONTADOR = WS-TOTAL-EMPLEADOS
    45.            WRITE VENDEDORES FROM WS-VENDEDORES
    46.            PERFORM INGRESO-DATOS-EMPLEADOS
    47.            END-PERFORM.
    48.            CLOSE  REG-VENDEDORES.
    49.            STOP RUN.
    50.  
    51.        INGRESO-DATOS-EMPLEADOS.
    52.          
    53.            DISPLAY "INGRESE NUMERO DE EMPLEADO:".
    54.            ACCEPT WS-EMPLEADO.
    55.            DISPLAY "INGRESE SUELDO BASE:".
    56.            ACCEPT WS-SUELDO-BASE.
    57.            DISPLAY "INGRESE CANTIDAD DE VENTAS REALIZADAS:".
    58.            ACCEPT WS-CANTIDAD-VENTAS.
    59.            PERFORM VARYING WS-CANTIDAD-VENTAS FROM 1 BY 1
    60.                            UNTIL WS-CANTIDAD-VENTAS = 3
    61.            DISPLAY "INGRESE COBRO DE CADA VENTA:"
    62.            ACCEPT WS-COBRO-VENTAS
    63.            MOVE WS-COBRO-VENTAS TO WS-REGISTRO-COBROS(1)
    64.            END-PERFORM.
    El problema que es no saber como terminar el perform del parrafo BEGIN-OUTPUT en este caso especial ya que no me escribe los datos de cada empleado solo de uno, probe con contador, con "=Spaces" y el mismo comportamiento.
    Solo funciona si ingreso todos los datos de una tira "e.j nnnnMMMMEEEVV, y abajo un accept para ingresar tooodo el registro" y en perform lo condiciono con un "UNTIL...= SPACES", en ese caso si me registra cada empleado pero no tengo claro el por que esto sucede, no puedo entenderlo , capaz no entiendo los detalles de como escribe cobol en un archivo..
    Y bueno ese es mi problema, tambien estaria muy agradecido si podrian darme algun consejo de como realizar el programa, Graciasss

    Edit: Asi es como se lee el archivo .dat : 00120000003002 en vez de varios registros.

    0 Not allowed!

  2. #2
      Senior
    J

    Registrado
    junio de 2016
    Ubicación
    Albacete
    Edad
    57
    Mensajes
    417
    Última visita
    Ayer a las 11:40

    Agradecimientos
     
    Recibidos
    240
    Enviados
    149

    Citaciones y menciones
     
    Mentioned
    52 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    9 Post(s)
    Poder de Reputación
    25
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Predeterminado
    ¡Solución!1 usuarios han marcado el post como Solución

    @Marengo97,
    Primer problema.

    En el primer perform.

    Si pones 0 empleados, te pide datos de forma idefinida porque nunca se cumple la condicion.

    Si hay un empleado, pides los datos del primer empleado y ni entra al perform porque se cumple la condicion CONTADOR = WS-TOTAL-EMPLEADOS.

    Si hay 2 empleados, pide los datos del primer empleado, lo escribe y vuelve a pedir los datos del segundo empleado y se sale.

    Y así sucesivamente.

    Se puede hacer así para evitar el problema. Entra si hay mas de un empleado, pide datos y escribe.

    COBOL Código:
    1.        PROCEDURE DIVISION.
    2.        BEGIN-OUTPUT.
    3.            OPEN OUTPUT REG-VENDEDORES.
    4.            DISPLAY "INGRESE DATOS SOLICITADOS".
    5.            DISPLAY "INGRESE CANTIDAD TOTAL DE EMPLEADOS:".
    6.            ACCEPT WS-TOTAL-EMPLEADOS.    
    7.            PERFORM VARYING CONTADOR FROM 1 BY 1
    8.                            UNTIL CONTADOR > WS-TOTAL-EMPLEADOS
    9.              PERFORM INGRESO-DATOS-EMPLEADOS
    10.              WRITE VENDEDORES FROM WS-VENDEDORES
    11.            END-PERFORM.
    12.            CLOSE  REG-VENDEDORES.
    13.            STOP RUN.

    - - - Updated - - -

    En el segundo perform, siempre te pide 3 ventas.
    Además no inicializas la tabla, ni escribes la tabla.

    0 Not allowed!

  3. #3
      Senior
    J

    Registrado
    junio de 2016
    Ubicación
    Albacete
    Edad
    57
    Mensajes
    417
    Última visita
    Ayer a las 11:40

    Agradecimientos
     
    Recibidos
    240
    Enviados
    149

    Citaciones y menciones
     
    Mentioned
    52 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    9 Post(s)
    Poder de Reputación
    25
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Predeterminado
    ¡Solución!1 usuarios han marcado el post como Solución

    Te modifico la fd de las tabla cobros. Lo hago asi porque a mi me gusta trabajar con la FD directamente.

    Tambien el segundo perform para que pida y guarde los cobros solicitados.


    COBOL Código:
    1.        IDENTIFICATION DIVISION.
    2.        PROGRAM-ID.                PROG-PAGOS-F.
    3.        AUTHOR.                    LUCAS GALEANO.
    4.        DATE-WRITTEN.              1/2/2023.
    5.  
    6.        ENVIRONMENT DIVISION.
    7.        INPUT-OUTPUT SECTION.
    8.        FILE-CONTROL.
    9.            SELECT REG-VENDEDORES ASSIGN TO "REG-MAESTRO.DAT"
    10.                ORGANIZATION IS LINE SEQUENTIAL.
    11.  
    12.            SELECT REG-VENTAS     ASSIGN TO "REG-VENTAS-MAESTRO.DAT"
    13.                ORGANIZATION IS LINE SEQUENTIAL.
    14.  
    15.        DATA DIVISION.
    16.        FILE SECTION.
    17.        FD REG-VENDEDORES.
    18.        01 VENDEDORES              PIC 9(14).
    19.  
    20.        FD REG-VENTAS.
    21.        01 COB-VENTAS.
    22.            03 cobros PIC 9(5) occurs 100 times.
    23.  
    24.  
    25.        WORKING-STORAGE SECTION.
    26.        01 WS-VENDEDORES.
    27.            05 WS-EMPLEADO            PIC 999.
    28.            05 WS-SUELDO-BASE         PIC 9(5).
    29.            05 WS-CANTIDAD-VENTAS     PIC 999.
    30.        01 esto-deberia-estar-fuera.    
    31.            05 WS-TOTAL-EMPLEADOS     PIC 999.
    32.            05 WS-COBRO-VENTAS        PIC 9(5).
    33.        01 WS-TABLAS.
    34.            05 WS-REGISTRO-COBROS     PIC 9(5)
    35.                                      OCCURS 100 TIMES.
    36.        77 CONTADOR                   PIC 99 VALUE ZEROS.
    37.        77 indice                  PIC 999.
    38.  
    39.        PROCEDURE DIVISION.
    40.        BEGIN-OUTPUT.
    41.            OPEN OUTPUT REG-VENDEDORES.
    42.            open output reg-ventas.
    43.            DISPLAY "INGRESE DATOS SOLICITADOS".
    44.            DISPLAY "INGRESE CANTIDAD TOTAL DE EMPLEADOS:".
    45.            ACCEPT WS-TOTAL-EMPLEADOS.
    46.            PERFORM VARYING CONTADOR FROM 1 BY 1
    47.                            UNTIL CONTADOR > WS-TOTAL-EMPLEADOS
    48.              PERFORM INGRESO-DATOS-EMPLEADOS
    49.              WRITE VENDEDORES FROM WS-VENDEDORES
    50.              write cob-ventas end-write
    51.            END-PERFORM.
    52.            CLOSE  REG-VENDEDORES reg-ventas.
    53.            STOP RUN.
    54.  
    55.        INGRESO-DATOS-EMPLEADOS.
    56.          
    57.            DISPLAY "INGRESE NUMERO DE EMPLEADO:".
    58.            ACCEPT WS-EMPLEADO.
    59.            DISPLAY "INGRESE SUELDO BASE:".
    60.            ACCEPT WS-SUELDO-BASE.
    61.            DISPLAY "INGRESE CANTIDAD DE VENTAS REALIZADAS:".
    62.            ACCEPT WS-CANTIDAD-VENTAS.
    63.            initialize cob-ventas.
    64.            PERFORM VARYING indice FROM 1 BY 1
    65.                            UNTIL indice > WS-CANTIDAD-VENTAS
    66.                                  or indice = 100
    67.               DISPLAY "INGRESE COBRO DE CADA VENTA:"
    68.               ACCEPT WS-COBRO-VENTAS
    69.               MOVE WS-COBRO-VENTAS TO cobros(indice)
    70.            END-PERFORM.

    Mira a ver y si no entiendes algo me lo dices.

    Mejora--> en vez de guardar los 100 cobros, que ocupan mas espacio, lo mejor es guardar un registro con cada cobro de esta forma VVVNNNCCCCC siendo VVV el numero de vendedor, NNN el numero de cobro, CCCCC importe de cobro.

    Pero bueno, para empezar no los llevabas mal. Animo ¡¡

    0 Not allowed!

  4. #4
      Acabo de llegar...
    M

    Registrado
    febrero de 2023
    Ubicación
    Buenos Aires
    Edad
    26
    Mensajes
    26
    Última visita
    22.11.2023

    Agradecimientos
     
    Recibidos
    0
    Enviados
    5

    Citaciones y menciones
     
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    0

    Predeterminado

    .......

    - - - Updated - - -

    Cita Iniciado por JCantero Ver Mensaje
    Te modifico la fd de las tabla cobros. Lo hago asi porque a mi me gusta trabajar con la FD directamente.

    Tambien el segundo perform para que pida y guarde los cobros solicitados.


    COBOL Código:
    1.        IDENTIFICATION DIVISION.
    2.        PROGRAM-ID.                PROG-PAGOS-F.
    3.        AUTHOR.                    LUCAS GALEANO.
    4.        DATE-WRITTEN.              1/2/2023.
    5.  
    6.        ENVIRONMENT DIVISION.
    7.        INPUT-OUTPUT SECTION.
    8.        FILE-CONTROL.
    9.            SELECT REG-VENDEDORES ASSIGN TO "REG-MAESTRO.DAT"
    10.                ORGANIZATION IS LINE SEQUENTIAL.
    11.  
    12.            SELECT REG-VENTAS     ASSIGN TO "REG-VENTAS-MAESTRO.DAT"
    13.                ORGANIZATION IS LINE SEQUENTIAL.
    14.  
    15.        DATA DIVISION.
    16.        FILE SECTION.
    17.        FD REG-VENDEDORES.
    18.        01 VENDEDORES              PIC 9(14).
    19.  
    20.        FD REG-VENTAS.
    21.        01 COB-VENTAS.
    22.            03 cobros PIC 9(5) occurs 100 times.
    23.  
    24.  
    25.        WORKING-STORAGE SECTION.
    26.        01 WS-VENDEDORES.
    27.            05 WS-EMPLEADO            PIC 999.
    28.            05 WS-SUELDO-BASE         PIC 9(5).
    29.            05 WS-CANTIDAD-VENTAS     PIC 999.
    30.        01 esto-deberia-estar-fuera.    
    31.            05 WS-TOTAL-EMPLEADOS     PIC 999.
    32.            05 WS-COBRO-VENTAS        PIC 9(5).
    33.        01 WS-TABLAS.
    34.            05 WS-REGISTRO-COBROS     PIC 9(5)
    35.                                      OCCURS 100 TIMES.
    36.        77 CONTADOR                   PIC 99 VALUE ZEROS.
    37.        77 indice                  PIC 999.
    38.  
    39.        PROCEDURE DIVISION.
    40.        BEGIN-OUTPUT.
    41.            OPEN OUTPUT REG-VENDEDORES.
    42.            open output reg-ventas.
    43.            DISPLAY "INGRESE DATOS SOLICITADOS".
    44.            DISPLAY "INGRESE CANTIDAD TOTAL DE EMPLEADOS:".
    45.            ACCEPT WS-TOTAL-EMPLEADOS.
    46.            PERFORM VARYING CONTADOR FROM 1 BY 1
    47.                            UNTIL CONTADOR > WS-TOTAL-EMPLEADOS
    48.              PERFORM INGRESO-DATOS-EMPLEADOS
    49.              WRITE VENDEDORES FROM WS-VENDEDORES
    50.              write cob-ventas end-write
    51.            END-PERFORM.
    52.            CLOSE  REG-VENDEDORES reg-ventas.
    53.            STOP RUN.
    54.  
    55.        INGRESO-DATOS-EMPLEADOS.
    56.          
    57.            DISPLAY "INGRESE NUMERO DE EMPLEADO:".
    58.            ACCEPT WS-EMPLEADO.
    59.            DISPLAY "INGRESE SUELDO BASE:".
    60.            ACCEPT WS-SUELDO-BASE.
    61.            DISPLAY "INGRESE CANTIDAD DE VENTAS REALIZADAS:".
    62.            ACCEPT WS-CANTIDAD-VENTAS.
    63.            initialize cob-ventas.
    64.            PERFORM VARYING indice FROM 1 BY 1
    65.                            UNTIL indice > WS-CANTIDAD-VENTAS
    66.                                  or indice = 100
    67.               DISPLAY "INGRESE COBRO DE CADA VENTA:"
    68.               ACCEPT WS-COBRO-VENTAS
    69.               MOVE WS-COBRO-VENTAS TO cobros(indice)
    70.            END-PERFORM.

    Mira a ver y si no entiendes algo me lo dices.

    Mejora--> en vez de guardar los 100 cobros, que ocupan mas espacio, lo mejor es guardar un registro con cada cobro de esta forma VVVNNNCCCCC siendo VVV el numero de vendedor, NNN el numero de cobro, CCCCC importe de cobro.

    Pero bueno, para empezar no los llevabas mal. Animo ¡¡
    Hola! muchas gracias pude avanzar mas en el programa gracias a la ayuda, aunque ahora me cruze con otro problema, presiento que es algo complejo para mi nivel realizar este programa ya me marea demasiado
    COBOL Código:
    1.        IDENTIFICATION DIVISION.
    2.        PROGRAM-ID.                PROG-PAGOS-F.
    3.        AUTHOR.                    LUCAS GALEANO.
    4.        DATE-WRITTEN.              1/2/2023.
    5.  
    6.        ENVIRONMENT DIVISION.
    7.        INPUT-OUTPUT SECTION.
    8.        FILE-CONTROL.
    9.            SELECT REG-VENDEDORES ASSIGN TO "REG-MAESTRO.DAT"
    10.                ORGANIZATION IS LINE SEQUENTIAL.
    11.  
    12.            SELECT REG-VENTAS     ASSIGN TO "REG-VENTAS-MAESTRO.DAT"
    13.                ORGANIZATION IS LINE SEQUENTIAL.
    14.  
    15.        DATA DIVISION.
    16.        FILE SECTION.
    17.        FD REG-VENDEDORES.
    18.        01 VENDEDORES.
    19.            05 EMPLEADOS              PIC 999.
    20.            05 SUELDO-BASE            PIC 9(5).
    21.            05 CANTIDAD-VENTAS        PIC 9.
    22.  
    23.        FD REG-VENTAS.
    24.        01 COBRO-VENTAS               PIC 9(5).
    25.  
    26.  
    27.        WORKING-STORAGE SECTION.
    28.        01 WS-VENDEDORES.
    29.            05 WS-EMPLEADO            PIC 999.
    30.            05 WS-SUELDO-BASE         PIC 9(5).
    31.            05 WS-CANTIDAD-VENTAS     PIC 9.
    32.  
    33.        01 WS-COBROS.
    34.            05 WS-COBRO-VENTA         PIC 9(5).
    35.            05 WS-NUM-EMPLEADO        PIC 99.
    36.  
    37.  
    38.  
    39.        01 WS-TABLAS.
    40.            05 WS-TABLA-VENTAS OCCURS 3 TIMES.
    41.                10 WS-TABLA-EMPLEADO   PIC 99.
    42.                10 WS-TABLA-COBRO      PIC 9(5).
    43.  
    44.        77 WS-SUM-VENTAS              PIC 99.
    45.        77 WS-CONTADOR                PIC 99 VALUE ZEROS.
    46.        77 WS-RECAUDACION             PIC 9(6).
    47.  
    48.  
    49.        PROCEDURE DIVISION.
    50.        BEGIN-OUTPUT.
    51.            OPEN OUTPUT REG-VENDEDORES.
    52.            DISPLAY "INGRESE DATOS SOLICITADOS".
    53.            PERFORM INGRESO-DATOS-EMPLEADOS.
    54.            PERFORM UNTIL WS-VENDEDORES EQUALS SPACES
    55.                WRITE VENDEDORES FROM WS-VENDEDORES
    56.                PERFORM INGRESO-DATOS-EMPLEADOS
    57.            END-PERFORM.
    58.  
    59.            DISPLAY "INGRESE N DE EMPLEADO Y COBROS DE CADA VENTA:"
    60.            PERFORM INGRESO-VENTAS WITH TEST AFTER
    61.                             UNTIL WS-CONTADOR EQUALS WS-SUM-VENTAS
    62.                MOVE WS-COBROS TO WS-TABLA-VENTAS(1)
    63.            CLOSE  REG-VENDEDORES.
    64.  
    65.  
    66.        BEGIN-REPORT.
    67.            OPEN INPUT REG-VENDEDORES.
    68.            READ REG-VENDEDORES AT END MOVE HIGH-VALUE TO VENDEDORES
    69.            END-READ.
    70.            PERFORM VARYING WS-TABLAS FROM 01 BY 1
    71.                            UNTIL WS-TABLAS GREATER THAN 3
    72.            IF WS-TABLA-EMPLEADO(1) = EMPLEADOS
    73.                ADD WS-TABLA-COBRO(1) TO WS-RECAUDACION
    74.                DISPLAY "RECAUDACION DEL EMPLEADO ",EMPLEADOS
    75.                         "ES IGUAL A:"WS-RECAUDACION
    76.            END-IF
    77.            READ REG-VENDEDORES AT END MOVE HIGH-VALUE TO VENDEDORES
    78.            END-READ
    79.            END-PERFORM.
    80.            CLOSE REG-VENDEDORES.
    81.            STOP RUN.
    82.  
    83.        INGRESO-DATOS-EMPLEADOS.
    84.            DISPLAY "EEE$$$$$V".
    85.            ACCEPT WS-VENDEDORES.
    86.            IF WS-VENDEDORES NOT EQUAL SPACES
    87.                ADD WS-CANTIDAD-VENTAS TO WS-SUM-VENTAS
    88.            END-IF.
    89.  
    90.        INGRESO-VENTAS.
    91.            ADD 1 TO WS-CONTADOR.
    92.            DISPLAY "VV$$$$$".
    93.            ACCEPT WS-COBROS.

    Asi es como voy pero al realizar la ejecucion al llegar a la linea 73 el compilador me tira este error

    libcob: PROG-PAGOS-F.cbl: 73: 'WS-TABLA-COBRO' not numeric: ' '
    WARNING - Implicit CLOSE of REG-VENDEDORES ('REG-MAESTRO.DAT')
    Ya la verdad me marea mucho
    Creo que deberia plantear esto en otro posteo pero me aclaraste varias cosas que recurro a tu ayuda, gracias.

    0 Not allowed!

  5. #5
      Senior
    J

    Registrado
    junio de 2016
    Ubicación
    Albacete
    Edad
    57
    Mensajes
    417
    Última visita
    Ayer a las 11:40

    Agradecimientos
     
    Recibidos
    240
    Enviados
    149

    Citaciones y menciones
     
    Mentioned
    52 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    9 Post(s)
    Poder de Reputación
    25
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Predeterminado

    @Marengo97, tienes que echarle un poco de esfuerzo y hacerlo mejor.

    En lo que envias, nunca va a la linea 73.

    Aqui:

    COBOL Código:
    1.        INGRESO-VENTAS.
    2.            ADD 1 TO WS-CONTADOR.
    3.            DISPLAY "VV$$$$$".
    4.            ACCEPT WS-COBROS.

    Aceptas VV$$$$$ cuando lo tienes definido como $$$$$VV

    Creo que deberias aceptar VV por un lado y $$$$$ por otro. (ero eso es tu decision)

    Otra cosa: haces estio
    COBOL Código:
    1. MOVE WS-COBROS TO WS-TABLA-VENTAS(1)



    COBOL Código:
    1.        01 WS-COBROS.
    2.            05 WS-COBRO-VENTA         PIC 9(5).
    3.            05 WS-NUM-EMPLEADO        PIC 99.
    4.  
    5.  
    6.  
    7.        01 WS-TABLAS.
    8.            05 WS-TABLA-VENTAS OCCURS 3 TIMES.
    9.                10 WS-TABLA-EMPLEADO   PIC 99.
    10.                10 WS-TABLA-COBRO      PIC 9(5).

    Machacas campos diferentes.

    Cambia
    COBOL Código:
    1.   01 WS-COBROS.
    2.            05 WS-COBRO-VENTA         PIC 9(5).
    3.            05 WS-NUM-EMPLEADO        PIC 99.

    por
    COBOL Código:
    1.   01 WS-COBROS.
    2.            05 WS-NUM-EMPLEADO        PIC 99.
    3.            05 WS-COBRO-VENTA         PIC 9(5).

    y cuando te pierdas en el programa display y accepta campos para verificar el contenido.

    por ejemplo

    COBOL Código:
    1.         display "ws-tabla-cobro(1)"
    2.         accept ws-tabla-cobro(1) update
    3.        

    0 Not allowed!

  6. #6
      Acabo de llegar...
    M

    Registrado
    febrero de 2023
    Ubicación
    Buenos Aires
    Edad
    26
    Mensajes
    26
    Última visita
    22.11.2023

    Agradecimientos
     
    Recibidos
    0
    Enviados
    5

    Citaciones y menciones
     
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    0

    Predeterminado

    Cita Iniciado por JCantero Ver Mensaje
    @Marengo97, tienes que echarle un poco de esfuerzo y hacerlo mejor.

    En lo que envias, nunca va a la linea 73.

    Aqui:

    COBOL Código:
    1.        INGRESO-VENTAS.
    2.            ADD 1 TO WS-CONTADOR.
    3.            DISPLAY "VV$$$$$".
    4.            ACCEPT WS-COBROS.

    Aceptas VV$$$$$ cuando lo tienes definido como $$$$$VV

    Creo que deberias aceptar VV por un lado y $$$$$ por otro. (ero eso es tu decision)

    Otra cosa: haces estio
    COBOL Código:
    1. MOVE WS-COBROS TO WS-TABLA-VENTAS(1)



    COBOL Código:
    1.        01 WS-COBROS.
    2.            05 WS-COBRO-VENTA         PIC 9(5).
    3.            05 WS-NUM-EMPLEADO        PIC 99.
    4.  
    5.  
    6.  
    7.        01 WS-TABLAS.
    8.            05 WS-TABLA-VENTAS OCCURS 3 TIMES.
    9.                10 WS-TABLA-EMPLEADO   PIC 99.
    10.                10 WS-TABLA-COBRO      PIC 9(5).

    Machacas campos diferentes.

    Cambia
    COBOL Código:
    1.   01 WS-COBROS.
    2.            05 WS-COBRO-VENTA         PIC 9(5).
    3.            05 WS-NUM-EMPLEADO        PIC 99.

    por
    COBOL Código:
    1.   01 WS-COBROS.
    2.            05 WS-NUM-EMPLEADO        PIC 99.
    3.            05 WS-COBRO-VENTA         PIC 9(5).

    y cuando te pierdas en el programa display y accepta campos para verificar el contenido.

    por ejemplo

    COBOL Código:
    1.         display "ws-tabla-cobro(1)"
    2.         accept ws-tabla-cobro(1) update
    3.        
    Gracias voy a ver que puedo hacer teniendo en cuenta tus correciones y te comento de los resultados.
    Si,me di cuenta de que machaqué el codigo, se va notando que cada vez entiendo menos lo que pasa..falta mucha practica aún.

    0 Not allowed!

  7. #7
      Senior
    J

    Registrado
    junio de 2016
    Ubicación
    Albacete
    Edad
    57
    Mensajes
    417
    Última visita
    Ayer a las 11:40

    Agradecimientos
     
    Recibidos
    240
    Enviados
    149

    Citaciones y menciones
     
    Mentioned
    52 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    9 Post(s)
    Poder de Reputación
    25
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Predeterminado

    @Marengo97, exacto.

    En la programación hay que ser cuidadoso y preciso.

    En cobol si no dispones de un debuger eficiente, hay que poner displays y accepts para ver el la situación de las variables.

    Ten paciencia que vas por buen camino

    0 Not allowed!

Información de Tema

Usuarios Viendo este Tema

Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)

Temas Similares

  1. [Información] Ayuda para migrar a un Cobol más moderno
    Por jorgeamedina2020 en el foro COBOL - General
    Respuestas: 7
    Último Mensaje: 17.01.2023, 17:05
  2. [Compilador] Nuevo compilador de Cobol .NET de código abierto
    Por Joseg en el foro COBOL - General
    Respuestas: 14
    Último Mensaje: 09.01.2023, 16:48
  3. [Información] Ayuda con ejercicio de Cobol
    Por abi4997 en el foro COBOL - General
    Respuestas: 4
    Último Mensaje: 28.10.2022, 18:46
  4. Ayuda en COBOL wow Version 10
    Por oswaldo4444 en el foro RM/COBOL
    Respuestas: 0
    Último Mensaje: 04.05.2020, 19:37
  5. Código Cobol - mayúsculas/minúsculas
    Por Breew en el foro COBOL - General
    Respuestas: 9
    Último Mensaje: 09.04.2020, 09:20

Etiquetas para este Tema

Marcadores

Marcadores

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •