如何使用屏幕部分接受cobol中的数值

时间:2016-09-30 18:25:11

标签: cobol gnucobol

所以我试图用cobol制作一个简单的程序,使用屏幕部分,它只计算2个数字的总和。我正在使用的编译器是OpenCobolIDE。问题是我收到的错误是说我的WS-N1变量不是数值。这是代码:

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.

1 个答案:

答案 0 :(得分:2)

我猜您在处理ADD语句时会收到运行时错误消息(请编辑您的帖子以包含实际消息)。

我想这只有在你没有输入带有所有前导零的变量时才会发生。

要使用编译器解决此问题,您必须在MOVE FUNCTION NUMVAL (WS-N1) to WS-N1之后直接添加ACCEPT INPUT-SCREEN

BTW:如果您使用OCIDE的标准Windows安装,请使用以下编译器:GnuCOBOL 1.1(官方Mingw包)