Реализация аффинного шифра [требует правки]

523
08 августа 2017, 13:35

Необходимо создать консольную программу для реализации афинного шифра (рекуррентный не нужен) Русский алфавит, точка, запитая, пробел.

https://ru.wikipedia.org/wiki/Аффинный_шифр

План:
  • Пользователь вводит текст
  • Пользователь вводит ключи шифрования α, b
  • Ему выводит координаты букв этого текста (например коорд А-0 Б-1 В-3 и тд. он ввел "АБА" ему выдает =====> 010

Шифрование

  • Программа шифрует координаты по формуле и выводит их на экран
  • Выводит на экран слово по уже зашифрованным координатам (например было "АБА" выдало=====> ,что-то типа "РКП"...)

Дешифрование

  • Дешифрует и выводит на экран расшифрованное слово (было например "РКП" стало===> "АБА"

то ,что уже есть....

class Program
{
    static void Main()
    {
        //Первым делом создаем массив, содержащий русский алфавит (путем преобразования строки с алфавитом в массив символов)
        string sh = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
        char[] alf = sh.ToCharArray();//приобразует строку "sh" (в ней  алфавит) в массив символов
        for (int i = 0; i < alf.Length; i++)// цикл для вывода массива алфавита
            Console.Write(alf[i]+" ");
        Console.WriteLine();

        Console.Write("Введите текст: ");
        string text = Console.ReadLine();//Считывает введенное сообщение как строку  text

        int a,b;//Ключи
        Console.Write("Введите ключ а: ");
        a = int.Parse(Console.ReadLine());//считывает a
        Console.Write("Введите ключ b: ");
        b = int.Parse(Console.ReadLine());//считывает b
        string koordBukv = "";//создаю пустую строку для последующей записи в нее координат букв в алфавите из сообщения text введенного пользователем
        for (int i = 0; i < text.Length; i++)// цикл идет по введенному  сообщению text т.е от нулевого символа до конечного (Length)
            for (int j = 0; j < alf.Length; j++)//цикл идет по алфавиту от нулевого символа до конечного (Length)

                if (Char.ToLower(alf[j]) == text[i] || Char.ToUpper(alf[j]) == text[i])/*проверяем на совп-я буквы сообщения с букв алфавита
                        предусм-тся и регистр (большие-малые) букв. .ToLower - малые .ToUpper-большие  */

            koordBukv += (Convert.ToString(j));// запоминаем индексы найденных совпадений, в строку koordBukv (итого получим чтот типа 0150 и так далее)
        Console.Write("Координаты букв: "+ koordBukv);

        Console.ReadKey();//Позволяет консоли не закрываться посли выполнения программы
    }
}

}

READ ALSO
Подойдет ли MacBook для .net разработчика? [требует правки]

Подойдет ли MacBook для .net разработчика? [требует правки]

Можно ли писать на c#, используя мак? Ну и в целом, если купить макбук, то можно ли работать с платформойnet? Не могу найти аналога макбука по качеству...

305
C# Selenium Wedriver XPATH И FindElement несколько атрибутов

C# Selenium Wedriver XPATH И FindElement несколько атрибутов

Пытаюсь программно лайкнуть определенный коммент на ютубе

379
C# .net callback&#39;и

C# .net callback'и

Здравствуйте, я забыл как объявлять callback'и, приведите пожалуйста пример callback'а, который возвращал как нибудь String и TcpClient, и собственно всё...

372
Как сделать кнопку назад в Unity?

Как сделать кнопку назад в Unity?

Как сделать кнопку назад на Cancel, так, чтобы при возврате происходило автосохранение изменений в сцене из которой хотят выйти

649