PDA

Ver la Versión Completa : [Compilador] Error al compilar con ejercicio de Cobol


vortal
29 de octubre de 2022, 22:03
Buenas porfa si alguien me pueda ayudar a resolver un error que no me deja compilar con un ejercicio de cobol que estoy realizando

804

Actualmente estoy utilizando OpenCobolIDE

el enunciado del ejercicio es:

El dueño de una agencia de viajes desea incrementar sus ingresos, para lo cual ha ideado ofrecer a los turistas varios tours a distintas regiones del país. Dado que no posee unidades de transporte apropiadas para llevar a cabo los viajes, piensa contar con transporte de particulares. Para organizar los diferentes tours, el dueño de la agencia desea contar con un software que le permita controlar los siguientes aspectos:

• Unidades de transporte disponibles: Datos correspondientes a las diferentes unidades de transporte:
- Placa del vehiculo
- Marca
- Nº de puestos
- Nombre del dueño
- N° de cédula del dueño
- Dirección de habitación
- Teléfono de habitación
- Teléfono celular
-Status (disponible, no disponible)

• Tours: Datos sobre los tours ofertados
- Región (costa, Colonia Tovar, ciudad capital)
- Nº de días
- Costo por persona

• Tours organizados: Datos sobre los tours a efectuarse o efectuados
- Región
- Fecha de salida
- Placa de la unidad asignada
- Nº de turistas

• Turistas: Datos de los turistas que han realizado algún tour ofertado por la agencia.
- Nº de cédula o pasaporte
- Nombre
- Apellido
- Dirección
-Teléfono de habitación
- Teléfono celular

• Turistas de un tour: Turistas que han realizado un tour
- Región
- Fecha de salida
- Nº de cédula
- Status (participante, retirado)

El dueño de la agencia desea que el programa le permita realizar lo siguiente:
• Registro y modificación de datos;
- Unidades de transporte
- Tours
- Tours organizados
- Turistas
- Turistas de un tour

• Las siguientes consultas:
- Unidades de transporte disponibles
- Tours para una fecha de salida dada
- Turistas participantes en un tour dado
- Tours efectuados en un mes

el error ocurre en la primera linea


*SELECT DE UNIDAD DE TRANSPORTE

IDENTIFICATION DIVISION.
PROGRAM-ID. AGENCIA-DE-TOURS.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT UNIDAD-TRANSPORTE
ASSIGN TO "TRANSPT.DAT"
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS UNIDADTRANSPT-ID
FILE STATUS IS ESTUNDTRAN.


SELECT DE TOURS
SELECT TOURS
ASSIGN TO "TOURS.DAT"
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS TOURS-ID
FILE STATUS IS ESTTOURS

SELECT DE TOURS-ORGANIZADOS
SELECT TORGN
ASSIGN TO "TORGN.DAT"
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS TORGN-ID
FILE STATUS IS ESTTORGN.

SELECT DE TURISTAS
SELECT TURISTAS
ASSIGN TO "TURISTA.DAT"
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS TURISTAS-ID
FILE STATUS IS ESTTURISTAS.

SELECT DE TURISTAS-DE-UN-
TOURS
SELECT TURISTASTOURS
ASSIGN TO "TTOURS.DAT"
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS TTOURS-ID
FILE STATUS IS ESTTURISTDTOURS


DATA DIVISION.
FILE SECTION.

FD UNIDAD-TRANSPORTE
LABEL RECORD IS STANDARD
DATA RECORD IS REGISTRO-UND-TRANSPORTE.

01 REGISTRO-UND-TRANSPORTE.
02 UNIDADTRANSPT-ID.
03 NO-PLACA-UND PIC X(10).
02 MARCA PIC X(20).
02 NOPUESTOS PIC 99.
02 NOMBREDUENO PIC X(30).
02 CEDULADUENO PIC X(10).
02 DIRECCIONHAB PIC X(30).
02 TLFHABITACION PIC X(10).
02 TLFCELULAR PIC X(10).
02 ST-UND-TRANS-DIS-S-NODIS-N PIC X(1)

FD TOURS
LABEL RECORD IS STANDARD
DATA RECORD IS REGISTRO-TOURS.
01 REGISTRO-TOURS.
02 TOURS-ID.
03 REGION PIC X(10).
02 NUM-DIAS PIC 9(3).
02 COSTOXPERSONA PIC 9(7)V99.

