Шифр цезаря с ключевым словом - 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];
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д