Шифр цезаря с ключевым словом - C# (201467)
Формулировка задачи:
Помогите реализовать программу,пожалуйста? Процедур шифрования и расшифрования с использованием шифра Цезаря при вводе с клавиатуры ключа и исходного или зашифрованного текста. Учтите регистр вводимого текста. Русский алфавит
Решение задачи: «Шифр цезаря с ключевым словом»
textual
Листинг программы
public const string Alphabet = "abcdefghijklmnopqrstuvwxyz"; private static void Encode(ref string str, int key) { str = String.Concat(str.Select(_ => { if (Char.IsLetter(_)) { EncodeChar(ref _, key); } return _; })); } private static void Decode(ref string str, int key) { str = String.Concat(str.Select(_ => { if (Char.IsLetter(_)) { DecodeChar(ref _, key); } return _; })); } private static void EncodeChar(ref char c, int key) { bool toUpper = Char.IsUpper(c); var index = Alphabet.IndexOf(Char.ToLower(c)); var newIndex = index + key; if (newIndex > Alphabet.Length - 1) { newIndex = newIndex - Alphabet.Length; } c = toUpper ? Char.ToUpper(Alphabet[newIndex]) : Alphabet[newIndex]; } private static void DecodeChar(ref char c, int key) { bool toUpper = Char.IsUpper(c); var index = Alphabet.IndexOf(Char.ToLower(c)); var newIndex = index - key; if (newIndex < 0) { newIndex = newIndex + Alphabet.Length; } c = toUpper ? Char.ToUpper(Alphabet[newIndex]) : Alphabet[newIndex]; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д