2016-09-30 8 views
1

그래서 두 개의 숫자 합을 계산하는 화면 섹션을 사용하여 간단한 프로그램을 cobol로 만들려고합니다. 내가 사용하는 컴파일러는 OpenCobolIDE입니다. 문제는 WS-N1 변수가 숫자 값이 아니라는 오류가 발생한다는 것입니다.화면 부분을 사용하여 cobol에 숫자 값을 입력하는 방법

IDENTIFICATION DIVISION. 
PROGRAM-ID.PGM001. 

ENVIRONMENT DIVISION. 

DATA DIVISION. 

WORKING-STORAGE SECTION. 
01 WS-N1 PIC 9(04). 
01 WS-N2 PIC 9(04). 
01 WS-SUM PIC 9(04). 
01 WS-DUMMY PIC X(01). 
SCREEN SECTION. 
01 INPUT-SCREEN. 
    02 BLANK SCREEN. 
    02 LINE 1 COL 1 VALUE "--------------------------------". 
    02 LINE 2 COL 1 VALUE "-   INPUT    -". 
    02 LINE 3 COL 1 VALUE "--------------------------------". 
    02 LINE 4 COL 1 VALUE "-(1).NUMBER 1 :    -". 
    02 LINE 4 COL 18 PIC 9(10) TO WS-N1. 
    02 LINE 5 COL 1 VALUE "-(2).NUMBER 2 :    -". 
    02 LINE 5 COL 18 PIC 9(10) TO WS-N2. 
    02 LINE 6 COL 1 VALUE "--------------------------------". 
01 OUTPUT-SCREEN. 
    02 BLANK SCREEN. 
    02 LINE 1 COL 1 VALUE "--------------------------------". 
    02 LINE 2 COL 1 VALUE "-    SUM    -". 
    02 LINE 3 COL 1 VALUE "--------------------------------". 
    02 LINE 4 COL 1 VALUE "-(1).SUM  :    -". 
    02 LINE 4 COL 18 PIC 9(04) FROM WS-SUM. 
    02 LINE 5 COL 1 VALUE "--------------------------------". 
    02 LINE 6 COL 1 VALUE "EXIT ->       ". 
PROCEDURE DIVISION. 
A-100. 
    DISPLAY INPUT-SCREEN. 
    ACCEPT INPUT-SCREEN. 

    GO TO A-200. 
A-200. 
    ADD WS-N1 TO WS-N2 GIVING WS-SUM. 

    GO TO A-300. 
A-300. 
    DISPLAY OUTPUT-SCREEN. 
    ACCEPT WS-DUMMY AT LINE 7 COL 8. 
    STOP RUN. 

답변

2

난 당신이 (실제 메시지를 포함하도록 게시물을 수정하시기 바랍니다)에 ADD 문의 처리에서 런타임 오류 메시지가 추측 : 여기에 코드입니다.

모든 앞에 0이있는 var를 입력하지 않은 경우에만 발생합니다.

컴파일러를 사용하여이 문제를 해결하려면 ACCEPT INPUT-SCREEN 바로 뒤에 MOVE FUNCTION NUMVAL (WS-N1) to WS-N1을 추가해야합니다.

BTW : OCIDE의 표준 Windows 설치를 사용하는 경우 다음 컴파일러를 사용합니다. GnuCOBOL 1.1 (공식 Mingw 패키지)