Шифр цезаря с ключевым словом - C# (201467)

Узнай цену своей работы

Формулировка задачи:

Помогите реализовать программу,пожалуйста? Процедур шифрования и расшифрования с использованием шифра Цезаря при вводе с клавиатуры ключа и исходного или зашифрованного текста. Учтите регистр вводимого текста. Русский алфавит

Решение задачи: «Шифр цезаря с ключевым словом»

textual
Листинг программы
  1.  
  2. public const string Alphabet = "abcdefghijklmnopqrstuvwxyz";
  3. private static void Encode(ref string str, int key)
  4.         {
  5.             str = String.Concat(str.Select(_ =>
  6.                                                {
  7.                                                    if (Char.IsLetter(_))
  8.                                                    {
  9.                                                        EncodeChar(ref _, key);
  10.                                                    }
  11.                                                    return _;
  12.                                                }));
  13.  
  14.         }
  15. private static void Decode(ref string str, int key)
  16.         {
  17.             str = String.Concat(str.Select(_ =>
  18.                                                {
  19.                                                    if (Char.IsLetter(_))
  20.                                                    {
  21.                                                        DecodeChar(ref _, key);
  22.                                                    }
  23.                                                    return _;
  24.                                                }));
  25.         }
  26.  
  27.         private static void EncodeChar(ref char c, int key)
  28.         {
  29.             bool toUpper = Char.IsUpper(c);
  30.             var index = Alphabet.IndexOf(Char.ToLower(c));
  31.             var newIndex = index + key;
  32.             if (newIndex > Alphabet.Length - 1)
  33.             {
  34.                 newIndex = newIndex - Alphabet.Length;
  35.             }
  36.             c = toUpper ? Char.ToUpper(Alphabet[newIndex]) : Alphabet[newIndex];
  37.         }
  38.  
  39.         private static void DecodeChar(ref char c, int key)
  40.         {
  41.             bool toUpper = Char.IsUpper(c);
  42.             var index = Alphabet.IndexOf(Char.ToLower(c));
  43.             var newIndex = index - key;
  44.             if (newIndex < 0)
  45.             {
  46.                 newIndex = newIndex + Alphabet.Length;
  47.             }
  48.             c = toUpper ? Char.ToUpper(Alphabet[newIndex]) : Alphabet[newIndex];
  49.         }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут