Добавил:
oih07968
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Vigenere
.cpp// Vigenere.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
//
#include <iostream>
#include <string>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
string abc = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ_";
string keys = "ОРЕХ";
string text = "ШВМБУЖНЯ";
// шифрование text
//for (int i = 0; i < text.length(); i++)
//{
// char key = keys[i % keys.length()]; // текущий символ ключа для итерации
// int k = 0;
// for (int j = 0; j < abc.length(); j++)
// if (key == abc[j])
// {
// k = j;
// break;
// }
// for (int j = 0; j < abc.length(); j++)
// {
// if (text[i] == abc[j])
// {
// char o = abc[(j + k) % abc.length()];
// text[i] = o;
// break;
// }
// }
//
//}
cout << text << endl;
// расшифровывание зашифрованного text
for (int i = 0; i < text.length(); i++)
{
char key = keys[i % keys.length()]; // текущий символ ключа для итерации
int k = 0;
for (int j = 0; j < abc.length(); j++)
if (key == abc[j])
{
k = j;
break;
}
for (int j = 0; j < abc.length(); j++)
{
if (text[i] == abc[j])
{
char o = abc[(j + abc.length() - k) % abc.length()];
text[i] = o;
break;
}
}
}
cout << text << endl;
return 0;
}
Соседние файлы в предмете Теория информации