Форум программистов, компьютерный форум CyberForum.ru

Реализовать шифрование указанным методом - C++

Восстановить пароль Регистрация
 
Felarmonia
0 / 0 / 0
Регистрация: 18.07.2016
Сообщений: 2
18.07.2016, 10:47     Реализовать шифрование указанным методом #1
Здравствуйте, у меня проблема с написанием кода.

Молодой программист придумал простой способ шифрования: сначала записать все символы исходного текста, имеющие нечетные порядковые номера (1, 3, 5...), затем все символы, имеющие четные порядковые номера (2, 4, 6 . . .). Вычислите значение указанного критерия качества для заданного текста.

Я разобрал все по пунктам:
1) Записать в файл текст.
2) Считать из файла этот текст.
3) Подсчитать кол-во символов (это для того что бы понять где будет последняя цифра, когда будем нумеровать текст, ведь сначала нечетные, а затем четные символы записываем).
4) Затем мы же должны расположить символы в порядке возрастания и сравнить его с исходником.
5) Подсчитать кол-во символов стоящих на своих местах и вывести их в другой текстовый файл.

Но от этого легче не стало. Я первый раз работаю с плюсами. Облазил все что можно, но так и не могу догнать как делать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2016, 10:47     Реализовать шифрование указанным методом
Посмотрите здесь:

Шифрование методом Цезаря Visual C++
Шифрование методом замены! C++
C++ Шифрование методом перестановки
Шифрование методом перестановки C++
C++ Builder Шифрование методом подстановки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
shilko2013
 Аватар для shilko2013
237 / 214 / 115
Регистрация: 02.04.2016
Сообщений: 812
Завершенные тесты: 1
18.07.2016, 16:31     Реализовать шифрование указанным методом #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include<iostream>
#include <fstream>
#include <vector>
using namespace std;
int main() {
 
    bool b = 0; //проверка на четность
    int n; //число, запоминающее сколько нечетных символов
    vector<char> ch;
    vector<char> nech;
    string way = "Example.txt";
    string way2 = "Example2.txt";
    fstream text;
    text.open(way, ios_base::in);
    if (text.is_open())
        cout << "yes";
    while (!text.eof()) { //чтение обычного текста для шифрования
        char a = text.get();
        if ((b == 0) && (a != -1))
            nech.push_back(a);
        else if (a != -1)
            ch.push_back(a);
        b = !b;
    }
    text.close();
    n = nech.size();
    fstream text2;
    text2.open(way2, ios_base::out | ios_base::trunc);
    for (auto a : nech) //печать шифрованного текста
        text2 << a;
    for (auto a : ch)
        text2 << a;
    text2.close();
    text2.open(way2, ios_base::in);
    b = 0; //чтение шифрованного текста
    for (int i = 0; i < n; ++i) {
        char a = text.get();
    if (a != -1)
        nech.push_back(a);
    }
    while (!text.eof()) {
        char a = text.get();
    if (a != -1)
        ch.push_back(a);
    }
    text2.close();
    text.open(way, ios_base::out | ios_base::trunc);
    for (int i = 0; i < ch.size(); ++i) { //расшифровка
        char a = nech[i];
        text << a;
        a = ch[i];
        text << a;
    }
    if (nech.size() > ch.size())
        text << nech[nech.size() - 1];
    text.close();
    //в итоге файл Example останется без изменений, а в Example2 запишется шифр.
    return 0;
}
PS Не очень удобный метод
Felarmonia
0 / 0 / 0
Регистрация: 18.07.2016
Сообщений: 2
18.07.2016, 20:36  [ТС]     Реализовать шифрование указанным методом #3
Спасибо большое, но еще хочу узнать. Есть ли литература где написано крестьянским языком, как работать в с++?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,865
Записей в блоге: 2
Завершенные тесты: 1
19.07.2016, 00:09     Реализовать шифрование указанным методом #4
Цитата Сообщение от Felarmonia Посмотреть сообщение
Есть ли литература где написано крестьянским языком, как работать в с++?
Литература C++
Yandex
Объявления
19.07.2016, 00:09     Реализовать шифрование указанным методом
Ответ Создать тему
Опции темы

Текущее время: 17:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru