Добавил:
          
          
        
        
    
            oih07968
            
            
            
            
            
            Опубликованный материал нарушает ваши авторские права? Сообщите нам.
          
          Вуз:
          Предмет:
          Файл:Vigenere
.cpp// Vigenere.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
//
#include <iostream>
#include <string>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    string abc = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ_";
    string keys = "ОРЕХ";
    string text = "ШВМБУЖНЯ";
    // шифрование text
    //for (int i = 0; i < text.length(); i++)
    //{
    //    char key = keys[i % keys.length()]; // текущий символ ключа для итерации
    //    int k = 0;
    //    for (int j = 0; j < abc.length(); j++)
    //        if (key == abc[j])
    //        {
    //            k = j;
    //            break;
    //        }
    //    for (int j = 0; j < abc.length(); j++)
    //    {
    //        if (text[i] == abc[j])
    //        {
    //            char o = abc[(j + k) % abc.length()];
    //            text[i] = o;
    //            break;
    //        }
    //    }
    //
    //}
    cout << text << endl;
    // расшифровывание зашифрованного text
    for (int i = 0; i < text.length(); i++)
    {
        char key = keys[i % keys.length()]; // текущий символ ключа для итерации
        int k = 0;
        for (int j = 0; j < abc.length(); j++)
            if (key == abc[j])
            {
                k = j;
                break;
            }
        for (int j = 0; j < abc.length(); j++)
        {
            if (text[i] == abc[j])
            {
                char o = abc[(j + abc.length() - k) % abc.length()];
                text[i] = o;
                break;
            }
        }
    }
    cout << text << endl;
    return 0;
} 
          Соседние файлы в предмете Теория информации
          
      
    
    
    
          