FD TORGN
LABEL RECORD IS STANDARD
DATA RECORD IS REGISTRO-TURISTAS.
01 REGISTRO-TURISTAS.
02 TORGN-ID.
03 J-REGION PIC X(10).
03 F-SALIDA.
04 A-SALIDA PIC 9(4).
04 M-SALIDA PIC 9(2).
04 D-SALIDA PIC 9(2).
02 PLACA-UND-ASIGND PIC X(10).
02 NUM-TURISTAS PIC 9(2).

FD TURISTAS
LABEL RECORD IS STANDARD
DATA RECORD IS TURISTAS.
01 REGISTRO-TURISTAS.
02 TURISTAS-ID.
03 CED-PASPT PIC X(10).
02 NOMBRE PIC X(20).
02 APELLIDO PIC X(10).
02 DIRECCION PIC X(30).
02 TLFHABITACION PIC X(10).
02 TLFCELULAR PIC X(10).

FD TURISTASTOURS
LABEL RECORD IS STANDARD
DATA RECORD IS REGISTRO-TTOURS.
01 REGISTRO-TTOURS.
02 TTOURS-ID.
03 TTREGION PIC X(10).
03 TTF-SALIDA.
04 TTA-SALIDA PIC 9(4).
04 TTM-SALIDA PIC 9(2).
04 TTD-SALIDA PIC 9(2).
03 TTCED-PASPT PIC X(10).
02 ST-TTOURS-PART-1-RETIRADO-2 PIC 9(1).

WORKING-STORAGE SECTION.

77 ESTUNDTRAN PIC X(2).
77 ESTTOURS PIC X(2).
77 ESTTORGN PIC X(2).
77 ESTTURISTAS PIC X(2).
77 ESTTURISTDTOURS PIC X(2).

01 VARITRAB.
02 OPMENU PIC 99 VALUE 0.
02 SW-SALIDA PIC 9 VALUE 0.
02SW-EXISTE PIC 9 VALUE 0.

SCREEN SECTION.
01 MENUINICIO.
02 LINE 5 POSITION 5 VALUE " 01 REGISTRO DE UNIDADES".
02 LINE 6 POSITION 5 VALUE " 02 REGISTRO DE TOURS".
02 LINE 7 POSITION 5 VALUE " 03 REGISTRO DE TOURS ORGANIZADOS ".
02 LINE 8 POSITION 5 VALUE " 04 REGISTRO DE TURISTAS".
02 LINE 9 POSITION 5 VALUE " 05 REGISTRO DE TURISTAS DE UN TOURS".
02 LINE 10 POSITION 5 VALUE " 06 CONSULTA UNIDADES DE TRANSPORTE DISPONIBLES".
02 LINE 11 POSITION 5 VALUE " 07 CONSULTA TOURS PARA UNA FECHA DE SALIDA DADA".
02 LINE 12 POSITION 5 VALUE " 08 CONSULTA TURISTAS PARTICIPANTES EN UN TOURS DADO".
02 LINE 13 POSITION 5 VALUE " 09 CONSULTA TOURS EFECTUADOS EN UN MES".
02 LINE 20 POSITION 5 VALUE " SELECCIONE LA OPCIÓN DESEADA".
02 LINE 20 POSITION 34 PIC ZZ USING OPMENU.


PROCEDURE DIVISION.

INICIO. INITIALIZE VARITRAB.
VERIFICA-ARCHIVOS.
OPEN INPUT UNIDAD-TRANSPORTE
IF ESTUNDTRAN = "35"
OPEN OUTPUT UNIDAD-TRANSPORTE.
CLOSE UNIDAD-TRANSPORTE.

MENUPPAL1.
MOVE 0 TO OPMENU.

MENUPPAL2.
DISPLAY BORRAR-PAN.
DISPLAY MENUINICIO.
ACCEPT MENUINICIO.
EVALUATE OPMENU
WHEN 1 PERFORM REGIS-UND1 THRU
F-REGIS-UND UNTIL
SW-SALIDA = 2
WHEN 99 GO TO FIN
END-EVALUATE.
GO TO MENUPPAL1.
*REGISTRO DE UNIDADES DISPONIBLES

REGIS-UND1.
INITIALIZE REGISTRO-UND-TRANSPORTE.

REGIS-UND2.
MOVE 0 TO SW-SALIDA
DISPLAY BORRAR-PAN.
MOVE SPACES TO P-UND-TRANS.
DISPLAY P-UND-TRANS.
ACCEPT P-UND-TRANS.
IF P-UND-TRANS = SPACES
MOVE 2 TO SW-SALIDA
GO TO F-REGIS-UND
END-IF.

REGIS-UND3.
OPEN INPUT UNIDAD-TRANSPORTE.
READ UNIDAD-TRANSPORTE
INVALID KEY
MOVE 1 TO SW-EXISTE
GO TO REGIS-UND4
NOT INVALID KEY
MOVE 2 TO SW-EXISTE
DISPLAY P-UNDTRANS2.

REGIS-UND4.
CLOSE UNIDAD-TRANSPORTE.

REGIS-UND5. ACCEPT P-UNDTRANS2.
REGIS-UND6.
OPEN I-O UNIDAD-TRANSPORTE
EVALUATE SW-EXISTE
WHEN 1
MOVE "S" TO
ST-UND-TRANS-DIS-S-NODIS-N
WRITE REGISTRO-UND-TRANSPORTE
INVALID KEY NEXT SENTENCE
END-WRITE

WHEN 2
REWRITE REGISTRO-UND-TRANSPORTE
INVALID KEY NEXT SENTENCE
END-REWRITE
END-EVALUATE.
CLOSE UNIDAD-TRANSPORTE.
MOVE 0 TO SW-EXISTE.
REGIS-UND7.
GO TO REGIS-UND1.
F-REGIS-UND.

FIN.
STOP RUN.

01 BORRAR-PAN
02 LINE 1 POSITION 01 BLANK SCREEN.
*PANTALLA DE UNIDADES DE TRANSPORTE DISPONIBLES.
01 P-UNDTRANS.
02 LINE 1 POSITION 01 VALUE "NUMERO DE PLACA ".
02 LINE 1 POSITION 17 PIC X(10) USING NO-PLACA-UND.
01 P-UNDTRANS2.
02 LINE 5 POSITION 1 VALUE "MARCA ".
02 LINE 5 POSITION 7 PIC X(20) USING MARCA.
02 LINE 6 POSITION 1 VALUE "NUM PUESTOS".
02 LINE 6 POSITION 12 PIC ZZ USING NOPUESTO.
02 LINE 7 POSITION 1 VALUE "NOMBRE".
02 LINE 7 POSITION 8 PIC X(30) USING NOMBREDUENO.
02 LINE 8 POSITION 1 VALUE "CEDULA".
02 LINE 8 POSITION 8 PIC X(10) USING CEDULADUENO.
02 LINE 9 POSITION 1 VALUE "DIRECCION".
02 LINE 9 POSITION 11 PIC X(30) USING DIRECCIONHAB.
02 LINE 10 POSITION 1 VALUE "TELEFONO".
02 LINE 10 POSITION 10 PIC X(10) USING TLFHABITACION.
02 LINE 11 POSITION 1 VALUE "CELULAR".
02 LINE 11 POSITION 9 PIC X(10) USING TLFCELULAR.
02 LINE 12 POSITION 1 VALUE "STATUS".
02 LINE 12 POSITION 8 PIC X(1) USING ST-UND-TRANS-DIS-S-NODIS-N.

*PANTALLA DE TOURS .

01 P-TOURS.
02 LINE 1 POSITION 1 VALUE "INGRESE REGION".
02 LINE 5 POSITION 16 PIC X(10) USING REGION.
01 P-TOURS2.
02 LINE 5 POSITION 1 VALUE "INGRESE NUMERO DE DIAS".
02 LINE 5 POSITION 24 PIC ZZZ USING NUM-DIAS.
02 LINE 7 POSITION 1 VALUE "COSTO POR PERSONA".
02 LINE 7 POSITION 19 PIC Z,ZZZ,ZZZ.99 USING COSTOXPERSONA.

*PANTALLA DE TOURS ORGANIZADOS .
01 P-TORGN.
02 LINE 1 POSITION 1 VALUE "INGRESE REGION".
02 LINE 5 POSITION 16 PIC X(10) USING J-REGION.
01 P-TORGN2
02 LINE 5 POSITION 1 VALUE "INGRESE FECHA DE SALIDA".
02 LINE 5 POSITION 25 PIC ZZ USING D-SALIDA.
02 LINE 5 POSITION 27 VALUE "/".
02 LINE 5 POSITION 28 PIC ZZ USING M-SALIDA.
02 LINE 5 POSITION 30 VALUE "/".
02 LINE 5 POSITION 31 PIC Z(4) USING A-SALIDA.
01 P-TORGN3.
02 LINE 9 POSITION 1 VALUE "PLACA DE LA UNIDAD ASIGNADA".
02 LINE 9 POSITION 29 PIC X(10) USING PLACA-UND-ASIGND.
02 LINE 10 POSITION 1 VALUE "INGRESE NUMERO DE TURISTAS".
02 LINE 10 POSITION 28 PIC ZZ USING NUM-TURISTAS.

*PANTALLA DE TURISTAS .
01 P-TURISTAS.
02 LINE 1 POSITION 1 VALUE "INGRESE CEDULA O PASAPORTE".
02 LINE 1 POSITION 28 PIC X(10) USING CED-PASPT.
01 P-TURISTAS2.
02 LINE 5 POSITION 01 VALUE "NOMBRE".
02 LINE 5 POSITION 8 PIC X(20) USING NOMBRE.
02 LINE 6 POSITION 1 VALUE "APELLIDO".
02 LINE 6 POSITION 10 PIC X(10) USING APELLIDO.
02 LINE 7 POSITION 1 VALUE "DIRECCION".
02 LINE 7 POSITION 11 PIC X(30) USING DIRECCION.
02 LINE 8 POSITION 1 VALUE "TELEFONO HABITACION".
02 LINE 8 POSITION 21 PIC X(10) USING TLFHABITACION.
02 LINE 8 POSITION 1 VALUE "TELEFONO CELULAR".
02 LINE 8 POSITION 18 PIC X(10) USING TLFCELULAR.

*PANTALLA DE TURISTAS DE UN TOURS .
01 P-TTOURS.
02 LINE 1 POSITION 1 VALUE "INGRESE REGION".
02 LINE 1 POSITION 16 PIC X(10) USING TTREGION.
01 P-TTOURS2.
02 LINE 5 POSITION 1 VALUE "INGRESE FECHA DE SALIDA".
02 LINE 5 POSITION 25 PIC ZZ USING TTD-SALIDA.
02 LINE 5 POSITION 28 VALUE "/".
02 LINE 5 POSITION 29 PIC ZZ USING TTM-SALIDA.
02 LINE 5 POSITION 31 VALUE "/".
02 LINE 5 POSITION 32 PIC Z(4) USING TTA-SALIDA.
01 P-TTOURS3.
02 LINE 9 POSITION 1 VALUE "INGRESE CEDULA O PASAPORTE".
02 LINE 9 POSITION 28 PIC X(10) USING TTCED-PASPT.
01 P-TTOURS4.
02 LINE 13 POSITION 1 VALUE "INGRESE STATUS DISPONIBLE O NO DISPONIBLE".
02 LINE 13 POSITION 43 PIC 9(1) USING ST-TTOURS-PART-1-RETIRADO-2.

CONSULTAS.......

EVALUATE SW-EXISTE
WHEN 1
MOVE "S" TO
ST-UND-TRANS-DIS-S-NODIS-N
WRITE REGISTRO-UND-TRANSPORTE
INVALID KEY NEXT SENTENCE
END-WRITE

WHEN 2

REWRITE REGISTRO-UND-TRANSPORTE
INVALID KEY NEXT SENTENCE
END-REWRITE
END-EVALUATE.
CLOSE UNIDAD-TRANSPORTE.
MOVE 0 TO SW-EXISTE.
REGIS-UND7.
GO TO REGIS-UND1.
F-REGIS-UND.

FIN.

STOP RUN.

END PROGRAM. AGENCIA-DE-TOURS.


Usa los botones de resalto de sintaxis que son estos: https://www.cobolforo.es/images/admin/sintax_bar.png

JCantero
29 de octubre de 2022, 23:15
@vortal, agrega el código como fuente de cobol (cbl) porque así es imposible ayudarte.

Hazlo asi

IDENTIFICATION DIVISION.
PROGRAM-ID. AGENCIA-DE-TOURS.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT UNIDAD-TRANSPORTE
ASSIGN TO "TRANSPT.DAT"
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS UNIDADTRANSPT-ID
FILE STATUS IS ESTUNDTRAN.


SELECT DE TOURS
SELECT TOURS
ASSIGN TO "TOURS.DAT"
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS


Lo mas seguro es que sea un problema de no respetar los margenes.

vortal
29 de octubre de 2022, 23:40
@JCantero

Buenas te pasare el .cbl por un rar ya que no se como pasarlo en .cbl

