29 lines
661 B
Plaintext
29 lines
661 B
Plaintext
decl string mode
|
|
while (not (or (= mode "encode") (= mode "decode")))
|
|
out "encode/decode: " console
|
|
set mode (lower (in string console))
|
|
end while
|
|
|
|
decl string message
|
|
out "message: " console
|
|
set message (upper (in string console))
|
|
|
|
decl int key
|
|
out "key: " console
|
|
set key (in int console)
|
|
if (or (> key 26) (< key 0))
|
|
out endl "invalid key" endl console
|
|
stop
|
|
end if
|
|
|
|
if (= mode "decode")
|
|
set key (int (- 26 key))
|
|
end if
|
|
|
|
for (decl int i) (< i (size message)) (inc i)
|
|
if (and (> (ord message<i>) 64) (< (ord message<i>) 91))
|
|
out (chr (int (+ (mod (int (+ (- (ord message<i>) 65) key)) 26) 65))) console
|
|
end if
|
|
end for
|
|
out endl console
|