Computer Science Canada

I Need to Write a Program that Can Encrypt a Message Using the Enigma Word Method

Author:  1ahmadale [ Wed Nov 13, 2019 10:27 am ]
Post subject:  I Need to Write a Program that Can Encrypt a Message Using the Enigma Word Method

/*
Here is the information I have:

Enigma Word Method Uses a word for the shift Each letter of the word is used to shift the letters in the sentence
(a=1, b=2,… z=26) When the end of the word is reached, start back at the beginning

*/

* Here is my program so far. What should I fix it make it work?:


put ""

put " Input a sentence: " ..
var sentence : string
get sentence : *

put ""
put " The sentence is: ", sentence

var shift : int % the number of positions to shift
var encryptedletter : string % the encrypted letter
var encryptednumber : int % the encrypted letter stored as an integer

put ""

put " Enter the encrypt key (a single word): " ..
var key : string % the shift key (a word)
get key % the letter a is a shift of 1 position, b is 2, c is 3,...

var len : int := length (sentence)
var len2 : int := length (key)
var a : int := 0

put ""
put " The encrypted sentence is: " ..

for positiona : 1 .. len2
var charactera : string := key (positiona)

shift := ord (charactera) - ord ("a") + 1

var newshift := shift
for position : 1 .. len
var character : string := sentence (position)

if (character >= "a" and character <= "z") then
% This if statement is used to determine if each character in the sentence is a valid encrypt character (only lowercase letters will be encrypted).
a := a + 1
if (a > len2) then
newshift := shift
end if
encryptednumber := ord (character) % If a character is a valid encrypt character (lowercase letter) the program will convert the letter into a number.
encryptednumber := encryptednumber + newshift % The program will shift the letter based on the encrypt key.
if ((encryptednumber = 128) or (chr (encryptednumber) > "z")) then % This if statement is used if the encrypted letter goes past "z".
encryptednumber := encryptednumber - 26 % If the encrypted letter goes past "z", the program will wrap it back around to "a".
end if % This command instructs the program to end the if statement.
encryptedletter := chr (encryptednumber) % This command converts the encrypted number back into an encrypted letter.
newshift := newshift + 1

if (a < len) then
put encryptedletter .. % This command is used to display the encrypted letter.
end if
end if % This command instructs the program to end the if statement.

end for % This command instructs the program to end the for loop.
end for


: