Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // кмзи 3.2.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
- //
- #include "pch.h"
- #include <iostream>
- #include <fstream>
- #include <iomanip>
- #include <string>
- #include <sstream>
- using namespace std;
- const char fname[] = "C:\\Users\\Настя\\Desktop\\Учеба\\5 семестр\\КМЗИ\\файл.txt";
- int main()
- {
- setlocale(LC_ALL, "Russian");
- 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' };
- size_t count = 0;
- char S;
- ifstream f(fname);
- while (!f.eof())
- {
- f.get(S);
- count++;
- }
- f.close();
- char *S2 = new char[count];
- for (int i = 0; i < count; i++) S2[i] = NULL;
- ifstream f2(fname);
- int i = 0;
- while (!f2.eof())
- {
- f2.get(S2[i]);
- i++;
- }
- f2.close();
- cout << "count = " << count << endl;
- cout << "Текст для шифрования: " << endl;
- for (int i = 0; i < count; i++)
- {
- cout << S2[i];
- }
- cout << endl;
- char *shifr = new char[count];
- char *Shifr = new char[count];
- char s;
- char *K = new char[count];
- cout << "Введите ключевой символ: " << endl;
- cin >> s;
- char *K1 = new char[count];
- char *k1 = new char[count];
- char *k2 = new char[count];
- for (int i = 0; i < 26; i++)
- {
- if (s == alf[i])
- {
- K1[0] = s;
- k2[0] = i;
- }
- }
- for (int i = 0; i <= (count-1); i++)
- {
- K1[i + 1] = S2[i];
- for (int j = 0; j < 26; j++)
- {
- if (S2[i] == alf[j])
- {
- k2[i + 1] = j;
- }
- }
- }
- cout << "Итоговый ключ: " << endl;
- for (int i = 0; i < count; i++)
- {
- cout << K1[i];
- }
- for (int i = 0; i < count; i++)
- {
- for (int s = 0; s <= 26; s++)
- {
- if (S2[i] == alf[s])
- {
- k1[i] = s;
- }
- if (K1[i] == alf[s])
- {
- k2[i] = s;
- }
- }
- }
- int u = 0;
- for (int i = 0; i < count; i++)
- {
- u = (k1[i] + k2[i]) % 26;
- shifr[i] = alf[u];
- Shifr[i] = u;
- }
- cout << endl;
- cout << "Зашифрованный текст: " << endl;
- for (int i = 0; i < count - 1; i++)
- {
- cout << shifr[i];
- }
- cout << endl;
- char *rasshifr = new char[count];
- int u1 = 0;
- for (int i = 0; i < count; i++)
- {
- u1 = ((Shifr[i] + 26) - k2[i]) % 26;
- rasshifr[i] = alf[u1];
- }
- cout << "Расшифрованный текст: " << endl;
- for (int i = 0; i < count - 1; i++)
- {
- cout << rasshifr[i];
- }
- delete[] shifr;
- delete[] rasshifr;
- cout << endl;
- system("pause");
- return(0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement