22 lines
636 B
Plaintext
22 lines
636 B
Plaintext
TEXT PROCEDURE ROT13(INP); TEXT INP;
|
|
BEGIN
|
|
|
|
CHARACTER PROCEDURE ROT13CHAR(C); CHARACTER C;
|
|
ROT13CHAR :=
|
|
CHAR(
|
|
RANK(C) +
|
|
(IF C >= 'A' AND C <= 'M' THEN 13 ELSE
|
|
IF C >= 'a' AND C <= 'm' THEN 13 ELSE
|
|
IF C >= 'N' AND C <= 'Z' THEN -13 ELSE
|
|
IF C >= 'n' AND C <= 'z' THEN -13 ELSE 0));
|
|
|
|
TEXT OUTP;
|
|
OUTP :- BLANKS(INP.LENGTH);
|
|
|
|
INP.SETPOS(1);
|
|
WHILE INP.MORE DO
|
|
OUTP.PUTCHAR(ROT13CHAR(INP.GETCHAR));
|
|
|
|
ROT13 :- OUTP;
|
|
END ROT13;
|