vortal
29 de octubre de 2022, 23:57
@JCantero Si pudieras ayudarme te lo agradeceria mucho llevo 2 dias intentando poder arreglar el problema y poder compilar y no lo logro.

JCantero
30 de octubre de 2022, 00:40
@vortal, El problema que tienes es de estructura.

Ahora te añado cosas que te arreglo.

1) los comentarios llevan arterisco y deben estar en la columna 7.
2) Los parrafos deben estar en el margen A, a partir de la columna 8.

y con eso ya puedes ir viendo mas cosas


*SELECT DE UNIDAD DE TRANSPORTE
IDENTIFICATION DIVISION.
PROGRAM-ID. AGENCIA-DE-TOURS.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.

FILE-CONTROL.
SELECT UNIDAD-TRANSPORTE
ASSIGN TO "TRANSPT.DAT"
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS UNIDADTRANSPT-ID
FILE STATUS IS ESTUNDTRAN.

* SELECT DE TOURS
SELECT TOURS
ASSIGN TO "TOURS.DAT"
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS TOURS-ID
FILE STATUS IS ESTTOURS.

* SELECT DE TOURS-ORGANIZADOS
SELECT TORGN
ASSIGN TO "TORGN.DAT"
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS TORGN-ID
FILE STATUS IS ESTTORGN.

* SELECT DE TURISTAS
SELECT TURISTAS
ASSIGN TO "TURISTA.DAT"
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS TURISTAS-ID
FILE STATUS IS ESTTURISTAS.

* SELECT DE TURISTAS-DE-UN-
* TOURS
SELECT TURISTASTOURS
ASSIGN TO "TTOURS.DAT"
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS TTOURS-ID
FILE STATUS IS ESTTURISTDTOURS.


DATA DIVISION.
FILE SECTION.

FD UNIDAD-TRANSPORTE
LABEL RECORD IS STANDARD
DATA RECORD IS REGISTRO-UND-TRANSPORTE.

01 REGISTRO-UND-TRANSPORTE.
02 UNIDADTRANSPT-ID.
03 NO-PLACA-UND PIC X(10).
02 MARCA PIC X(20).
02 NOPUESTOS PIC 99.
02 NOMBREDUENO PIC X(30).
02 CEDULADUENO PIC X(10).
02 DIRECCIONHAB PIC X(30).
02 TLFHABITACION PIC X(10).
02 TLFCELULAR PIC X(10).
02 ST-UND-TRANS-DIS-S-NODIS-N PIC X(1).

FD TOURS
LABEL RECORD IS STANDARD
DATA RECORD IS REGISTRO-TOURS.
01 REGISTRO-TOURS.
02 TOURS-ID.
03 REGION PIC X(10).
02 NUM-DIAS PIC 9(3).
02 COSTOXPERSONA PIC 9(7)V99.

FD TORGN
LABEL RECORD IS STANDARD
DATA RECORD IS REGISTRO-TURISTAS.
01 REGISTRO-TURISTAS.
02 TORGN-ID.
03 J-REGION PIC X(10).
03 F-SALIDA.
04 A-SALIDA PIC 9(4).
04 M-SALIDA PIC 9(2).
04 D-SALIDA PIC 9(2).
02 PLACA-UND-ASIGND PIC X(10).
02 NUM-TURISTAS PIC 9(2).

FD TURISTAS
LABEL RECORD IS STANDARD
DATA RECORD IS TURISTAS.
01 REGISTRO-TURISTAS.
02 TURISTAS-ID.
03 CED-PASPT PIC X(10).
02 NOMBRE PIC X(20).
02 APELLIDO PIC X(10).
02 DIRECCION PIC X(30).
02 TLFHABITACION PIC X(10).
02 TLFCELULAR PIC X(10).

FD TURISTASTOURS
LABEL RECORD IS STANDARD
DATA RECORD IS REGISTRO-TTOURS.
01 REGISTRO-TTOURS.
02 TTOURS-ID.
03 TTREGION PIC X(10).
03 TTF-SALIDA.
04 TTA-SALIDA PIC 9(4).
04 TTM-SALIDA PIC 9(2).
04 TTD-SALIDA PIC 9(2).
03 TTCED-PASPT PIC X(10).
02 ST-TTOURS-PART-1-RETIRADO-2 PIC 9(1).

WORKING-STORAGE SECTION.

77 ESTUNDTRAN PIC X(2).
77 ESTTOURS PIC X(2).
77 ESTTORGN PIC X(2).
77 ESTTURISTAS PIC X(2).
77 ESTTURISTDTOURS PIC X(2).

