SHARE
TWEET

Untitled

a guest Nov 14th, 2019 110 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // кмзи 3.2.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
  2. //
  3.  
  4. #include "pch.h"
  5. #include <iostream>
  6. #include <fstream>
  7. #include <iomanip>
  8. #include <string>
  9. #include <sstream>
  10.  
  11. using namespace std;
  12. const char fname[] = "C:\\Users\\Настя\\Desktop\\Учеба\\5 семестр\\КМЗИ\\файл.txt";
  13.  
  14.  
  15. int main()
  16. {
  17.     setlocale(LC_ALL, "Russian");
  18.     char alf[26] = { 'a', 'b', 'c','d', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
  19.     size_t count = 0;
  20.     char S;
  21.     ifstream f(fname);
  22.     while (!f.eof())
  23.     {
  24.         f.get(S);
  25.         count++;
  26.     }
  27.     f.close();
  28.     char *S2 = new char[count];
  29.     for (int i = 0; i < count; i++) S2[i] = NULL;
  30.     ifstream f2(fname);
  31.     int i = 0;
  32.  
  33.     while (!f2.eof())
  34.     {
  35.         f2.get(S2[i]);
  36.         i++;
  37.     }
  38.     f2.close();
  39.     cout << "count = " << count << endl;
  40.     cout << "Текст для шифрования: " << endl;
  41.     for (int i = 0; i < count; i++)
  42.     {
  43.         cout << S2[i];
  44.     }
  45.     cout << endl;
  46.     char *shifr = new char[count];
  47.     char *Shifr = new char[count];
  48.     char s;
  49.     char *K = new char[count];
  50.     cout << "Введите ключевой символ: " << endl;
  51.     cin >> s;
  52.     char *K1 = new char[count];
  53.     char *k1 = new char[count];
  54.     char *k2 = new char[count];
  55.     for (int i = 0; i < 26; i++)
  56.     {
  57.         if (s == alf[i])
  58.         {
  59.             K1[0] = s;
  60.             k2[0] = i;
  61.         }
  62.     }
  63.     for (int i = 0; i <= (count-1); i++)
  64.     {
  65.         K1[i + 1] = S2[i];
  66.         for (int j = 0; j < 26; j++)
  67.         {
  68.             if (S2[i] == alf[j])
  69.             {
  70.                 k2[i + 1] = j;
  71.             }
  72.         }
  73.     }
  74.     cout << "Итоговый ключ: " << endl;
  75.     for (int i = 0; i < count; i++)
  76.     {
  77.         cout << K1[i];
  78.     }
  79.     for (int i = 0; i < count; i++)
  80.     {
  81.         for (int s = 0; s <= 26; s++)
  82.         {
  83.             if (S2[i] == alf[s])
  84.             {
  85.                 k1[i] = s;
  86.             }
  87.             if (K1[i] == alf[s])
  88.             {
  89.                 k2[i] = s;
  90.             }
  91.         }
  92.     }
  93.     int u = 0;
  94.     for (int i = 0; i < count; i++)
  95.     {
  96.         u = (k1[i] + k2[i]) % 26;
  97.         shifr[i] = alf[u];
  98.         Shifr[i] = u;
  99.     }
  100.     cout << endl;
  101.     cout << "Зашифрованный текст: " << endl;
  102.     for (int i = 0; i < count - 1; i++)
  103.     {
  104.         cout << shifr[i];
  105.     }
  106.     cout << endl;
  107.     char *rasshifr = new char[count];
  108.     int u1 = 0;
  109.     for (int i = 0; i < count; i++)
  110.     {
  111.         u1 = ((Shifr[i] + 26) - k2[i]) % 26;
  112.         rasshifr[i] = alf[u1];
  113.     }
  114.     cout << "Расшифрованный текст: " << endl;
  115.     for (int i = 0; i < count - 1; i++)
  116.     {
  117.         cout << rasshifr[i];
  118.     }
  119.     delete[] shifr;
  120.     delete[] rasshifr;
  121.     cout << endl;
  122.     system("pause");
  123.     return(0);
  124. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top