• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Программа шифрования

  • Автор темы Автор темы noo123
  • Дата начала Дата начала
Спасибо за всё) Решил проблему. Цикл там оказывается таки нужен, но не до 6 а до 12 элементов=)

Конечный вариант программы:

#include <iostream>
#include <cmath>
#include <conio.h>
#include <string>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
cout << "******** Квадрат Полибия (3 метод)! *********" << endl;
char M[6][6], K = 0;
int i, j, k = 0, KS = 0;
int Sif[100], SifF[100], Ind=0;
char S[37] = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ***";
char sym[50] = "ЗАЩИТА";
for (i = 0; i < 6; i++)
for (j = 0; j < 6; j++)
{
M[j] = S[K];
K++;
}
cout << endl;
cout << S << endl;
cout << endl;
for (i = 0; i < 6; i++)
{
cout << endl;
for (j = 0; j < 6; j++)
cout << M[j];
}
cout << endl;
cout << endl;
cout << sym << endl;

for (k = 0; k < 50; k++)
for (i = 0; i < 6; i++)
for (j = 0; j < 6; j++)
if (sym[k] == M[j])
{
Sif[KS] = i;
Sif[KS + 1] = j;
KS = KS + 2;
}
for (i = 0; i < 12; i++)
cout << Sif;
cout << endl;
cout << endl;
cout << "Сдвиг в право на 5 разрядов:" << endl;
for (i = 0; i < 12 - 6; i++)
SifF[i+6] = Sif;
Ind = 0;
for (j = i; j < 12; j++)
{
SifF[Ind] = Sif[j];
Ind++;
}
for (i = 0; i < 12 ; i++)
cout << SifF;
cout << endl;

for (i = 0; i < 12; i += 2) {
cout << M[SifF][SifF[i+1]];
}

Ещё раз спасибо =)))))))))
 
Назад
Сверху