CHAR FUNC Shift(CHAR c BYTE code) CHAR base IF c>='a AND c<='z THEN base='a ELSEIF c>='A AND c<='Z THEN base='A ELSE RETURN (c) FI c==+code-base c==MOD 26 RETURN (c+base) PROC Encrypt(CHAR ARRAY in,out BYTE code) INT i out(0)=in(0) FOR i=1 TO in(0) DO out(i)=Shift(in(i),code) OD RETURN PROC Decrypt(CHAR ARRAY in,out BYTE code) Encrypt(in,out,26-code) RETURN PROC Test(CHAR ARRAY in BYTE code) CHAR ARRAY enc(256),dec(256) PrintE("Original:") PrintE(in) Encrypt(in,enc,code) PrintF("Encrypted code=%B:%E",code) PrintE(enc) Decrypt(enc,dec,code) PrintF("Decrypted code=%B:%E",code) PrintE(dec) PutE() RETURN PROC Main() Test("The quick brown fox jumps over the lazy dog.",23) Test("The quick brown fox jumps over the lazy dog.",5) RETURN