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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Felarmonia
0 / 0 / 0
Регистрация: 18.07.2016
Сообщений: 2
#1

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

18.07.2016, 10:47. Просмотров 212. Ответов 3
Метки нет (Все метки)

Здравствуйте, у меня проблема с написанием кода.

Молодой программист придумал простой способ шифрования: сначала записать все символы исходного текста, имеющие нечетные порядковые номера (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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализовать шифрование указанным методом (C++):

Реализовать шифрование файла - C++
У меня есть вот какая задача: моя программа должна работать с файлом -- сохранять и считывать, ну добавлять ещё. По техническим причинам...

Реализовать класс "Междугороные разговоры" и функцию поиска в нём по указанным параметрам - C++
Здравствуйте.Помогите с заданием.Не пойму,что от меня требуется. 1.Определить объекты и св-ва , определяющие состояние и поведение...

Шифрование методом перестановки на C++ - C++
Дана строка. Зашифровать ее следующим методом: строка вписывается в таблицу размера NхM по строкам, а результат считывается по столбцам ...

Шифрование методом Цезаря - C++
Здравствуйте. Неправильно работает шифр и неправильно работает с последней буквой "я", не сдвигается. "Я" сдвигается, строчная нет. Как...

Шифрование методом Цезаря - C++
Шифрование методом Цезаря со сдвигом на 6 нужна блок–схема

Шифрование методом перестановки - C++
люди помогите пожалуйста я сделал программу на Си "шифт перестановки" а препад говорит что ему только на С++ сдавать а я С++ вообще не знаю...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
shilko2013
240 / 217 / 117
Регистрация: 02.04.2016
Сообщений: 827
Завершенные тесты: 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
Модератор
Эксперт CЭксперт С++
13133 / 7396 / 828
Регистрация: 27.09.2012
Сообщений: 18,227
Записей в блоге: 3
Завершенные тесты: 1
19.07.2016, 00:09 #4
Цитата Сообщение от Felarmonia Посмотреть сообщение
Есть ли литература где написано крестьянским языком, как работать в с++?
Литература C++
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.07.2016, 00:09
Привет! Вот еще темы с ответами:

Шифрование методом Вижинера - C++
Ребята помогите пожалуйста, может у кого-то завалялся исходный код этой программки или похожий, тема довольно распространенная, но мне...

Шифрование методом решёток - C++
Выдаёт ошибку идентификатор &quot;gets&quot; не определён, как сделать, чтобы избавиться от этой ошибки? void main() { char *s; // строка для...

Шифрование Методом Виженера На C++ - C++
Здравствуйте. Мне нужна программа на тему Шифрование методом виженера. Я пытался найти в интернете варианты шифрования нашел только вот...

Шифрование методом Виженера - C++
Ребята есть код, помогите разобраться с неправильным выводом зашифрованного текста, вместо русских букв выводит зашифрованный текст с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.07.2016, 00:09
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru