Шифр цезаря с ключевым словом - 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];
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.5 из 5