Anonymous user
Caesar cipher: Difference between revisions
→{{header|COBOL}}: Syntax highlighting and slight optimization.
imported>Acediast (→{{header|COBOL}}: Syntax highlighting and slight optimization.) |
|||
Line 1,911:
</pre>
{{works with|
<syntaxhighlight lang="
IDENTIFICATION DIVISION.
PROGRAM-ID. caesar-cipher.
Line 1,919 ⟶ 1,920:
REPOSITORY.
FUNCTION encrypt
FUNCTION decrypt.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 plaintext PIC X(50).
01 offset
01 encrypted-str PIC X(50).
PROCEDURE DIVISION.
DISPLAY "Enter a message to encrypt: " WITH NO ADVANCING
ACCEPT plaintext
DISPLAY "Enter the amount to shift by: " WITH NO ADVANCING
ACCEPT offset
DISPLAY "Encrypted: " encrypted-str▼
▲ MOVE FUNCTION encrypt(offset, plaintext) TO encrypted-str
▲ DISPLAY "Encrypted: " encrypted-str
▲ DISPLAY "Decrypted: " FUNCTION decrypt(offset, encrypted-str)
END PROGRAM caesar-cipher.
IDENTIFICATION DIVISION.
FUNCTION-ID. encrypt.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
REPOSITORY.
FUNCTION ALL INTRINSIC.
DATA DIVISION.
LOCAL-STORAGE SECTION.
01 i
▲01 a PIC 9(3).
LINKAGE SECTION.
01 offset
01 str PIC X(50).
01 encrypted-str PIC X(50).
PROCEDURE DIVISION USING offset, str RETURNING encrypted-str.
PERFORM VARYING i FROM 1 BY 1 UNTIL i > LENGTH(str)
MOVE str TO encrypted-str▼
EXIT PERFORM CYCLE
END-IF
IF str(i:1) IS ALPHABETIC-UPPER
ELSE
MOVE
END-IF
END-PERFORM▼
EXIT FUNCTION.
▲ - a + offset, 26) + a)
▲ END-PERFORM
END FUNCTION encrypt.
IDENTIFICATION DIVISION.
FUNCTION-ID. decrypt.
Line 1,981 ⟶ 1,980:
CONFIGURATION SECTION.
REPOSITORY.
FUNCTION encrypt.
DATA DIVISION.
LOCAL-STORAGE SECTION.
01 decrypt-offset
LINKAGE SECTION.
01 offset
01 str PIC X(50).
01 decrypted-str PIC X(50).
PROCEDURE DIVISION USING offset, str RETURNING decrypted-str.
SUBTRACT
MOVE
EXIT FUNCTION.
END FUNCTION decrypt.</syntaxhighlight>
Line 2,006 ⟶ 2,004:
Decrypted: The quick brown fox jumps over the lazy dog.
</pre>
=={{header|CoffeeScript}}==
<syntaxhighlight lang="coffeescript">cipher = (msg, rot) ->
|