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)

vortal 29 de octubre de 2022 22:03

Error al compilar con ejercicio de Cobol
 
1 Archivos Adjunto(s)
Buenas porfa si alguien me pueda ayudar a resolver un error que no me deja compilar con un ejercicio de cobol que estoy realizando

[ATTACH=CONFIG]804[/ATTACH]

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


Código COBOL:
  1. *SELECT DE UNIDAD DE TRANSPORTE
  2.  
  3. IDENTIFICATION DIVISION.
  4. PROGRAM-ID. AGENCIA-DE-TOURS.
  5. ENVIRONMENT DIVISION.
  6. INPUT-OUTPUT SECTION.
  7. FILE-CONTROL.
  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.  
  16. SELECT DE TOURS
  17. SELECT TOURS
  18. ASSIGN TO "TOURS.DAT"
  19. ORGANIZATION IS INDEXED
  20. ACCESS MODE IS DYNAMIC
  21. RECORD KEY IS TOURS-ID
  22. FILE STATUS IS ESTTOURS
  23.  
  24. SELECT DE TOURS-ORGANIZADOS
  25. SELECT TORGN
  26. ASSIGN TO "TORGN.DAT"
  27. ORGANIZATION IS INDEXED
  28. ACCESS MODE IS DYNAMIC
  29. RECORD KEY IS TORGN-ID
  30. FILE STATUS IS ESTTORGN.
  31.  
  32. SELECT DE TURISTAS
  33. SELECT TURISTAS
  34. ASSIGN TO "TURISTA.DAT"
  35. ORGANIZATION IS INDEXED
  36. ACCESS MODE IS DYNAMIC
  37. RECORD KEY IS TURISTAS-ID
  38. FILE STATUS IS ESTTURISTAS.
  39.  
  40. SELECT DE TURISTAS-DE-UN-
  41. TOURS
  42. SELECT TURISTASTOURS
  43. ASSIGN TO "TTOURS.DAT"
  44. ORGANIZATION IS INDEXED
  45. ACCESS MODE IS DYNAMIC
  46. RECORD KEY IS TTOURS-ID
  47. FILE STATUS IS ESTTURISTDTOURS
  48.  
  49.  
  50. DATA DIVISION.
  51. FILE SECTION.
  52.  
  53. FD UNIDAD-TRANSPORTE
  54. LABEL RECORD IS STANDARD
  55. DATA RECORD IS REGISTRO-UND-TRANSPORTE.
  56.  
  57. 01 REGISTRO-UND-TRANSPORTE.
  58. 02 UNIDADTRANSPT-ID.
  59. 03 NO-PLACA-UND PIC X(10).
  60. 02 MARCA PIC X(20).
  61. 02 NOPUESTOS PIC 99.
  62. 02 NOMBREDUENO PIC X(30).
  63. 02 CEDULADUENO PIC X(10).
  64. 02 DIRECCIONHAB PIC X(30).
  65. 02 TLFHABITACION PIC X(10).
  66. 02 TLFCELULAR PIC X(10).
  67. 02 ST-UND-TRANS-DIS-S-NODIS-N PIC X(1)
  68.  
  69. FD TOURS
  70. LABEL RECORD IS STANDARD
  71. DATA RECORD IS REGISTRO-TOURS.
  72. 01 REGISTRO-TOURS.
  73. 02 TOURS-ID.
  74. 03 REGION PIC X(10).
  75. 02 NUM-DIAS PIC 9(3).
  76. 02 COSTOXPERSONA PIC 9(7)V99.
  77.  
  78. FD TORGN
  79. LABEL RECORD IS STANDARD
  80. DATA RECORD IS REGISTRO-TURISTAS.
  81. 01 REGISTRO-TURISTAS.
  82. 02 TORGN-ID.
  83. 03 J-REGION PIC X(10).
  84. 03 F-SALIDA.
  85. 04 A-SALIDA PIC 9(4).
  86. 04 M-SALIDA PIC 9(2).
  87. 04 D-SALIDA PIC 9(2).
  88. 02 PLACA-UND-ASIGND PIC X(10).
  89. 02 NUM-TURISTAS PIC 9(2).
  90.  
  91. FD TURISTAS
  92. LABEL RECORD IS STANDARD
  93. DATA RECORD IS TURISTAS.
  94. 01 REGISTRO-TURISTAS.
  95. 02 TURISTAS-ID.
  96. 03 CED-PASPT PIC X(10).
  97. 02 NOMBRE PIC X(20).
  98. 02 APELLIDO PIC X(10).
  99. 02 DIRECCION PIC X(30).
  100. 02 TLFHABITACION PIC X(10).
  101. 02 TLFCELULAR PIC X(10).
  102.  
  103. FD TURISTASTOURS
  104. LABEL RECORD IS STANDARD
  105. DATA RECORD IS REGISTRO-TTOURS.
  106. 01 REGISTRO-TTOURS.
  107. 02 TTOURS-ID.
  108. 03 TTREGION PIC X(10).
  109. 03 TTF-SALIDA.
  110. 04 TTA-SALIDA PIC 9(4).
  111. 04 TTM-SALIDA PIC 9(2).
  112. 04 TTD-SALIDA PIC 9(2).
  113. 03 TTCED-PASPT PIC X(10).
  114. 02 ST-TTOURS-PART-1-RETIRADO-2 PIC 9(1).
  115.  
  116. WORKING-STORAGE SECTION.
  117.  
  118. 77 ESTUNDTRAN PIC X(2).
  119. 77 ESTTOURS PIC X(2).
  120. 77 ESTTORGN PIC X(2).
  121. 77 ESTTURISTAS PIC X(2).
  122. 77 ESTTURISTDTOURS PIC X(2).
  123.  
  124. 01 VARITRAB.
  125. 02 OPMENU PIC 99 VALUE 0.
  126. 02 SW-SALIDA PIC 9 VALUE 0.
  127. 02SW-EXISTE PIC 9 VALUE 0.
  128.  
  129. SCREEN SECTION.
  130. 01 MENUINICIO.
  131. 02 LINE 5 POSITION 5 VALUE " 01 REGISTRO DE UNIDADES".
  132. 02 LINE 6 POSITION 5 VALUE " 02 REGISTRO DE TOURS".
  133. 02 LINE 7 POSITION 5 VALUE " 03 REGISTRO DE TOURS ORGANIZADOS ".
  134. 02 LINE 8 POSITION 5 VALUE " 04 REGISTRO DE TURISTAS".
  135. 02 LINE 9 POSITION 5 VALUE " 05 REGISTRO DE TURISTAS DE UN TOURS".
  136. 02 LINE 10 POSITION 5 VALUE " 06 CONSULTA UNIDADES DE TRANSPORTE DISPONIBLES".
  137. 02 LINE 11 POSITION 5 VALUE " 07 CONSULTA TOURS PARA UNA FECHA DE SALIDA DADA".
  138. 02 LINE 12 POSITION 5 VALUE " 08 CONSULTA TURISTAS PARTICIPANTES EN UN TOURS DADO".
  139. 02 LINE 13 POSITION 5 VALUE " 09 CONSULTA TOURS EFECTUADOS EN UN MES".
  140. 02 LINE 20 POSITION 5 VALUE " SELECCIONE LA OPCIÓN DESEADA".
  141. 02 LINE 20 POSITION 34 PIC ZZ USING OPMENU.
  142.  
  143.  
  144. PROCEDURE DIVISION.
  145.  
  146. INICIO. INITIALIZE VARITRAB.
  147. VERIFICA-ARCHIVOS.
  148. OPEN INPUT UNIDAD-TRANSPORTE
  149. IF ESTUNDTRAN = "35"
  150. OPEN OUTPUT UNIDAD-TRANSPORTE.
  151. CLOSE UNIDAD-TRANSPORTE.
  152.  
  153. MENUPPAL1.
  154. MOVE 0 TO OPMENU.
  155.  
  156. MENUPPAL2.
  157. DISPLAY BORRAR-PAN.
  158. DISPLAY MENUINICIO.
  159. ACCEPT MENUINICIO.
  160. EVALUATE OPMENU
  161. WHEN 1 PERFORM REGIS-UND1 THRU
  162. F-REGIS-UND UNTIL
  163. SW-SALIDA = 2
  164. WHEN 99 GO TO FIN
  165. END-EVALUATE.
  166. GO TO MENUPPAL1.
  167. *REGISTRO DE UNIDADES DISPONIBLES
  168.  
  169. REGIS-UND1.
  170. INITIALIZE REGISTRO-UND-TRANSPORTE.
  171.  
  172. REGIS-UND2.
  173. MOVE 0 TO SW-SALIDA
  174. DISPLAY BORRAR-PAN.
  175. MOVE SPACES TO P-UND-TRANS.
  176. DISPLAY P-UND-TRANS.
  177. ACCEPT P-UND-TRANS.
  178. IF P-UND-TRANS = SPACES
  179. MOVE 2 TO SW-SALIDA
  180. GO TO F-REGIS-UND
  181. END-IF.
  182.  
  183. REGIS-UND3.
  184. OPEN INPUT UNIDAD-TRANSPORTE.
  185. READ UNIDAD-TRANSPORTE
  186. INVALID KEY
  187. MOVE 1 TO SW-EXISTE
  188. GO TO REGIS-UND4
  189. NOT INVALID KEY
  190. MOVE 2 TO SW-EXISTE
  191. DISPLAY P-UNDTRANS2.
  192.  
  193. REGIS-UND4.
  194. CLOSE UNIDAD-TRANSPORTE.
  195.  
  196. REGIS-UND5. ACCEPT P-UNDTRANS2.
  197. REGIS-UND6.
  198. OPEN I-O UNIDAD-TRANSPORTE
  199. EVALUATE SW-EXISTE
  200. WHEN 1
  201. MOVE "S" TO
  202. ST-UND-TRANS-DIS-S-NODIS-N
  203. WRITE REGISTRO-UND-TRANSPORTE
  204. INVALID KEY NEXT SENTENCE
  205. END-WRITE
  206.  
  207. WHEN 2
  208. REWRITE REGISTRO-UND-TRANSPORTE
  209. INVALID KEY NEXT SENTENCE
  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.
  220.  
  221. 01 BORRAR-PAN
  222. 02 LINE 1 POSITION 01 BLANK SCREEN.
  223. *PANTALLA DE UNIDADES DE TRANSPORTE DISPONIBLES.
  224. 01 P-UNDTRANS.
  225. 02 LINE 1 POSITION 01 VALUE "NUMERO DE PLACA ".
  226. 02 LINE 1 POSITION 17 PIC X(10) USING NO-PLACA-UND.
  227. 01 P-UNDTRANS2.
  228. 02 LINE 5 POSITION 1 VALUE "MARCA ".
  229. 02 LINE 5 POSITION 7 PIC X(20) USING MARCA.
  230. 02 LINE 6 POSITION 1 VALUE "NUM PUESTOS".
  231. 02 LINE 6 POSITION 12 PIC ZZ USING NOPUESTO.
  232. 02 LINE 7 POSITION 1 VALUE "NOMBRE".
  233. 02 LINE 7 POSITION 8 PIC X(30) USING NOMBREDUENO.
  234. 02 LINE 8 POSITION 1 VALUE "CEDULA".
  235. 02 LINE 8 POSITION 8 PIC X(10) USING CEDULADUENO.
  236. 02 LINE 9 POSITION 1 VALUE "DIRECCION".
  237. 02 LINE 9 POSITION 11 PIC X(30) USING DIRECCIONHAB.
  238. 02 LINE 10 POSITION 1 VALUE "TELEFONO".
  239. 02 LINE 10 POSITION 10 PIC X(10) USING TLFHABITACION.
  240. 02 LINE 11 POSITION 1 VALUE "CELULAR".
  241. 02 LINE 11 POSITION 9 PIC X(10) USING TLFCELULAR.
  242. 02 LINE 12 POSITION 1 VALUE "STATUS".
  243. 02 LINE 12 POSITION 8 PIC X(1) USING ST-UND-TRANS-DIS-S-NODIS-N.
  244.  
  245. *PANTALLA DE TOURS .
  246.  
  247. 01 P-TOURS.
  248. 02 LINE 1 POSITION 1 VALUE "INGRESE REGION".
  249. 02 LINE 5 POSITION 16 PIC X(10) USING REGION.
  250. 01 P-TOURS2.
  251. 02 LINE 5 POSITION 1 VALUE "INGRESE NUMERO DE DIAS".
  252. 02 LINE 5 POSITION 24 PIC ZZZ USING NUM-DIAS.
  253. 02 LINE 7 POSITION 1 VALUE "COSTO POR PERSONA".
  254. 02 LINE 7 POSITION 19 PIC Z,ZZZ,ZZZ.99 USING COSTOXPERSONA.
  255.  
  256. *PANTALLA DE TOURS ORGANIZADOS .
  257. 01 P-TORGN.
  258. 02 LINE 1 POSITION 1 VALUE "INGRESE REGION".
  259. 02 LINE 5 POSITION 16 PIC X(10) USING J-REGION.
  260. 01 P-TORGN2
  261. 02 LINE 5 POSITION 1 VALUE "INGRESE FECHA DE SALIDA".
  262. 02 LINE 5 POSITION 25 PIC ZZ USING D-SALIDA.
  263. 02 LINE 5 POSITION 27 VALUE "/".
  264. 02 LINE 5 POSITION 28 PIC ZZ USING M-SALIDA.
  265. 02 LINE 5 POSITION 30 VALUE "/".
  266. 02 LINE 5 POSITION 31 PIC Z(4) USING A-SALIDA.
  267. 01 P-TORGN3.
  268. 02 LINE 9 POSITION 1 VALUE "PLACA DE LA UNIDAD ASIGNADA".
  269. 02 LINE 9 POSITION 29 PIC X(10) USING PLACA-UND-ASIGND.
  270. 02 LINE 10 POSITION 1 VALUE "INGRESE NUMERO DE TURISTAS".
  271. 02 LINE 10 POSITION 28 PIC ZZ USING NUM-TURISTAS.
  272.  
  273. *PANTALLA DE TURISTAS .
  274. 01 P-TURISTAS.
  275. 02 LINE 1 POSITION 1 VALUE "INGRESE CEDULA O PASAPORTE".
  276. 02 LINE 1 POSITION 28 PIC X(10) USING CED-PASPT.
  277. 01 P-TURISTAS2.
  278. 02 LINE 5 POSITION 01 VALUE "NOMBRE".
  279. 02 LINE 5 POSITION 8 PIC X(20) USING NOMBRE.
  280. 02 LINE 6 POSITION 1 VALUE "APELLIDO".
  281. 02 LINE 6 POSITION 10 PIC X(10) USING APELLIDO.
  282. 02 LINE 7 POSITION 1 VALUE "DIRECCION".
  283. 02 LINE 7 POSITION 11 PIC X(30) USING DIRECCION.
  284. 02 LINE 8 POSITION 1 VALUE "TELEFONO HABITACION".
  285. 02 LINE 8 POSITION 21 PIC X(10) USING TLFHABITACION.
  286. 02 LINE 8 POSITION 1 VALUE "TELEFONO CELULAR".
  287. 02 LINE 8 POSITION 18 PIC X(10) USING TLFCELULAR.
  288.  
  289. *PANTALLA DE TURISTAS DE UN TOURS .
  290. 01 P-TTOURS.
  291. 02 LINE 1 POSITION 1 VALUE "INGRESE REGION".
  292. 02 LINE 1 POSITION 16 PIC X(10) USING TTREGION.
  293. 01 P-TTOURS2.
  294. 02 LINE 5 POSITION 1 VALUE "INGRESE FECHA DE SALIDA".
  295. 02 LINE 5 POSITION 25 PIC ZZ USING TTD-SALIDA.
  296. 02 LINE 5 POSITION 28 VALUE "/".
  297. 02 LINE 5 POSITION 29 PIC ZZ USING TTM-SALIDA.
  298. 02 LINE 5 POSITION 31 VALUE "/".
  299. 02 LINE 5 POSITION 32 PIC Z(4) USING TTA-SALIDA.
  300. 01 P-TTOURS3.
  301. 02 LINE 9 POSITION 1 VALUE "INGRESE CEDULA O PASAPORTE".
  302. 02 LINE 9 POSITION 28 PIC X(10) USING TTCED-PASPT.
  303. 01 P-TTOURS4.
  304. 02 LINE 13 POSITION 1 VALUE "INGRESE STATUS DISPONIBLE O NO DISPONIBLE".
  305. 02 LINE 13 POSITION 43 PIC 9(1) USING ST-TTOURS-PART-1-RETIRADO-2.
  306.  
  307. CONSULTAS.......
  308.  
  309. EVALUATE SW-EXISTE
  310. WHEN 1
  311. MOVE "S" TO
  312. ST-UND-TRANS-DIS-S-NODIS-N
  313. WRITE REGISTRO-UND-TRANSPORTE
  314. INVALID KEY NEXT SENTENCE
  315. END-WRITE
  316.  
  317. WHEN 2
  318.  
  319. REWRITE REGISTRO-UND-TRANSPORTE
  320. INVALID KEY NEXT SENTENCE
  321. END-REWRITE
  322. END-EVALUATE.
  323. CLOSE UNIDAD-TRANSPORTE.
  324. MOVE 0 TO SW-EXISTE.
  325. REGIS-UND7.
  326. GO TO REGIS-UND1.
  327. F-REGIS-UND.
  328.  
  329. FIN.
  330.  
  331. STOP RUN.
  332.  
  333. END PROGRAM. AGENCIA-DE-TOURS.

Comentario de Moderador

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
Código COBOL:
  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. AGENCIA-DE-TOURS.
  3. ENVIRONMENT DIVISION.
  4. INPUT-OUTPUT SECTION.
  5. FILE-CONTROL.
  6. SELECT UNIDAD-TRANSPORTE
  7. ASSIGN TO "TRANSPT.DAT"
  8. ORGANIZATION IS INDEXED
  9. ACCESS MODE IS DYNAMIC
  10. RECORD KEY IS UNIDADTRANSPT-ID
  11. FILE STATUS IS ESTUNDTRAN.
  12.  
  13.  
  14. SELECT DE TOURS
  15. SELECT TOURS
  16. ASSIGN TO "TOURS.DAT"
  17. ORGANIZATION IS INDEXED
  18. ACCESS MODE IS DYNAMIC
  19. RECORD KEY IS

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

vortal 29 de octubre de 2022 23:40

1 Archivos Adjunto(s)
@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

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

vortal 30 de octubre de 2022 01:12

1 Archivos Adjunto(s)
@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

1 Archivos Adjunto(s)
@JCantero me esta dando un poco de errores. a ti te funciono compilando?

vortal 30 de octubre de 2022 16:19

2 Archivos Adjunto(s)
@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

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:04.

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