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