01 VARITRAB.
02 OPMENU PIC 99 VALUE 0.
02 SW-SALIDA PIC 9 VALUE 0.
02 SW-EXISTE PIC 9 VALUE 0.

SCREEN SECTION.
01 MENUINICIO.
02 LINE 5 POSITION 5 VALUE " 01 REGISTRO DE UNIDADES".
02 LINE 6 POSITION 5 VALUE " 02 REGISTRO DE TOURS".
02 LINE 7 POSITION 5 VALUE " 03 REGISTRO DE TOURS ORGANIZADOS ".
02 LINE 8 POSITION 5 VALUE " 04 REGISTRO DE TURISTAS".
02 LINE 9 POSITION 5 VALUE " 05 REGISTRO DE TURISTAS DE UN TOURS".
02 LINE 10 POSITION 5 VALUE " 06 CONSULTA UNIDADES DE TRANSPORTE DISPONIBLES".
02 LINE 11 POSITION 5 VALUE " 07 CONSULTA TOURS PARA UNA FECHA DE SALIDA DADA".
02 LINE 12 POSITION 5 VALUE " 08 CONSULTA TURISTAS PARTICIPANTES EN UN TOURS DADO".
02 LINE 13 POSITION 5 VALUE " 09 CONSULTA TOURS EFECTUADOS EN UN MES".
02 LINE 20 POSITION 5 VALUE " SELECCIONE LA OPCIÓN DESEADA".
02 LINE 20 POSITION 34 PIC ZZ USING OPMENU.


PROCEDURE DIVISION.

INICIO.
INITIALIZE VARITRAB.
VERIFICA-ARCHIVOS.
OPEN INPUT UNIDAD-TRANSPORTE
IF ESTUNDTRAN = "35"
OPEN OUTPUT UNIDAD-TRANSPORTE.
CLOSE UNIDAD-TRANSPORTE.

MENUPPAL1.
MOVE 0 TO OPMENU.

MENUPPAL2.
DISPLAY BORRAR-PAN.
DISPLAY MENUINICIO.
ACCEPT MENUINICIO.
EVALUATE OPMENU
WHEN 1 PERFORM REGIS-UND1 THRU
F-REGIS-UND UNTIL
SW-SALIDA = 2
WHEN 99 GO TO FIN
END-EVALUATE.
GO TO MENUPPAL1.
*REGISTRO DE UNIDADES DISPONIBLES

REGIS-UND1.
INITIALIZE REGISTRO-UND-TRANSPORTE.

REGIS-UND2.
MOVE 0 TO SW-SALIDA
DISPLAY BORRAR-PAN.
MOVE SPACES TO P-UND-TRANS.
DISPLAY P-UND-TRANS.
ACCEPT P-UND-TRANS.
IF P-UND-TRANS = SPACES
MOVE 2 TO SW-SALIDA
GO TO F-REGIS-UND
END-IF.

REGIS-UND3.
OPEN INPUT UNIDAD-TRANSPORTE.
READ UNIDAD-TRANSPORTE
INVALID KEY
MOVE 1 TO SW-EXISTE
GO TO REGIS-UND4
NOT INVALID KEY
MOVE 2 TO SW-EXISTE
DISPLAY P-UNDTRANS2.

REGIS-UND4.
CLOSE UNIDAD-TRANSPORTE.

REGIS-UND5.
ACCEPT P-UNDTRANS2.
REGIS-UND6.
OPEN I-O UNIDAD-TRANSPORTE
EVALUATE SW-EXISTE
WHEN 1
MOVE "S" TO
ST-UND-TRANS-DIS-S-NODIS-N
WRITE REGISTRO-UND-TRANSPORTE
INVALID KEY NEXT SENTENCE
END-WRITE

WHEN 2
REWRITE REGISTRO-UND-TRANSPORTE
INVALID KEY NEXT SENTENCE
END-REWRITE
END-EVALUATE.
CLOSE UNIDAD-TRANSPORTE.
MOVE 0 TO SW-EXISTE.
REGIS-UND7.
GO TO REGIS-UND1.
F-REGIS-UND.

FIN.
STOP RUN.

vortal
30 de octubre de 2022, 01:12
@JCantero nada amigo me sigue dando errores no se si es porque estoy usando OpenCobolIDE

JCantero
30 de octubre de 2022, 01:30
@vortal, en que linea, que te dice ?

Hay cosas en ese fuente que el cobol ide no se traga. tendras que cambiarlas.

vortal
30 de octubre de 2022, 01:40
@JCantero me esta dando un poco de errores. a ti te funciono compilando?

vortal
30 de octubre de 2022, 16:19
@JCantero avance un poco y pude resolver algunos errores pero me quedaron estos que no se como resolverlo

JCantero
30 de octubre de 2022, 17:53
@vortal, te dice que la variable borrar-pan no existe.

No la tienes definida en working. el resto de errores es lo mismo

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

IDENTIFICATION DIVISION.
PROGRAM-ID. AGENCIA-DE-TOURS.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.

FILE-CONTROL.
*> *SELECT DE UNIDAD DE TRANSPORTE
SELECT UNIDAD-TRANSPORTE
ASSIGN TO "TRANSPT.DAT"
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS UNIDADTRANSPT-ID
FILE STATUS IS ESTUNDTRAN.

* SELECT DE TOURS
SELECT TOURS
ASSIGN TO "TOURS.DAT"
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS TOURS-ID
FILE STATUS IS ESTTOURS.

* SELECT DE TOURS-ORGANIZADOS
SELECT TORGN
ASSIGN TO "TORGN.DAT"
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS TORGN-ID
FILE STATUS IS ESTTORGN.

* SELECT DE TURISTAS
SELECT TURISTAS
ASSIGN TO "TURISTA.DAT"
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS TURISTAS-ID
FILE STATUS IS ESTTURISTAS.

* SELECT DE TURISTAS-DE-UN-
* TOURS
SELECT TURISTASTOURS
ASSIGN TO "TTOURS.DAT"
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS TTOURS-ID
FILE STATUS IS ESTTURISTDTOURS.

DATA DIVISION.
FILE SECTION.

FD UNIDAD-TRANSPORTE
LABEL RECORD IS STANDARD
DATA RECORD IS REGISTRO-UND-TRANSPORTE.

01 REGISTRO-UND-TRANSPORTE.
02 UNIDADTRANSPT-ID.
03 NO-PLACA-UND PIC X(10).
02 MARCA PIC X(20).
02 NOPUESTOS PIC 99.
02 NOMBREDUENO PIC X(30).
02 CEDULADUENO PIC X(10).
02 DIRECCIONHAB PIC X(30).
02 TLFHABITACION PIC X(10).
02 TLFCELULAR PIC X(10).
02 ST-UND-TRANS-DIS-S-NODIS-N PIC X(1).

FD TOURS
LABEL RECORD IS STANDARD
DATA RECORD IS REGISTRO-TOURS.
01 REGISTRO-TOURS.
02 TOURS-ID.
03 REGION PIC X(10).
02 NUM-DIAS PIC 9(3).
02 COSTOXPERSONA PIC 9(7)V99.

FD TORGN
LABEL RECORD IS STANDARD
DATA RECORD IS REGISTRO-TORGN.
01 REGISTRO-TORGN.
02 TORGN-ID.
03 J-REGION PIC X(10).
03 F-SALIDA.
04 A-SALIDA PIC 9(4).
04 M-SALIDA PIC 9(2).
04 D-SALIDA PIC 9(2).
02 PLACA-UND-ASIGND PIC X(10).
02 NUM-TURISTAS PIC 9(2).

FD TURISTAS
LABEL RECORD IS STANDARD
DATA RECORD IS TURISTAS.
01 REGISTRO-TURISTAS.
02 TURISTAS-ID.
03 CED-PASPT PIC X(10).
02 NOMBRE PIC X(20).
02 APELLIDO PIC X(10).
02 DIRECCION PIC X(30).
02 TLFHABITACION PIC X(10).
02 TLFCELULAR PIC X(10).

FD TURISTASTOURS
LABEL RECORD IS STANDARD
DATA RECORD IS REGISTRO-TTOURS.
01 REGISTRO-TTOURS.
02 TTOURS-ID.
03 TTREGION PIC X(10).
03 TTF-SALIDA.
04 TTA-SALIDA PIC 9(4).
04 TTM-SALIDA PIC 9(2).
04 TTD-SALIDA PIC 9(2).
03 TTCED-PASPT PIC X(10).
02 ST-TTOURS-PART-1-RETIRADO-2 PIC 9(1).

WORKING-STORAGE SECTION.

