2010-12-08 18 views
0

Ich arbeite an meinem letzten Hausaufgabe für COBOL in diesem Semester und ich bin mit einem Syntaxfehler, der meinen Fortschritt ist kalt zu stoppen. Hier ist, was ich habe:Brauchen Sie Hilfe mit einem Syntaxfehler (COBOL)

ENVIRONMENT DIVISION. 
    INPUT-OUTPUT SECTION. 
    FILE-CONTROL. 

     SELECT USED-CAR-FILE-OUT 
      ASSIGN TO 'USED-CAR.RPT' 
      ORGANIZATION IS LINE SEQUENTIAL. 

    DATA DIVISION. 
    FILE SECTION. 

    FD USED-CAR-FILE-OUT. 
    01 USED-CAR-RECORD-OUT   PIC X(80). 

    WORKING-STORAGE SECTION. 
    01 ID-CODE      PIC X(3). 
    01 TOTAL-CASH-PAYMENT   PIC 9(5). 
    01 MONTHLY-PAYMENT    PIC 9(4). 
    01 NUMBER-OF-MONTHS   PIC 9(3). 

    01 BALANCE-TOTAL    PIC S9(6)V99 VALUE ZEROS. 

    01 INTEREST-EARNED    PIC S99V99 VALUE ZEROS. 

    01 COMPARE-MONTH    PIC 99  VALUE ZEROS. 

    01 YEAR-NUMBER     PIC 99  VALUE ZEROS. 

    01 MONTH-NUMBER    PIC 99  VALUE ZEROS. 

    01 DETAIL-LINE. 
     05 ID-CODE-DL    PIC X(3). 
     05       PIC X(3) VALUE SPACES. 
     05       PIC X(4) VALUE 'Yr='. 
     05 YEAR-NUMBER-DL   PIC Z9  VALUE ZEROS. 
     05       PIC X(4) VALUE SPACES. 
     05       PIC X(4) VALUE 'Mo='. 
     05 MONTH-NUMBER-DL   PIC Z9. 
     05       PIC X(4) VALUE SPACES. 
     05       PIC X(5) VALUE 'Pmt='. 
     05 PAYMENT-DL    PIC $$$,$$$. 
     05       PIC X(4) VALUE SPACES. 
     05       PIC X(5) VALUE 'Int='. 
     05 INTEREST-EARNED-DL  PIC $$$$.99. 
     05       PIC X(3) VALUE SPACES. 
     05       PIC X(5) VALUE 'Bal='. 
     05 BALANCE-DL    PIC $$$,$$$.99. 

    PROCEDURE DIVISION. 
    100-MAIN. 
     OPEN OUTPUT USED-CAR-FILE-OUT 

     PERFORM 200-INPUT THRU 299-EXIT 

     CLOSE USED-CAR-FILE-OUT 
     STOP RUN. 

    200-INPUT. 
     DISPLAY 'Used Car Sales Report' 
     DISPLAY 'Enter the ID Code (or END) - maximum three char.' 
     ACCEPT ID-CODE 
     IF ID-CODE = 'END' 
      GO TO 299-EXIT 
     END-IF 
     DISPLAY 'Enter the Total Cash Payment - maximum five digits' 
     ACCEPT TOTAL-CASH-PAYMENT 
     DISPLAY 'Enter the Monthly Payment - maximum four digits' 
     ACCEPT MONTHLY-PAYMENT 
     DISPLAY 'Enter the Number of Months - maximum three digits' 
     ACCEPT NUMBER-OF-MONTHS 
     PERFORM 300-PROCESS. 

    299-EXIT. 
     EXIT. 

    300-PROCESS. 
     IF TOTAL-CASH-PAYMENT > 0 
      MOVE TOTAL-CASH-PAYMENT TO PAYMENT-DL 
     END-IF 
     IF MONTHLY-PAYMENT > 0 
      MOVE MONTHLY-PAYMENT TO PAYMENT-DL 
     END-IF 
     ADD PAYMENT-DL TO BALANCE-TOTAL 
     COMPUTE INTEREST-EARNED ROUNDED = .0175/BALANCE-TOTAL 
     ADD INTEREST-EARNED TO BALANCE-TOTAL 
     MOVE BALANCE-TOTAL TO BALANCE-DL 
     ADD 1 TO COMPARE-MONTH 
     IF MONTH-NUMBER-DL > 13 
      ADD 1 TO MONTH-NUMBER 
      MOVE MONTH-NUMBER TO MONTH-NUMBER-DL 
     END-IF 
     IF MONTH-NUMBER-DL = 13 
      MOVE 1 TO MONTH-NUMBER 
      MOVE MONTH-NUMBER TO MONTH-NUMBER-DL 
     END-IF 
     IF MONTH-NUMBER = 1 
      ADD 1 TO YEAR-NUMBER 
      MOVE YEAR-NUMBER TO YEAR-NUMBER-DL 
     END-IF 
     MOVE DETAIL-LINE TO USED-CAR-RECORD-OUT 
     WRITE USED-CAR-RECORD-OUT 
      AFTER ADVANCING 1 LINE 
     IF TOTAL-CASH-PAYMENT > 0 
      MOVE 0 TO TOTAL-CASH-PAYMENT 
      MOVE 0 TO PAYMENT-DL 
     END-IF 
     IF COMPARE-MONTH > NUMBER-OF-MONTHS 
      PERFORM 300-PROCESS 
     END-IF 

Das Problem ist mit PAYMENT-DL, INTEREST VERDIENTEN-DL und BALANCE-DL. Es sagt, dass ein illegaler Charakter, aber ich weiß, dass es funktionieren sollte, da es diese Bildsätze in meinem Buch zeigt und der Lehrer eine unvollständige Version des Programms aushändigte, das ich schreiben muss. Was muss ich tun, um diese Fehler loszuwerden?

+0

Niemand hat die geringste Ahnung, was dieses Problem? – Kimmy1235

Antwort

2

Das ungültige Zeichen ist das Zeichen "$".

Dies sollte in Ordnung sein, aber Ihr Compiler wurde möglicherweise so angepasst, dass ein lokales Währungssymbol als Standard verwendet wird.

Sie könnten zu Ihrem lokalen Währungssymbol wechseln (wenn Sie es wissen!) Oder ändern Sie es zurück zu "$". Die Änderung in "$" hängt davon ab, welchen Compiler Sie verwenden und wie die Standardwerte eingestellt sind - Sie müssen wirklich das Handbuch für Ihren speziellen Compiler lesen, um herauszufinden, wie dies geschieht.

+0

Das war es! Ich spiele viele japanische Spiele und ich muss meinen Unicode auf Japanisch einstellen, um sie zu spielen. Als ich es dann wieder eingestellt habe, funktionierte es. Vielen Dank! – Kimmy1235