Лучшие помощники
- Megamozg 2205 б
- Matalya1 1800 б
- DevAdmin 1720 б
- arkasha_bortnikov 900 б
- Dwayne_Johnson 870 б
1 апреля 2023 19:40
491
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
·
Хороший ответ
3 апреля 2023 19:40
Остались вопросы?
Еще вопросы по категории Информатика
Что такое папка верхнего уровня? Не могу понять...
Какой из объектов может являться исполнителем алгоритмов? ножницы карта принтер книга...
Знаковой информационной моделью не является ... 1) Рисунок 2) Словесное описание 3) фотография 4) график...
Сумма 10000 рублей положена в сберегательный банк, при этом прирост составляет 5% годовых. Составьте алгоритм, определяющий, через какой промежуток вр...
Какой из способов хранения пароля от аккаунта можно считать самым надежным? В записной книжке в нижнем ящике письменного стола В текстовом файле в ск...