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

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

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

Программа кодирования и декодирования - C++

16.12.2013, 17:59. Просмотров 799. Ответов 4
Метки нет (Все метки)

Написать программу кодирования и декодирования последовательности символов длины N. Алгоритм кодирования заключается в следующем. Строится таблица, каждая строка которой содержит следующую информацию: символ, ко-личество вхождений символа в последовательность, порядок вхождения символа в последовательность.
____________________________

Нужно вот это реализовать, плата за ваш труд также возможен)

Добавлено через 11 часов 3 минуты
Неужели никто не сможет мне помочь
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2013, 17:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа кодирования и декодирования (C++):

Написать программу кодирования/декодирования строки - C++
Требуется написать программу кодирования/декодирования строки (заданной с клавиатуры) и текстового файла используя ассиметричный алгоритм...

Ребятушки, у кого-ниудь есть алгоритм кодирования и декодирования по Хаффману? - C++
декодирование у меня есть я как бы среднячок, но сама написать не осилю)

программа кодирования текста - C++
Всем добрый день :) Есть такая программа,по кодированию текста в файле, с помощью ключа,который находится в другом файле и сохранение...

Данные строкового типа(программа для введения текста, его кодирования и вывода результата) - C++
Последняя просьба! Придумать і сложить программу для введения текста, его кодирования и вывода результата. Заранее благодарю

Dsd-master 1.7 для декодирования d-star - C++
здравствуйте уважаемые форумчане, мне нужна помощь в запуске программы через bash в cygwin в windows но данная программа на данный момент...

Реализовать процесс декодирования кода Голея - C++
Приветствую. Нужна помощь. Как реализовать процесс декодирования по данному методу?...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MrCold
855 / 753 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
16.12.2013, 19:26 #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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
 
struct Symbol
    {
        Symbol(char ch) 
            : symValue(ch), quantity(0)
        {}
       operator char() const
       {
         return symValue;
       }
       char symValue;
       size_t quantity;
       std::vector<size_t> positions;
    };
 
       std::vector<size_t> posits(const std::string & instr, char inch)
       {
         std::vector<size_t> positions;
         const size_t len = instr.length();
         for(size_t i = 0; i < len; i++)
          {
              if( instr[i] == inch)
                  positions.push_back(i);
          }
         return positions;
       }
 
       void PrintPositions(std::vector<size_t> & positions)
       {
           for(std::vector<size_t>::iterator iter = positions.begin(); iter != positions.end(); ++iter)
           {
                std::cout <<  *iter;    
                if( positions.size() > 1 && iter != positions.end() - 1)  std::cout <<   ',';
           }
       }
 
 
    void  Encript (const std::string & instr, std::vector<Symbol> & letters)
    {
        for(std::string::const_iterator iter = instr.cbegin(); iter != instr.cend(); ++iter)
          {
              Symbol sym(*iter);
              letters.push_back(sym);
          }
        std::sort( letters.begin(), letters.end());
        letters.erase(std::unique(letters.begin(), letters.end()), letters.end());
        for(std::vector<Symbol>::iterator iter = letters.begin(); iter != letters.end(); ++iter)
          {
             ( *iter).quantity = std::count(instr.cbegin(),instr.cend(), *iter);
             ( *iter).positions = posits(instr, *iter);       
          }
    }
 
    void PrintTable( std::vector<Symbol> & letters)
    {
        std::cout << "Symbol     quantity     positions\n\n" ;
    for(std::vector<Symbol>::iterator iter = letters.begin(); iter != letters.end(); ++iter)
      {
         std::cout << "    " << ( *iter).symValue << "          " << ( *iter).quantity << "        ";
         PrintPositions(( *iter).positions);
         std::cout << std::endl;          
      }
    }
 
 
    std::string Decript ( std::vector<Symbol> & letters)
    {
        size_t len  = 0;
        std::string outString;
        outString.resize(1000);
        for(std::vector<Symbol>::iterator iter = letters.begin(); iter != letters.end(); ++iter)
      {
            for(std::vector<size_t>::iterator iterPositions = ( *iter).positions.begin(); iterPositions != ( *iter).positions.end(); ++iterPositions)
            {
                outString[(std::string::size_type)*iterPositions] = ( *iter).symValue ; 
                len++;
            }
      }
        outString.erase(len + 1);
        return outString;
        
    }
 
 
int main()
{
    std::string str = " WriteFile(fp, (LPCVOID)&dib.bmiHeader, sizeof(BITMAPINFOHEADER), &dwr, NULL)";  
    std::cout << "Old String :\n"<< str << std::endl << std::endl;
    std::vector<Symbol> letters;
 
    // Шифруем 
    Encript(str, letters);
    // Печать таблицы 
    PrintTable(letters);
    // Вывод расшифрованной строки 
    std::cout << std::endl << "New String :\n"<< Decript( letters) << std::endl;
    
  system("pause");
}
1
Mark_
0 / 0 / 0
Регистрация: 16.12.2013
Сообщений: 11
17.12.2013, 03:29  [ТС] #3
Спасибо огромное! как можно тебя отблагодарить?
0
MrCold
855 / 753 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
17.12.2013, 04:50 #4
Спасибо уважаемый Mark_.Не стоит благодарностей.
На форуме есть freelance-раздел. В следующий раз, если хотите что бы решили за деньги
пишите туда.
1
Mark_
0 / 0 / 0
Регистрация: 16.12.2013
Сообщений: 11
17.12.2013, 20:15  [ТС] #5
Цитата Сообщение от MrCold Посмотреть сообщение
Спасибо уважаемый Mark_.Не стоит благодарностей.
На форуме есть freelance-раздел. В следующий раз, если хотите что бы решили за деньги
пишите туда.
Спасибо огромное! Очень помогли мне многоуважаемый MrCold!!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2013, 20:15
Привет! Вот еще темы с ответами:

Построить алгоритм декодирования сообщений закодированных кодом простым повторением - C++
Построить алгоритм декодирования сообщений закодированных кодом простым повторением. Можете объяснить что от меня хотят, или как его...

Поцедура циклического кодирования - C++
Доброго дня! Помогите программно реализовать процедуру кодирования сообщения с использованием циклического кода, заданного порождающим...

Реализация арифметического кодирования - C++
Здравствуйте. Есть программа, которая производит арифметическое кодирование и декодирование. но во время компиляции в QT Creator говорит...

Реализация кодирования в JPEG2000 - C++
Вопрос заключается в следующем. Нужна программа с открытым программным кодом (open-source), где представлено кодирование и декодирование...


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

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

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