Cobol - ayuda

 
Vista:

ayuda

Publicado por dulce (1 intervención) el 18/05/2008 18:41:52
me podrias ayudar, en la escuela me pidieron hacer un programa de menu de opciones en donde cada opcion llame a un programa.

podrias ayudarme porfa.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda

Publicado por oscar (37 intervenciones) el 19/05/2008 18:08:54
aquí tienes un programa de menu.
IDENTIFICATION DIVISION.
PROGRAM-ID. MENU.

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 OP PIC 99 VALUE 1.
77 ULT-PGM PIC 99 VALUE 9.
77 XL PIC 99.

01 LOS-PROGRAMAS.
02 PIC X(50) VALUE " 1 - Tarea 1".
02 PIC X(20) VALUE "PRGRM-01".
02 PIC X(50) VALUE " 2 - Tarea 2".
02 PIC X(20) VALUE "PRGRM-02".
02 PIC X(50) VALUE " 3 - Tarea 3".
02 PIC X(20) VALUE "PRGRM-03".
02 PIC X(50) VALUE " 4 - Tarea 4".
02 PIC X(20) VALUE "PRGRM-04".
02 PIC X(50) VALUE " 5 - Tarea 5".
02 PIC X(20) VALUE "PRGRM-05".
02 PIC X(50) VALUE " 6 - Tarea 6".
02 PIC X(20) VALUE "PRGRM-06".
02 PIC X(50) VALUE " 7 - Tarea 7".
02 PIC X(20) VALUE "PRGRM-07".
02 PIC X(50) VALUE " 8 - Tarea 8".
02 PIC X(20) VALUE "PRGRM-08".
02 PIC X(50) VALUE " 9 - SALIR ".
02 PIC X(20) VALUE "PRGRM-09".

01 LOS-PGRM REDEFINES LOS-PROGRAMAS.
02 TAREAS OCCURS 9 TIMES.
03 DESCRI PIC X(50).
03 PROGRAMA PIC X(20).

PROCEDURE DIVISION.
INICIO.
DISPLAY " " LINE 01 ERASE EOS.
DISPLAY " TITULO QUE DESEAS PARA EL MENU " LINE 04.
MOVE 6 TO XL
PERFORM ULT-PGM TIMES
DISPLAY DESCRI(OP) LINE XL POSITION 20
ADD 1 TO XL
ADD 1 TO OP
END-PERFORM
ADD 1 TO XL
PERFORM UNTIL OP = ULT-PGM
DISPLAY "Ejecutar: " LINE XL POSITION 40
ACCEPT OP LINE XL POSITION 50
IF OP > 0 AND < ULT-PGM
CALL PROGRAMA(OP)
END-IF
END-PERFORM.
STOP RUN.

