40 lines
768 B
Plaintext
40 lines
768 B
Plaintext
MODULE Rot13;
|
|
|
|
FROM STextIO IMPORT
|
|
ReadString, WriteString, WriteLn;
|
|
FROM Strings IMPORT
|
|
Length;
|
|
|
|
TYPE
|
|
MyString = ARRAY [0..80] OF CHAR;
|
|
|
|
VAR
|
|
S, T : MyString;
|
|
|
|
PROCEDURE Rot13(S : ARRAY OF CHAR; VAR T : ARRAY OF CHAR);
|
|
VAR
|
|
I, J : CARDINAL;
|
|
BEGIN
|
|
FOR I := 0 TO Length(S) - 1
|
|
DO
|
|
J := ORD(S[I]);
|
|
IF ((J >= 65) AND (J <= 90)) THEN
|
|
J := (J - 52) % 26 + 65;
|
|
IF ((J >= 97) AND (J <= 122)) THEN
|
|
J := (J - 84) % 26 + 97;
|
|
T[I] := CHR(J);
|
|
END;
|
|
END Rot13;
|
|
|
|
BEGIN
|
|
WHILE NOT Eof
|
|
DO
|
|
ReadString(S);
|
|
SkipLine;
|
|
WriteLn;
|
|
Rot13(S, T);
|
|
WriteString(T);
|
|
WriteLn;
|
|
END;
|
|
END Rot13.
|