Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2013, 18:24   #1
trum
Пользователь
 
Регистрация: 20.03.2012
Сообщений: 25
По умолчанию C++. шифровать текст по методу КАРДАНА (Решетка Кардана),

Вот программа. Задача такая, чтобы мы вводили текст, программа его шифровала по Методу КАРДАНА(Решетка Кардана), а затем расшифровывала его и выводила. Эта прорамма только расшифровует зашифрованый текст, а нужно еще чтобы шифровала аналогичным способом. За помощь Спасибо!


Код:
#include <iostream.h>
 
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;
}


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 02.11.2013 в 14:39.
trum вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ Напишите программу так, чтобы пользователь вводил действие, необходимое для выполнения: шифровать или расшифровать текст (люб alex1994max Помощь студентам 1 09.07.2013 15:39
поворотная решетка ПрИуЭт Общие вопросы C/C++ 0 04.01.2012 13:48
Стоит ли шифровать всю информацию в БД mar4elo PHP 16 14.01.2011 17:12
Шифровать Текст в картинку??? Xdron Фриланс 6 18.05.2010 20:04
Дифракционная решетка 2009 Помощь студентам 0 04.05.2009 16:44