Ver Mensaje Individual
  #1
Antiguo 3 de agosto de 2022, 20:02
Paco_Diaz
Forero
Última Actividad 09.11.2024 09:15
Posts Posts: 56
Likes enviados Enviados: 11
Likes recibidos Recibidos: 14
Predeterminado OpenCobolIde Error alucinante
0 Inactivo Inactivo

Hola.

Estoy haciendo como repaso un programin que deberia funcionar a la primera por su simpleza, pero estoy atascado en un error al que le he dado unas pocas de vueltas y aun no he podido solucionar.

El programa detecta si un numero de 3 cifras nada mas, es capicua. Lo mas facil que se me ha ocurrido es comprobar si el primer digito es un 0, y si lo es, se termina, si no es 0, comparo el primero con el tercero, si son iguales, visualiza que si, y si no, visualiza que no. Como podeis ver, una chorrada.

El codigo es este:
Código COBOL:
  1.        IDENTIFICATION DIVISION.
  2.  
  3.        PROGRAM-ID. capicua.
  4.  
  5.        ENVIRONMENT DIVISION.
  6.  
  7.        CONFIGURATION SECTION.
  8.  
  9.        INPUT-OUTPUT SECTION.
  10.  
  11.        DATA DIVISION.
  12.  
  13.        FILE SECTION.
  14.  
  15.        WORKING-STORAGE SECTION.
  16.        77  sw PICTURE 9 VALUE 0.
  17.        01  capicua.
  18.            03 primero PICTURE 9 VALUE 0.  
  19.            03 segundo PICTURE 9 VALUE 0.
  20.            03 tercero PICTURE 9 VALUE 0.
  21.        01  numero.
  22.            03 digito1 PICTURE 9 VALUE 0.
  23.            03 digito2 PICTURE 9 VALUE 0.
  24.            03 digito3 PICTURE 9 VALUE 0.
  25.  
  26.        PROCEDURE DIVISION.
  27.  
  28.        MAIN-PROCEDURE.
  29.             DISPLAY "Introduzca un numero de 3 cifras: "
  30.             ACCEPT primero
  31.             ACCEPT segundo
  32.             ACCEPT tercero
  33.  
  34.             MOVE capicua TO numero
  35.             MOVE primero to digito1
  36.             MOVE segundo to digito2
  37.             MOVE tercero to digito3
  38.  
  39.             IF digito1 EQUAL 0
  40.                 sw = 1
  41.                 IF sw = 1
  42.                     DISPLAY "El numero no tiene 3 cifras"
  43.                 ELSE
  44.                     IF digito1 NOT EQUAL digito3
  45.                         DISPLAY "NO es un numero capicua"
  46.                     ELSE
  47.                         DISPLAY "SI es un numero capicua"
  48.             .
  49.             STOP RUN.
  50.  
  51.        END PROGRAM capicua.

La variable numero, la he creado por si no podia hacer un IF directamente sobre la variable del ACCEPT.

El error lo da en la linea: "IF digito1 EQUAL 0", como "Invalid expression", o sea, increible. Tambien lo he puesto con "=", y tampoco.

A ver si alguien puede echarme una mano.

Muchas gracias. Un saludo.

Última edición por Josber fecha: 3 de agosto de 2022 a las 21:40.
Paco_Diaz is offline   Responder Con Cita