Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   GnuCOBOL (OpenCOBOL) (https://www.cobolforo.es/forumdisplay.php?f=90)
-   -   [Compilador] Error al compilar con ejercicio de Cobol (https://www.cobolforo.es/showthread.php?t=1553)

Josber 30 de octubre de 2022 17:53

@vortal, te está diciendo que esas variables, (BORRAR-PAN, P-UND-TRANS, etc), no existen, tienes que definirlas en la WORKING correspondiente

Un salu2.-

vortal 30 de octubre de 2022 19:03

@JCantero @Josber Bueno despues de un rato ya el .cbl se pudo compilar pero no funciona bien el exe. no se si en la parte de WORKINGlo hice bien. Disculpa si molesto mucho pero es que soy muy nuevo en cobol y no lo entiendo mucho la verdad

Código COBOL:
  1. IDENTIFICATION DIVISION.
  2.         PROGRAM-ID. AGENCIA-DE-TOURS.
  3.         ENVIRONMENT DIVISION.
  4.         INPUT-OUTPUT SECTION.
  5.        
  6.        FILE-CONTROL.
  7.      *>  *SELECT DE UNIDAD DE TRANSPORTE  
  8.        SELECT UNIDAD-TRANSPORTE
  9.          ASSIGN TO "TRANSPT.DAT"
  10.          ORGANIZATION IS INDEXED
  11.          ACCESS MODE IS DYNAMIC
  12.          RECORD KEY IS UNIDADTRANSPT-ID
  13.          FILE STATUS IS ESTUNDTRAN.
  14.  
  15.       * SELECT DE TOURS
  16.        SELECT TOURS
  17.          ASSIGN TO "TOURS.DAT"
  18.          ORGANIZATION IS INDEXED
  19.          ACCESS MODE IS DYNAMIC
  20.          RECORD KEY IS TOURS-ID
  21.          FILE STATUS IS ESTTOURS.
  22.  
  23.       * SELECT DE TOURS-ORGANIZADOS
  24.        SELECT TORGN
  25.        ASSIGN TO "TORGN.DAT"
  26.        ORGANIZATION IS INDEXED
  27.        ACCESS MODE IS DYNAMIC
  28.        RECORD KEY IS TORGN-ID
  29.        FILE STATUS IS ESTTORGN.
  30.  
  31.       * SELECT DE TURISTAS
  32.        SELECT TURISTAS
  33.        ASSIGN TO "TURISTA.DAT"
  34.        ORGANIZATION IS INDEXED
  35.        ACCESS MODE IS DYNAMIC
  36.        RECORD KEY IS TURISTAS-ID
  37.        FILE STATUS IS ESTTURISTAS.
  38.  
  39.       * SELECT DE TURISTAS-DE-UN-
  40.      * TOURS
  41.        SELECT TURISTASTOURS
  42.        ASSIGN TO "TTOURS.DAT"
  43.        ORGANIZATION IS INDEXED
  44.        ACCESS MODE IS DYNAMIC
  45.        RECORD KEY IS TTOURS-ID
  46.        FILE STATUS IS ESTTURISTDTOURS.
  47.  
  48.        DATA DIVISION.
  49.        FILE SECTION.
  50.  
  51.        FD UNIDAD-TRANSPORTE
  52.             LABEL RECORD IS STANDARD
  53.             DATA RECORD IS REGISTRO-UND-TRANSPORTE.
  54.  
  55.        01 REGISTRO-UND-TRANSPORTE.
  56.        02 UNIDADTRANSPT-ID.
  57.        03 NO-PLACA-UND PIC X(10).
  58.        02 MARCA PIC X(20).
  59.        02 NOPUESTOS PIC 99.
  60.        02 NOMBREDUENO PIC X(30).
  61.        02 CEDULADUENO PIC X(10).
  62.        02 DIRECCIONHAB PIC X(30).
  63.        02 TLFHABITACION PIC X(10).
  64.        02 TLFCELULAR PIC X(10).
  65.        02 ST-UND-TRANS-DIS-S-NODIS-N PIC X(1).
  66.  
  67.        FD TOURS
  68.        LABEL RECORD IS STANDARD
  69.        DATA RECORD IS REGISTRO-TOURS.
  70.        01 REGISTRO-TOURS.
  71.        02 TOURS-ID.
  72.        03 REGION PIC X(10).
  73.        02 NUM-DIAS PIC 9(3).
  74.        02 COSTOXPERSONA PIC 9(7)V99.
  75.  
  76.        FD TORGN
  77.        LABEL RECORD IS STANDARD
  78.        DATA RECORD IS   REGISTRO-TORGN.
  79.        01 REGISTRO-TORGN.
  80.        02 TORGN-ID.
  81.        03 J-REGION PIC X(10).
  82.        03 F-SALIDA.
  83.        04 A-SALIDA PIC 9(4).
  84.        04 M-SALIDA PIC 9(2).
  85.        04 D-SALIDA PIC 9(2).
  86.        02 PLACA-UND-ASIGND PIC X(10).
  87.        02 NUM-TURISTAS PIC 9(2).
  88.  
  89.        FD TURISTAS
  90.        LABEL RECORD IS STANDARD
  91.        DATA RECORD IS TURISTAS.
  92.        01 REGISTRO-TURISTAS.
  93.        02 TURISTAS-ID.
  94.        03 CED-PASPT PIC X(10).
  95.        02 NOMBRE PIC X(20).
  96.        02 APELLIDO PIC X(10).
  97.        02 DIRECCION PIC X(30).
  98.        02 TLFHABITACION PIC X(10).
  99.        02 TLFCELULAR PIC X(10).
  100.  
  101.        FD TURISTASTOURS
  102.        LABEL RECORD IS STANDARD
  103.        DATA RECORD IS REGISTRO-TTOURS.
  104.        01 REGISTRO-TTOURS.
  105.        02 TTOURS-ID.
  106.            03 TTREGION PIC X(10).
  107.             03 TTF-SALIDA.
  108.                   04 TTA-SALIDA PIC 9(4).
  109.                      04 TTM-SALIDA PIC 9(2).
  110.                      04 TTD-SALIDA PIC 9(2).
  111.               03 TTCED-PASPT PIC X(10).
  112.        02 ST-TTOURS-PART-1-RETIRADO-2   PIC 9(1).
  113.  
  114.        WORKING-STORAGE SECTION.
  115.  
  116.        77 ESTUNDTRAN PIC X(2).
  117.        77 ESTTOURS PIC X(2).
  118.        77 ESTTORGN PIC X(2).
  119.        77 ESTTURISTAS PIC X(2).
  120.        77 ESTTURISTDTOURS PIC X(2).
  121.        01 BORRAR-PAN PIC X(1).
  122.        01 P-UND-TRANS PIC X(1).
  123.        01 P-UNDTRANS2 PIC X(1).
  124.        
  125.        01 VARITRAB.
  126.        02 OPMENU PIC 99 VALUE 0.
  127.        02 SW-SALIDA PIC 9 VALUE 0.
  128.        02 SW-EXISTE PIC 9 VALUE 0.
  129.  
  130.        SCREEN SECTION.
  131.        01 MENUINICIO.
  132.        02 LINE 5 VALUE " 01 REGISTRO DE UNIDADES".
  133.        02 LINE 6 VALUE " 02 REGISTRO DE TOURS".
  134.        02 LINE 7 VALUE " 03 REGISTRO DE TOURS ORGANIZADOS ".
  135.        02 LINE 8 VALUE " 04 REGISTRO DE TURISTAS".
  136.        02 LINE 9 VALUE " 05 REGISTRO DE TURISTAS DE UN TOURS".
  137.        02 LINE 10 VALUE " 06 CONSULTA UNIDADES DE TRANSPT DISPONIBLES".
  138.            02 LINE 11 VALUE " 07 CONSULTA TOURS PARA FECHA DE SALIDA".
  139.            02 LINE 12 VALUE " 08 CONSULTA TURISTAS PARTICIPANTES TOURS".
  140.            02 LINE 13 VALUE " 09 CONSULTA TOURS EFECTUADOS EN UN MES".
  141.            02 LINE 20 VALUE "   SELECCIONE LA OPCION DESEADA".
  142.            02 LINE 20 PIC ZZ USING OPMENU.
  143.  
  144.        PROCEDURE DIVISION.
  145.  
  146.        INICIO.
  147.            INITIALIZE VARITRAB.
  148.            VERIFICA-ARCHIVOS.
  149.            OPEN INPUT UNIDAD-TRANSPORTE
  150.            IF ESTUNDTRAN = "35"
  151.            OPEN OUTPUT UNIDAD-TRANSPORTE.
  152.            CLOSE UNIDAD-TRANSPORTE.
  153.  
  154.        MENUPPAL1.
  155.            MOVE 0 TO OPMENU.
  156.  
  157.        MENUPPAL2.
  158.            DISPLAY BORRAR-PAN.
  159.            DISPLAY MENUINICIO.
  160.            ACCEPT MENUINICIO.
  161.            EVALUATE OPMENU
  162.            WHEN  1  PERFORM  REGIS-UND1 THRU
  163.            F-REGIS-UND UNTIL
  164.            SW-SALIDA = 2
  165.            WHEN 99  GO TO FIN
  166.            END-EVALUATE.
  167.            GO TO MENUPPAL1.
  168.      *REGISTRO DE UNIDADES DISPONIBLES
  169.  
  170.         REGIS-UND1.
  171.            INITIALIZE REGISTRO-UND-TRANSPORTE.
  172.  
  173.         REGIS-UND2.
  174.            MOVE 0 TO SW-SALIDA
  175.            DISPLAY BORRAR-PAN.
  176.            MOVE SPACES TO P-UND-TRANS.
  177.            DISPLAY P-UND-TRANS.
  178.            ACCEPT P-UND-TRANS.
  179.            IF P-UND-TRANS = SPACES
  180.            MOVE 2 TO SW-SALIDA
  181.            GO TO F-REGIS-UND
  182.            END-IF.
  183.  
  184.        REGIS-UND3.
  185.            OPEN INPUT UNIDAD-TRANSPORTE.
  186.            READ UNIDAD-TRANSPORTE
  187.            INVALID KEY
  188.            MOVE 1 TO SW-EXISTE
  189.            GO TO REGIS-UND4
  190.            NOT INVALID KEY
  191.            MOVE 2 TO SW-EXISTE
  192.            DISPLAY P-UNDTRANS2.
  193.  
  194.        REGIS-UND4.
  195.            CLOSE UNIDAD-TRANSPORTE.
  196.  
  197.        REGIS-UND5.
  198.            ACCEPT P-UNDTRANS2.
  199.        REGIS-UND6.
  200.            OPEN I-O UNIDAD-TRANSPORTE
  201.            EVALUATE SW-EXISTE
  202.            WHEN 1
  203.            MOVE "S" TO
  204.            ST-UND-TRANS-DIS-S-NODIS-N
  205.            WRITE          REGISTRO-UND-TRANSPORTE
  206.            END-WRITE
  207.  
  208.                WHEN 2
  209.            REWRITE          REGISTRO-UND-TRANSPORTE
  210.            END-REWRITE
  211.            END-EVALUATE.
  212.            CLOSE UNIDAD-TRANSPORTE.
  213.            MOVE 0 TO SW-EXISTE.
  214.            REGIS-UND7.
  215.            GO TO REGIS-UND1.
  216.            F-REGIS-UND.
  217.  
  218.        FIN.
  219.            STOP RUN.

JCantero 30 de octubre de 2022 20:24

@vortal, la ultima version que has puesto funciona mas o menos.

Yo la he puesto en Open Cobol IDE y al darle a intro sale el menu. Aunque en un linea.

En la logica del program haces
Código COBOL:
  1. DISPLAY P-UND-TRANS.
pero P-UNID-TRANS esta en blanco, debes darle valor hacer display de una etiqueta, de esta forma
Código COBOL:
  1. display " INTRODUCIR UNIDADES DE TRANS"

Te pongo aqui un link del manual. Revisa en la pagina 8-4 que hay un ejemplo para que puedas aprender.

https://www.google.com/url?sa=t&sour...-vXKgLQ7o1a_kQ

- - - Updated - - -

El programa que estas intentando hacer parece muy complicado para el nivel que tienes.

Debes empezar con cosas mas faciles. Como hacer varias preguntas por pantalla, aceptar la respuesta y hacer algun calculo o montaje de string.

Cuando controles la pantalla ya podrias meterte a realizar lo que que has puesto mas arriba.

Paco_Diaz 22 de noviembre de 2022 15:05

Buenas.

@vortal, He descargado tu fuente, (1.cbl) porque el primero (agencia.cbl tambien lo descargue y es aun peor, se han cambiado margenes, etc.),lo he abierto con OpenCobolIDE, y los errores que yo veo son estos:

1.- LABEL RECORD Y DATA RECORD.
2.- REGISTRO-TURISTAS lo tienes definido 2 veces, en la linea 80 y en la 93.
3.- La SCREENSECTION, la tienes erronea, el 01 va en el margen A y el nombre en el margen B
4.- Todas las definiciones que tienes que se pasan de la columna 79, tienes que continuar en la linea siguiente poniendo un guion (-) en la columna 7 y sigues escribiendo.
5.- BORRAR-PAN no esta definida en ningun lado
6.- La linea 202 esta partida y continua en la 203
7.- P-UNDTRANS2 no esta definida
8.- NEXT SENTENCE es otra sentencia antigua

Por ahora he visto esos, no se si al descargarlo y abrirlo se ha podido "desvirtualizar" el codigo, y realmente no es como me sale, pero asi es como lo veo y esos son los errores que he detectado.

Espero haber podido ayudarte en algo

Un saludo. Paco.


La franja horaria es GMT +2. Ahora son las 03:06.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.