Лучшие помощники
- Megamozg 2200 б
- Matalya1 1800 б
- DevAdmin 1700 б
- arkasha_bortnikov 890 б
- Dwayne_Johnson 860 б
2 апреля 2023 14:00
651
C++. Шифр Виженера. Шифратор написала, а дешифратор не могу собразить.#include «stdafx.h»
#include «pch.h»
#include
#include
#include
#include
using namespace std;
int _tmain(int argc,_TCHAR* argv[])
{
string B, C, D = "";
string A = «abcdefghijklmnopqrstuvwxyz»;
setlocale(LC_ALL, «Rus»);
cout << «Введите слово: »;
cin >>B;
cout << «Введите ключ: »;
cin >>C;
int *F = new int[B.size()];
int *G = new int[B.size()];
int c = C.size();
int b = B.size();
if (b >= c)
{
for (int i = 0; i < (b / c); i++)
{
D = D + C;
}
for (int j = 0; j < (b%c); j++)
{
D = D + C[j];
}
}
else
{
for (int s = 0; s < b; s++)
{
D = D + B[s];
}
}
cout << D << endl;
for (int k = 0; k < b; k++)
{
for (int n = 0; n < 26; n++)
{
if (B[k] == A[n])
{
F[k] = n;
}
if (D[k] == A[n])
{
G[k] = n;
}
}
}
int e = 0;
for (int u = 0; u < b; u++)
{
e = ((F[u] + G[u]) % 26);
B[u] = A[e];
}
cout << «Ваше зашифрованное слово: » << B << endl;
return 0;
}
1
ответ
#include <iostream>
#include <string>
using namespace std;
int main()
{
string B, C, D = "";
string A = "abcdefghijklmnopqrstuvwxyz";
setlocale(LC_ALL, "rus");
cout << "Введите слово: ";
cin >>B;
cout << "Введите ключ: ";
cin >>C;
int *F = new int[B.size()];
int *G = new int[B.size()];
int c = C.size();
int b = B.size();
if (b >= c)
{
for (int i = 0; i < (b / c); i++)
{
D = D + C;
}
for (int j = 0; j < (b%c); j++)
{
D = D + C[j];
}
}
else
{
for (int s = 0; s < b; s++)
{
D = D + B[s];
}
}
cout << D << endl;
for (int k = 0; k < b; k++)
{
for (int n = 0; n < 26; n++)
{
if (B[k] == A[n])
{
F[k] = n;
}
if (D[k] == A[n])
{
G[k] = n;
}
}
}
int e = 0;
// for (int u = 0; u < b; u++)
// {
// e = ((F[u] + G[u]) % 26);
// B[u] = A[e];
// }
for (int u = 0; u < b; u++)
{
e = ((F[u] - G[u]));
if (e<0)
e+=26;
B[u] = A[e];
}
//cout << "Ваше зашифрованное слово: " << B << endl;
cout << "Ваше расшифрованное слово: " << B << endl;
return 0;
}
#include <string>
using namespace std;
int main()
{
string B, C, D = "";
string A = "abcdefghijklmnopqrstuvwxyz";
setlocale(LC_ALL, "rus");
cout << "Введите слово: ";
cin >>B;
cout << "Введите ключ: ";
cin >>C;
int *F = new int[B.size()];
int *G = new int[B.size()];
int c = C.size();
int b = B.size();
if (b >= c)
{
for (int i = 0; i < (b / c); i++)
{
D = D + C;
}
for (int j = 0; j < (b%c); j++)
{
D = D + C[j];
}
}
else
{
for (int s = 0; s < b; s++)
{
D = D + B[s];
}
}
cout << D << endl;
for (int k = 0; k < b; k++)
{
for (int n = 0; n < 26; n++)
{
if (B[k] == A[n])
{
F[k] = n;
}
if (D[k] == A[n])
{
G[k] = n;
}
}
}
int e = 0;
// for (int u = 0; u < b; u++)
// {
// e = ((F[u] + G[u]) % 26);
// B[u] = A[e];
// }
for (int u = 0; u < b; u++)
{
e = ((F[u] - G[u]));
if (e<0)
e+=26;
B[u] = A[e];
}
//cout << "Ваше зашифрованное слово: " << B << endl;
cout << "Ваше расшифрованное слово: " << B << endl;
return 0;
}
0
·
Хороший ответ
4 апреля 2023 14:00
Остались вопросы?
Еще вопросы по категории Информатика
Не отрывая карандаш от бумаги и не проводя никакую линию дважды ,как нарисовать закрытый конверт?...
Что будет результатом работы алгоритма? 1) Если правее Робота не встретится препятствия, то он переместится на 51 клетку вправо 2) Если левее Робота...
(Python) Напишите программу для работы с рейтингами фильмов. Она может обрабатывать следующие команды: add - добавить фильм с указанным названием. Ес...
В одной из кодировок Unicode каждый символ кодируется 16 битами. Определите размер следующего предложения в данной кодировке...
Приведите примеры ситуаций,в которых осуществляется обработка информации,ведущая к: а) Получению новой информации; б) Изменению формы представления су...
Все предметы