Caesar cipher: Difference between revisions

→‎{{header|COBOL}}: added working-storage + conventional case
imported>Acediast
(→‎{{header|COBOL}}: Syntax highlighting and slight optimization.)
imported>Acediast
(→‎{{header|COBOL}}: added working-storage + conventional case)
Line 1,864:
</pre>
=={{header|COBOL}}==
[[COBOL-85]] ASCII or EBCIDIC
<syntaxhighlight lang="cobol"> IDENTIFICATION DIVISION.
identificationPROGRAM-ID. divisionCAESAR.
program-id. caesar.
data division.
1 msg pic x(50)
value "The quick brown fox jumped over the lazy dog.".
1 offset binary pic 9(4) value 7.
1 from-chars pic x(52).
1 to-chars pic x(52).
1 tabl.
2 pic x(26) value "abcdefghijklmnopqrstuvwxyz".
2 pic x(26) value "ABCDEFGHIJKLMNOPQRSTUVWXYZ".
2 pic x(26) value "abcdefghijklmnopqrstuvwxyz".
2 pic x(26) value "ABCDEFGHIJKLMNOPQRSTUVWXYZ".
procedure division.
begin.
display msg
perform encrypt
display msg
perform decrypt
display msg
stop run
.
 
encryptDATA DIVISION.
WORKING-STORAGE SECTION.
move tabl (1:52) to from-chars
01 MSG move tabl (1 + offset:52) to to-charsPIC X(50)
valueVALUE "The quick brown fox jumped over the lazy dog.".
inspect msg converting from-chars
01 OFFSET PIC to9(4) to-charsVALUE 7 USAGE BINARY.
01 FROM-CHARS PIC X(52).
101 from TO-charsCHARS picPIC xX(52).
data01 division TABL.
2 pic x 02 PIC X(26) valueVALUE "abcdefghijklmnopqrstuvwxyz".
2 pic x 02 PIC X(26) valueVALUE "ABCDEFGHIJKLMNOPQRSTUVWXYZ".
2 pic x 02 PIC X(26) valueVALUE "abcdefghijklmnopqrstuvwxyz".
2 pic x 02 PIC X(26) valueVALUE "ABCDEFGHIJKLMNOPQRSTUVWXYZ".
 
decryptPROCEDURE DIVISION.
1 tablBEGIN.
move tabl (1 + offset:52) to from-chars
moveDISPLAY tabl (1:52) to to-charsMSG
inspectPERFORM msg converting from-charsENCRYPT
DISPLAY to to-charsMSG
.PERFORM DECRYPT
end program caesar. DISPLAY MSG
displaySTOP msgRUN.
</syntaxhighlight>
 
beginENCRYPT.
moveMOVE tablTABL (1:52) toTO fromFROM-charsCHARS
moveMOVE tablTABL (1 + offsetOFFSET:52) toTO fromTO-charsCHARS
INSPECT MSG CONVERTING FROM-CHARS TO TO-CHARS.
 
DECRYPT.
MOVE TABL (1 + OFFSET:52) TO FROM-CHARS
MOVE TABL (1:52) TO TO-CHARS
INSPECT MSG CONVERTING FROM-CHARS TO TO-CHARS.
 
END PROGRAM CAESAR.</syntaxhighlight>
{{out}}
<pre>
Anonymous user