Шифр с использованием решетки кардано - C#

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

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

Код на c++ , если можете перевести в форму на c#, буду благодарен.
int main(int argc, char* argv[])
{
   const int SIZE = 5;
   char *buf[SIZE] = {"guhoe",
                      "llxoe",
                      "bnce.",
                      "utp!w",
                      "nqwmp"}; // матрица с зашифрованным текстом
   int grid[SIZE][SIZE] ={{0, 0, 1, 0, 1},
                          {1, 1, 0, 1, 0},
                          {0, 0, 0, 0, 0},
                          {0, 0, 0, 1, 0},
                          {0, 0, 0, 0, 0}}; // решетка Кардано
   // размер обоих матриц должен быть одинаковым
 
   // вывод зашифрованного сообщения
   for (int i = 0; i < SIZE; i++)
      cout << buf[i] << endl;
   cout << endl;
 
   // прямой обход решетки
   cout << "0:" << endl;
   for (int i = 0; i < SIZE; i++)
      for (int j = 0; j < SIZE; j++)
         if (grid[i][j] == 1)
            cout << buf[i][j];
   cout << endl;
 
   // поворот решетки на 90 градусов по часовой стрелке
   cout << "90:" << endl;
   for (int i = 0; i < SIZE; i++)
      for (int j = 0; j < SIZE; j++)
         if (grid[SIZE-j-1][i] == 1)
            cout << buf[i][j];
   cout << endl;
 
   // поворот решетки на 180 градусов по часовой стрелке
   cout << "180:" << endl;
   for (int i = 0; i < SIZE; i++)
      for (int j = 0; j < SIZE; j++)
         if (grid[SIZE-i-1][SIZE-j-1] == 1)
            cout << buf[i][j];
   cout << endl;
 
   // поворот решетки на 270 градусов по часовой стрелке
   cout << "270:" << endl;
   for (int i = 0; i < SIZE; i++)
      for (int j = 0; j < SIZE; j++)
         if (grid[j][SIZE-i-1] == 1)
            cout << buf[i][j];
   cout << endl;
 
   system("pause");
   return 0;
}

Решение задачи: «Шифр с использованием решетки кардано»

textual
Листинг программы
        static void Main(string[] args)
        {
            const int SIZE = 5;
            string[] buf = new string[SIZE] {"guhoe",
                      "llxoe",
                      "bnce.",
                      "utp!w",
                      "nqwmp"}; 
            int [,] grid=new int[SIZE,SIZE]{{0, 0, 1, 0, 1},
                          {1, 1, 0, 1, 0},
                          {0, 0, 0, 0, 0},
                          {0, 0, 0, 1, 0},
                          {0, 0, 0, 0, 0}};
            // вывод зашифрованного сообщения
            for (int i = 0; i < SIZE; i++)
            {
                Console.WriteLine(buf[i]);
            }
            Console.WriteLine("");
 
            // прямой обход решетки
            Console.WriteLine("0:");
            for (int i = 0; i < SIZE; i++)
                for (int j = 0; j < SIZE; j++)
                    if (grid[i,j] == 1)
                    {
                        Console.Write(buf[i][j]);
                    }
            Console.WriteLine("");
            // поворот решетки на 90 градусов по часовой стрелке
            Console.WriteLine("90:");
            for (int i = 0; i < SIZE; i++)
                for (int j = 0; j < SIZE; j++)
                    if (grid[SIZE - j - 1, i] == 1)
                    {
                        Console.Write(buf[i][j]);
                    }
            Console.WriteLine("");
            // поворот решетки на 180 градусов по часовой стрелке
            Console.WriteLine("180:");
            for (int i = 0; i < SIZE; i++)
                for (int j = 0; j < SIZE; j++)
                    if (grid[SIZE - i - 1, SIZE - j - 1] == 1)
                    {
                        Console.Write(buf[i][j]);
                    }
            Console.WriteLine("");
            // поворот решетки на 270 градусов по часовой стрелке
            Console.WriteLine("270:");
            for (int i = 0; i < SIZE; i++)
                for (int j = 0; j < SIZE; j++)
                    if (grid[j, SIZE - i - 1] == 1)
                    {
                        Console.Write(buf[i][j]);
                    }
            Console.WriteLine("");
 
        }

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


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

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

5   голосов , оценка 4.2 из 5
Похожие ответы