![]() |
No se muestra lo que pone el código.
Hola gente,
Tengo el siguiente código con el que uno se da cuenta que si el usuario introduce por consola "S" o "s" el programa debe devolver una frase por consola. Sin embargo, a mí siempre me termina el programa, meta lo que meta (S, n, números, etc). ¿Qué es lo que está fallando? Código COBOL:
He intentado poner todo en mayúsculas, por tonterías que uno prueba vaya, y ni aún así. Igualmente, cambié el perform de PROGRAMA dentro de las cláusulas if-else por un go to pero nada de nada. |
@DestinedBroken, tienes que usar los END-IF etc. (terminadores explícitos) y NO USAR los puntos.
Es la "enfermedad" de Cobol que se solucionó en el año 74. A ti lo que te pasa es que el segundo IF está dentro del primero. Así que si le dices "N" se va al FINALIZA-PROGRAMA, y si le das a cualquier otra cosa, simplemente no entra en inguno de los IF y pasa al FINALIZA-PROGRAMA. ---------- Post añadido el 3 de noviembre de 2021 a las 14:09 ---------- Usa Ctrl+SPACE de Eclipse para autocompletado de código, te pondrá los terminadores automáticamente. ;) ---------- Post añadido el 3 de noviembre de 2021 a las 14:10 ---------- Y no uses los GO TO. Solo usa PERFORM. |
Cita:
Cita:
Esto es algo que no termino nunca de entender del todo. Los puntos hay que colocarnos al final de una línea de código, pero cuando llega la hora de hacer unos if-else como los ponga empiezan a salirme fallos. Solamente tras la última instrucción no me sale error (en el código de arriba, sería tras la sentencia final dentro del ELSE). Cita:
Cita:
|
No te preocupes, yo, cuando pasé del COBOL-74 al COBOL-85, todo eran errores.
Los puntos, y eso no ha cambiado, son obligatorios, en COBOL-74, para terminar sentencias condicionales (IF), sentencias de flujo (PERFOR, GO TO ...), sentencias imperativas, (AT END, INVALID KEY ...), en el COBOL-85, con la introducción de las sentencias END-xxxxx, la obligatoriedad del punto, (.), decayó bastante, aunque si se usan, ofrecen una comprensión más clara del código un salu2.- |
Cita:
Cita:
---------- Post añadido el 3 de noviembre de 2021 a las 19:55 ---------- Cita:
|
Cita:
https://i.ibb.co/t8GGSJC/procedure-error.jpg Cita:
|
@DestinedBroken, lo primero es mejor que no pegues imágenes, sino código (texto) envuelto en el bloque de resalto de sintaxis (los botoncitos con nombres de lenguajes) así te podemos copiarlo y corregirlo.
Se necesita un punto despues de PROCEDURE DIVISION. Y luego al final de cada párrafo. O sea dentro de un párrafo un solo punto al final del mismo ;) |
Perdona @Kuk, no pensé en poner el código.
Cuando dices párrafos, ¿estamos hablando de las rutinas? Si es así debería funcionarme como te pongo a continuación (pero sigue dando errores). Sé que esto es sintaxis básicas, pero vengo de que me den caña poniendo puntos detrás de cada línea :( Mira, el código es el del otro hilo, básicamente lo he cogido para esto de los puntos (por si te suena): Código COBOL:
|
@DestinedBroken, ya no hay errores. Fíjate en los puntos:
Código COBOL:
|
| La franja horaria es GMT +2. Ahora son las 02:56. |
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.