Por cualquier duda puedes escribirme al correo
[email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda Aqui tienes Uno

Publicado por SuperIndio (161 intervenciones) el 19/05/2008 20:47:37
[*]-----------------------------------------------------------[*]
[*]-----------------------------------------------------------[*]
IDENTIFICATION DIVISION.
PROGRAM-ID. SanMenu.
AUTHOR. [email protected].
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
DATA DIVISION.
WORKING-STORAGE SECTION.
[*]-----------------------------------------------------------[*]
[*]-----------------------------------------------------------[*]
01 CONSTANTES.
03 LINEA-DOBLE PIC X(80) VALUE ALL "-".
[*]-----------------------------------------------------------[*]
[*]-----------------------------------------------------------[*]

77 TEC-FUNCION PIC 99.
88 TECLA-ESC VALUE 27 01.
88 TECLA-ENTER VALUE 13.

01 SWT-MENU PIC 9(01) VALUE 0.
88 IS-MENU-PGMS VALUE 1 2 3 4 5.
88 IS-MENU-SALIR VALUE 6.
88 IS-MENU-VALIDO VALUE 1 2 3 4 5 6.

01 ID-WORKS.
03 PAUSA PIC X(01) VALUE " ".
03 WS-MSGERROR PIC X(76) VALUE ALL " ".
03 LINEA-BLANCA PIC X(81) VALUE ALL " ".
03 IX PIC 9(02) VALUE 0.
03 IK PIC 9(02) VALUE 0.
03 PGM002 PIC X(10) VALUE SPACES.
[*]-----------------------------------------------------------[*]
[*]-----------------------------------------------------------[*]
PROCEDURE DIVISION.
MAIN-COBOL.

PERFORM MUESTRA-MENU.
PERFORM ACCEPTA-MENU UNTIL IS-MENU-SALIR.
PERFORM FINALIZACION.

[*]-----------------------------------------------------------[*]
ACCEPTA-MENU.
[*]-----------------------------------------------------------[*]
DISPLAY "Opci¾n:[ ]"
LINE 16 COLUMN 20
WITH FOREGROUND-COLOR 15.
INITIALIZE SWT-MENU
PERFORM UNTIL IS-MENU-SALIR

ACCEPT SWT-MENU LINE 16 COLUMN 28
WITH FOREGROUND-COLOR 15 UPDATE AUTO
END-ACCEPT

IF NOT IS-MENU-VALIDO THEN
PERFORM OPCION-INCORRECTA
INITIALIZE SWT-MENU
ELSE
PERFORM ELIGE-PROGMA
END-IF
PERFORM MUESTRA-MENU

END-PERFORM.
[*]-----------------------------------------------------------[*]
MUESTRA-MENU.
[*]-----------------------------------------------------------[*]
PERFORM VARYING IX FROM 01 BY 1 UNTIL IX > 24
*]-
PERFORM VARYING IK FROM 01 BY 1 UNTIL IK > 80
DISPLAY " " LINE IX COLUMN IK
END-PERFORM
*]-
END-PERFORM.
*]-
DISPLAY "1" LINE 9 COLUMN 28 WITH FOREGROUND-COLOR 10.
DISPLAY "2" LINE 10 COLUMN 28 WITH FOREGROUND-COLOR 10.
DISPLAY "3" LINE 11 COLUMN 28 WITH FOREGROUND-COLOR 10.
DISPLAY "4" LINE 12 COLUMN 28 WITH FOREGROUND-COLOR 10.
DISPLAY "5" LINE 13 COLUMN 28 WITH FOREGROUND-COLOR 10.
DISPLAY "6" LINE 14 COLUMN 28 WITH FOREGROUND-COLOR 10.
*]-
DISPLAY "- Altas"
LINE 9 COLUMN 29
WITH FOREGROUND-COLOR 15.
DISPLAY "- Bajas"
LINE 10 COLUMN 29
WITH FOREGROUND-COLOR 15.
DISPLAY "- Modificaciones"
LINE 11 COLUMN 29
WITH FOREGROUND-COLOR 15.
DISPLAY "- Consultas"
LINE 12 COLUMN 29
WITH FOREGROUND-COLOR 15.
DISPLAY "- Listados"
LINE 13 COLUMN 29
WITH FOREGROUND-COLOR 15.
DISPLAY "- Salir"
LINE 14 COLUMN 29
WITH FOREGROUND-COLOR 15.
[*]-----------------------------------------------------------[*]
ELIGE-PROGMA.
[*]-----------------------------------------------------------[*]
*]--
EVALUATE SWT-MENU
WHEN 01 MOVE "AL001.exe" TO PGM002
WHEN 02 MOVE "DL001.exe" TO PGM002
WHEN 03 MOVE "MD001.exe" TO PGM002
WHEN 04 MOVE "CN001.exe" TO PGM002
WHEN 05 MOVE "LS001.exe" TO PGM002
WHEN 06 CONTINUE
END-EVALUATE.
IF IS-MENU-PGMS THEN

CALL PGM002
ON EXCEPTION
DISPLAY "No se encuentra el Programa " PGM002
LINE 23 COLUMN 01
WITH FOREGROUND-COLOR 10
NOT ON EXCEPTION
CANCEL PGM002
END-CALL
ELSE
IF IS-MENU-SALIR THEN
CONTINUE
END-IF
END-IF.
[*]-----------------------------------------------------------[*]
OPCION-INCORRECTA.
[*]-----------------------------------------------------------[*]
MOVE "OPCION INCORRECTA" TO WS-MSGERROR
DISPLAY WS-MSGERROR
LINE 23 COLUMN 01
WITH FOREGROUND-COLOR 14.
ACCEPT PAUSA.
MOVE SPACES TO WS-MSGERROR.
DISPLAY WS-MSGERROR " " LINE 23 COLUMN 01.
[*]-----------------------------------------------------------[*]
FINALIZACION.
[*]-----------------------------------------------------------[*]
GOBACK.
[*]-----------------------------------------------------------[*]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda Aqui tienes Uno

Publicado por oscar (37 intervenciones) el 21/05/2008 22:51:25
He bajado el programa y utilizando RM COBOL v 6.40 lo compilé y me arroja numerosos errores de compilación.
¿Podrías decirme que compilador utilizas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda Aqui tienes Uno

Publicado por SuperIndio (161 intervenciones) el 22/05/2008 15:57:06
Lo compile en Ms-Cobol en TinyCobol y Realia Cobol y funciona perfectamente
no uso Rm porque justamente en mi opinion es mas limitado a la hora de dar libertad al codigo, si queres te envio el ejecutable y todo

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda Aqui tienes Uno

Publicado por oscar (37 intervenciones) el 22/05/2008 17:31:03
Eres alguien a quien respeto mucho por tus intervenciones en el foro, y por eso me extrañaron los errores de compilación con RM. Ya aclaraste mis dudas e investigaré un poco sobre los compiladores que tú utilizas.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda Aqui tienes Uno

Publicado por superindio (161 intervenciones) el 22/05/2008 18:27:56
Ok, las veces que compile con RM tengo que fijarme bien porque algunas cositas no las acepta por ejemplo la palabra revervada COLUMN cambia por POSITION y par de cosas mas. El realia es muy interesante pero es comercial. Open cobol tambien es bueno pero
tenes que usar todas la libreria que necesita. y el problema que en el instalador no vienen, hay que bajarlas. Yo uso en casa TINYCOBOL y en el trabajo MF-cobol bajo unix
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar