RosettaCodeData/Task/Rot-13/Simula/rot-13.simula

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;