Лучшие помощники
1 апреля 2023 19:40
331

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;
}



0
·
Хороший ответ
3 апреля 2023 19:40
Остались вопросы?
Найти нужный