Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,124 +0,0 @@
|
|||
>>SOURCE FREE
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. run-length-encoding.
|
||||
|
||||
ENVIRONMENT DIVISION.
|
||||
CONFIGURATION SECTION.
|
||||
REPOSITORY.
|
||||
FUNCTION encode
|
||||
FUNCTION decode
|
||||
.
|
||||
DATA DIVISION.
|
||||
WORKING-STORAGE SECTION.
|
||||
01 input-str PIC A(100).
|
||||
01 encoded PIC X(200).
|
||||
01 decoded PIC X(200).
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
ACCEPT input-str
|
||||
MOVE encode(FUNCTION TRIM(input-str)) TO encoded
|
||||
DISPLAY "Encoded: " FUNCTION TRIM(encoded)
|
||||
DISPLAY "Decoded: " FUNCTION TRIM(decode(encoded))
|
||||
.
|
||||
END PROGRAM run-length-encoding.
|
||||
|
||||
|
||||
IDENTIFICATION DIVISION.
|
||||
FUNCTION-ID. encode.
|
||||
|
||||
DATA DIVISION.
|
||||
LOCAL-STORAGE SECTION.
|
||||
01 str-len PIC 9(3) COMP.
|
||||
|
||||
01 i PIC 9(3) COMP.
|
||||
|
||||
01 current-char PIC A.
|
||||
|
||||
01 num-chars PIC 9(3) COMP.
|
||||
01 num-chars-disp PIC Z(3).
|
||||
|
||||
01 encoded-pos PIC 9(3) COMP VALUE 1.
|
||||
|
||||
LINKAGE SECTION.
|
||||
01 str PIC X ANY LENGTH.
|
||||
|
||||
01 encoded PIC X(200).
|
||||
|
||||
PROCEDURE DIVISION USING str RETURNING encoded.
|
||||
MOVE FUNCTION LENGTH(str) TO str-len
|
||||
MOVE str (1:1) TO current-char
|
||||
MOVE 1 TO num-chars
|
||||
PERFORM VARYING i FROM 2 BY 1 UNTIL i > str-len
|
||||
IF str (i:1) <> current-char
|
||||
CALL "add-num-chars" USING encoded, encoded-pos,
|
||||
CONTENT current-char, num-chars
|
||||
|
||||
MOVE str (i:1) TO current-char
|
||||
MOVE 1 TO num-chars
|
||||
ELSE
|
||||
ADD 1 TO num-chars
|
||||
END-IF
|
||||
END-PERFORM
|
||||
|
||||
CALL "add-num-chars" USING encoded, encoded-pos, CONTENT current-char,
|
||||
num-chars
|
||||
.
|
||||
END FUNCTION encode.
|
||||
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. add-num-chars.
|
||||
|
||||
DATA DIVISION.
|
||||
WORKING-STORAGE SECTION.
|
||||
01 num-chars-disp PIC Z(3).
|
||||
|
||||
LINKAGE SECTION.
|
||||
01 str PIC X(200).
|
||||
|
||||
01 current-pos PIC 9(3) COMP.
|
||||
|
||||
01 char-to-encode PIC X.
|
||||
|
||||
01 num-chars PIC 9(3) COMP.
|
||||
|
||||
PROCEDURE DIVISION USING str, current-pos, char-to-encode, num-chars.
|
||||
MOVE num-chars TO num-chars-disp
|
||||
MOVE FUNCTION TRIM(num-chars-disp) TO str (current-pos:3)
|
||||
ADD FUNCTION LENGTH(FUNCTION TRIM(num-chars-disp)) TO current-pos
|
||||
MOVE char-to-encode TO str (current-pos:1)
|
||||
ADD 1 TO current-pos
|
||||
.
|
||||
END PROGRAM add-num-chars.
|
||||
|
||||
|
||||
IDENTIFICATION DIVISION.
|
||||
FUNCTION-ID. decode.
|
||||
|
||||
DATA DIVISION.
|
||||
LOCAL-STORAGE SECTION.
|
||||
01 encoded-pos PIC 9(3) COMP VALUE 1.
|
||||
01 decoded-pos PIC 9(3) COMP VALUE 1.
|
||||
|
||||
01 num-of-char PIC 9(3) COMP VALUE 0.
|
||||
|
||||
LINKAGE SECTION.
|
||||
01 encoded PIC X(200).
|
||||
|
||||
01 decoded PIC X(100).
|
||||
|
||||
PROCEDURE DIVISION USING encoded RETURNING decoded.
|
||||
PERFORM VARYING encoded-pos FROM 1 BY 1
|
||||
UNTIL encoded (encoded-pos:2) = SPACES OR encoded-pos > 200
|
||||
IF encoded (encoded-pos:1) IS NUMERIC
|
||||
COMPUTE num-of-char = num-of-char * 10
|
||||
+ FUNCTION NUMVAL(encoded (encoded-pos:1))
|
||||
ELSE
|
||||
PERFORM UNTIL num-of-char = 0
|
||||
MOVE encoded (encoded-pos:1) TO decoded (decoded-pos:1)
|
||||
ADD 1 TO decoded-pos
|
||||
SUBTRACT 1 FROM num-of-char
|
||||
END-PERFORM
|
||||
END-IF
|
||||
END-PERFORM
|
||||
.
|
||||
END FUNCTION decode.
|
||||
Loading…
Add table
Add a link
Reference in a new issue