Лучшие помощники
- Megamozg 2180 б
- Matalya1 1800 б
- DevAdmin 1690 б
- arkasha_bortnikov 840 б
- Dwayne_Johnson 840 б
1 апреля 2023 19:40
308
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
Остались вопросы?
Еще вопросы по категории Информатика
Пожалуйста, от этого зависит моя оценка Что значит "Ошибка инициализации (0х0175dcbb) И как устранить проблему? на Windows...
1. Каково происхождение термина «презентация»? 2. Какая информация может быть размещена на слайде презентации? 3. Что общего в технологиях гипертекст...
два прямоугольника, расположенные в первом квадранте, со сторонами, параллельными осям координат, заданы координатами своих левого верхнего и правого...
Автор рассказа который заканчивается словами не прожевал значит волк-то...
Что будет выведено в результате выполнения цикла? for X in range(5, 1, -1): print('2', end=' ') Определите, что будет напечатано в результат...
Все предметы