77 ESTUNDTRAN PIC X(2).
77 ESTTOURS PIC X(2).
77 ESTTORGN PIC X(2).
77 ESTTURISTAS PIC X(2).
77 ESTTURISTDTOURS PIC X(2).
01 BORRAR-PAN PIC X(1).
01 P-UND-TRANS PIC X(1).
01 P-UNDTRANS2 PIC X(1).

01 VARITRAB.
02 OPMENU PIC 99 VALUE 0.
02 SW-SALIDA PIC 9 VALUE 0.
02 SW-EXISTE PIC 9 VALUE 0.

SCREEN SECTION.
01 MENUINICIO.
02 LINE 5 VALUE " 01 REGISTRO DE UNIDADES".
02 LINE 6 VALUE " 02 REGISTRO DE TOURS".
02 LINE 7 VALUE " 03 REGISTRO DE TOURS ORGANIZADOS ".
02 LINE 8 VALUE " 04 REGISTRO DE TURISTAS".
02 LINE 9 VALUE " 05 REGISTRO DE TURISTAS DE UN TOURS".
02 LINE 10 VALUE " 06 CONSULTA UNIDADES DE TRANSPT DISPONIBLES".
02 LINE 11 VALUE " 07 CONSULTA TOURS PARA FECHA DE SALIDA".
02 LINE 12 VALUE " 08 CONSULTA TURISTAS PARTICIPANTES TOURS".
02 LINE 13 VALUE " 09 CONSULTA TOURS EFECTUADOS EN UN MES".
02 LINE 20 VALUE " SELECCIONE LA OPCION DESEADA".
02 LINE 20 PIC ZZ USING OPMENU.

PROCEDURE DIVISION.

INICIO.
INITIALIZE VARITRAB.
VERIFICA-ARCHIVOS.
OPEN INPUT UNIDAD-TRANSPORTE
IF ESTUNDTRAN = "35"
OPEN OUTPUT UNIDAD-TRANSPORTE.
CLOSE UNIDAD-TRANSPORTE.

MENUPPAL1.
MOVE 0 TO OPMENU.

MENUPPAL2.
DISPLAY BORRAR-PAN.
DISPLAY MENUINICIO.
ACCEPT MENUINICIO.
EVALUATE OPMENU
WHEN 1 PERFORM REGIS-UND1 THRU
F-REGIS-UND UNTIL
SW-SALIDA = 2
WHEN 99 GO TO FIN
END-EVALUATE.
GO TO MENUPPAL1.
*REGISTRO DE UNIDADES DISPONIBLES

REGIS-UND1.
INITIALIZE REGISTRO-UND-TRANSPORTE.

REGIS-UND2.
MOVE 0 TO SW-SALIDA
DISPLAY BORRAR-PAN.
MOVE SPACES TO P-UND-TRANS.
DISPLAY P-UND-TRANS.
ACCEPT P-UND-TRANS.
IF P-UND-TRANS = SPACES
MOVE 2 TO SW-SALIDA
GO TO F-REGIS-UND
END-IF.

REGIS-UND3.
OPEN INPUT UNIDAD-TRANSPORTE.
READ UNIDAD-TRANSPORTE
INVALID KEY
MOVE 1 TO SW-EXISTE
GO TO REGIS-UND4
NOT INVALID KEY
MOVE 2 TO SW-EXISTE
DISPLAY P-UNDTRANS2.

REGIS-UND4.
CLOSE UNIDAD-TRANSPORTE.

REGIS-UND5.
ACCEPT P-UNDTRANS2.
REGIS-UND6.
OPEN I-O UNIDAD-TRANSPORTE
EVALUATE SW-EXISTE
WHEN 1
MOVE "S" TO
ST-UND-TRANS-DIS-S-NODIS-N
WRITE REGISTRO-UND-TRANSPORTE
END-WRITE

WHEN 2
REWRITE REGISTRO-UND-TRANSPORTE
END-REWRITE
END-EVALUATE.
CLOSE UNIDAD-TRANSPORTE.
MOVE 0 TO SW-EXISTE.
REGIS-UND7.
GO TO REGIS-UND1.
F-REGIS-UND.

FIN.
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

DISPLAY P-UND-TRANS.

pero P-UNID-TRANS esta en blanco, debes darle valor hacer display de una etiqueta, de esta forma

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&source=web&rct=j&url=https://gnucobol.sourceforge.io/guides/OpenCOBOL%2520Programmers%2520Guide.pdf&ved=2ahUKEwjYytHJy4j7AhVrgf0HHU5NAAYQFnoECBgQAQ&usg=AOvVaw1jGzKNMA-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.