Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- >>SOURCE FORMAT IS FREE
- IDENTIFICATION DIVISION.
- PROGRAM-ID. UPC-CHECK.
- ENVIRONMENT DIVISION.
- CONFIGURATION SECTION.
- REPOSITORY.
- FUNCTION ALL INTRINSIC.
- DATA DIVISION.
- WORKING-STORAGE SECTION.
- 01 INPUT-STRING PICTURE 9(11).
- 01 UPC-DIGITS.
- 02 UPC-DIGIT PICTURE 9 OCCURS 11 TIMES.
- 01 ITERATOR PICTURE 9(2).
- 01 CHECKSUM PICTURE 9(3).
- PROCEDURE DIVISION.
- MAIN-PROCEDURE.
- DISPLAY 1 UPON ARGUMENT-NUMBER.
- ACCEPT INPUT-STRING FROM ARGUMENT-VALUE.
- MOVE INPUT-STRING TO UPC-DIGITS.
- PERFORM VARYING ITERATOR FROM 1 BY 2 UNTIL ITERATOR IS GREATER THAN 11
- ADD UPC-DIGIT(ITERATOR) TO CHECKSUM GIVING CHECKSUM
- END-PERFORM.
- MULTIPLY CHECKSUM BY 3 GIVING CHECKSUM.
- PERFORM VARYING ITERATOR FROM 2 BY 2 UNTIL ITERATOR IS GREATER THAN 10
- ADD UPC-DIGIT(ITERATOR) TO CHECKSUM GIVING CHECKSUM
- END-PERFORM.
- MOVE MOD(CHECKSUM,10) TO CHECKSUM.
- IF CHECKSUM IS EQUAL TO 0 THEN
- DISPLAY CHECKSUM
- ELSE
- SUBTRACT CHECKSUM FROM 10 GIVING CHECKSUM
- DISPLAY CHECKSUM
- END-IF.
- STOP RUN.
- END PROGRAM UPC-CHECK.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement