Created
November 15, 2012 19:24
-
-
Save peitor/4080627 to your computer and use it in GitHub Desktop.
Revisions
-
peitor revised this gist
Nov 15, 2012 . 1 changed file with 1 addition and 3 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -2,7 +2,6 @@ IDENTIFICATION DIVISION. PROGRAM-ID. CALC. *AUTHOR. R. HAENGGI. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. @@ -68,8 +67,7 @@ DEBUG * " WERT:" WERT UPON BILDSCHIRM ------------- Start of calctest.cob --------------------------- IDENTIFICATION DIVISION. PROGRAM-ID. CALCTEST. *AUTHOR. R. HAENGGI. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. -
peitor created this gist
Nov 15, 2012 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,176 @@ ------------- Start of calc.cob --------------------------- IDENTIFICATION DIVISION. PROGRAM-ID. CALC. *AUTHOR. R. HAENGGI. *FIRMA. BIT, BERN. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. TERMINAL IS BILDSCHIRM. DATA DIVISION. WORKING-STORAGE SECTION. 01 SEPERATOR PIC X(01) VALUE ",". 01 WERT PIC 9(04). 01 IND1 PIC 9(02) VALUE 0. 01 IND2 PIC 9(02) VALUE 0. 01 MAX-IND PIC 9(02) VALUE 80. 01 RTC PIC S9(10) SIGN IS LEADING SEPARATE. LINKAGE SECTION. 01 EINGABE. 05 ZEICHEN PIC X(01) OCCURS 80. 01 AUSGABE. 05 ZAHL PIC 9(4). PROCEDURE DIVISION USING EINGABE AUSGABE. BEGINN. PERFORM CALCULATE. ENDE. EXIT PROGRAM. CALCULATE SECTION. C1. MOVE 0 TO ZAHL MOVE 1 TO IND1 MOVE 0 TO IND2 IF EINGABE(1:2) = "//" AND EINGABE(4:2) = "\N" THEN MOVE EINGABE(3:1) TO SEPERATOR MOVE 6 TO IND1 END-IF PERFORM VARYING IND2 FROM IND1 BY 1 UNTIL IND2 >= MAX-IND IF ZEICHEN(IND2) = SEPERATOR OR ZEICHEN(IND2) = " " THEN COMPUTE WERT = FUNCTION NUMVAL(EINGABE(IND1:IND2 - IND1)) DEBUG * DISPLAY "IND1:" IND1 " IND2:" IND2 " EINGABE: EINGABE" DEBUG * " WERT:" WERT UPON BILDSCHIRM IF WERT < 1000 THEN COMPUTE ZAHL = ZAHL + WERT END-IF COMPUTE IND1 = IND2 + 1 END-IF IF ZEICHEN(IND2) = " " THEN MOVE 81 TO IND2 ELSE IF ZEICHEN(IND2) NUMERIC OR ZEICHEN(IND2) = SEPERATOR THEN CONTINUE ELSE MOVE 81 TO IND2 MOVE 4711 TO RETURN-CODE END-IF END-IF END-PERFORM CONTINUE. C99. EXIT. ------------- End ------------------------- ------------- Start of calctest.cob --------------------------- IDENTIFICATION DIVISION. PROGRAM-ID. CALCTEST. *AUTHOR. R. HAENGGI. *FIRMA. BIT, BERN. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. TERMINAL IS BILDSCHIRM. DATA DIVISION. WORKING-STORAGE SECTION. 01 EINGABE. 05 ZEICHEN PIC X(01) OCCURS 80. 01 AUSGABE. 05 ZAHL PIC 9(4). 01 ERWARTET PIC 9(4). 01 RTC-ERWARTET PIC 9(10). 01 RTC PIC S9(10) SIGN IS LEADING SEPARATE. PROCEDURE DIVISION. BEGINN. DISPLAY "TEST1" UPON BILDSCHIRM MOVE "1" TO EINGABE MOVE 1 TO ERWARTET MOVE 0 TO RTC-ERWARTET PERFORM DOTEST DISPLAY "TEST2" UPON BILDSCHIRM MOVE "1,2" TO EINGABE MOVE 3 TO ERWARTET MOVE 0 TO RTC-ERWARTET PERFORM DOTEST DISPLAY "TEST3" UPON BILDSCHIRM MOVE "-1" TO EINGABE MOVE 0 TO ERWARTET MOVE 4711 TO RTC-ERWARTET PERFORM DOTEST MOVE 0 TO RETURN-CODE DISPLAY "TEST4" UPON BILDSCHIRM MOVE "1000" TO EINGABE MOVE 0 TO ERWARTET MOVE 0 TO RTC-ERWARTET PERFORM DOTEST DISPLAY "TEST5" UPON BILDSCHIRM MOVE "//;\N1;2;3" TO EINGABE MOVE 6 TO ERWARTET MOVE 0 TO RTC-ERWARTET PERFORM DOTEST CONTINUE. ENDE. STOP RUN. DOTEST SECTION. T1. * AUSGABE DER EINGABE NUR 69 ZEICHEN DAMIT ES AUF 1 ZEILE PASST DISPLAY "EINGABE = " EINGABE(1:69) UPON BILDSCHIRM. CALL "CALC" USING BY REFERENCE EINGABE, AUSGABE. DISPLAY "AUSGABE = " AUSGABE UPON BILDSCHIRM. DISPLAY "ERWARTET = " ERWARTET UPON BILDSCHIRM. IF AUSGABE = ERWARTET THEN MOVE RETURN-CODE TO RTC DISPLAY "RETURN-CODE = " RTC UPON BILDSCHIRM IF RETURN-CODE = RTC-ERWARTET THEN DISPLAY "TEST GRUEN" UPON BILDSCHIRM ELSE DISPLAY "TEST ROT!!!!!!!!!!!!!!!!!!!" UPON BILDSCHIRM END-IF ELSE DISPLAY "TEST ROT!!!!!!!!!!!!!!!!!!!" UPON BILDSCHIRM END-IF. T99. EXIT. ------------- End ------------------------- ------------- Output ------------- % BLS0517 MODUL 'CALCTEST' GELADEN«············································ TEST1«·········································································· EINGABE = 1 AUSGABE = 0001«································································ ERWARTET = 0001«································································ RETURN-CODE = +0000000000«······················································ TEST GRUEN«····································································· TEST2«·········································································· EINGABE = 1,2 AUSGABE = 0003«································································ ERWARTET = 0003«································································ RETURN-CODE = +0000000000«······················································ TEST GRUEN«····································································· TEST3«·········································································· EINGABE = -1 AUSGABE = 0000«································································ ERWARTET = 0000«································································ RETURN-CODE = +0000004711«······················································ TEST GRUEN«····································································· TEST4«·········································································· EINGABE = 1000 AUSGABE = 0000«································································ ERWARTET = 0000«································································ RETURN-CODE = +0000000000«······················································ TEST GRUEN«····································································· TEST5«·········································································· EINGABE = //;\N1;2;3 AUSGABE = 0006«································································ ERWARTET = 0006«································································ RETURN-CODE = +0000000000«······················································ TEST GRUEN«·····································································