Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.57 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement