Модераторы: Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Алгоритм]Кодирование и декодирование информации, не могу понять, какой алгоритм нужен? 
:(
    Опции темы
SergXP
Дата 8.3.2009, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 16.4.2008

Репутация: нет
Всего: нет



zim22, ага спасибо.
Но он очень громоздкий  smile 
И кто муже придется мне терь VC++ 6.0 ставить :(
--------------------
База IMEI-номеров украденных и утерянных мобильных телефоновhttp://imeis.net.ru/
PM MAIL WWW ICQ   Вверх
zim22
Дата 8.3.2009, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 16
Всего: 69



Цитата(SergXP @  8.3.2009,  19:35 Найти цитируемый пост)
И кто муже придется мне терь VC++ 6.0 ставить :(

зачем? это чистый си. любой компилятор схвахает. какой у вас?
у меня msvc 2008


--------------------
PM MAIL   Вверх
SergXP
Дата 8.3.2009, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 16.4.2008

Репутация: нет
Всего: нет



zim22,  у меня тоже 2008-й стоит
но что-то я не могу его скомпилировать

Добавлено через 4 минуты и 42 секунды
Стоп, а при компиляции экзешник должен появиться? или библиотека dll?
--------------------
База IMEI-номеров украденных и утерянных мобильных телефоновhttp://imeis.net.ru/
PM MAIL WWW ICQ   Вверх
SergXP
Дата 10.3.2009, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 16.4.2008

Репутация: нет
Всего: нет



В общем запустисть удалось! Спасибо за помощь!
Но вот проблемка возникла, код не легкий, можно ли как-нибудь выдернуть нужные ф-ции и воткнуть их в C++ Builder?
--------------------
База IMEI-номеров украденных и утерянных мобильных телефоновhttp://imeis.net.ru/
PM MAIL WWW ICQ   Вверх
zim22
Дата 10.3.2009, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 16
Всего: 69



Цитата(SergXP @  10.3.2009,  10:54 Найти цитируемый пост)
В общем запустисть удалось! Спасибо за помощь!

мне интенесно, почему всё-таки экзешник не создавался? smile


Цитата(SergXP @  10.3.2009,  10:54 Найти цитируемый пост)
можно ли как-нибудь выдернуть нужные ф-ции и воткнуть их в C++ Builder?

сомневаюсь. я могу вам посоветовать несколько вариантов решения проблемы:
1) написать алгоритм с нуля. т.е. почитать теорию, разобраться.
2) посмотреть как работает существующая программа в режиме отладки. выяснить необходимые функции их взаимосвязи и "воткнуть" в Билдер.
3) найти версию программы на С++
4) найти версию программы на другом языке и перевести на С++
выбирайте smile


--------------------
PM MAIL   Вверх
SergXP
Дата 10.3.2009, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 16.4.2008

Репутация: нет
Всего: нет



Мда. :(

Мне удалось найти еще один код.

Код

#include <iostream>
#include <fstream>
#include <vector>
#include <string>

struct s_node
{
    unsigned c;
    unsigned char ch;
    unsigned n;
    std::vector<s_node*> br;
};

class my_ifstream: public std::ifstream
{
public:
    virtual my_ifstream& operator>>(unsigned char&);
    my_ifstream(const char *_Filename, std::ios_base::openmode _Mode = ios_base::in, int _Prot = (int)ios_base::_Openprot);
};

my_ifstream::my_ifstream(const char *_Filename, std::ios_base::openmode _Mode, int _Prot):std::ifstream(_Filename, _Mode, _Prot)
{
}

my_ifstream& my_ifstream::operator>>(unsigned char& ch)
{
    ch = get();

    return *this;
}

void tree_walk(s_node *);
void tree_del(s_node *);
void write_message();

std::ofstream fout("output.txt");
std::string table[256];

int main()
{
    my_ifstream fin("input.txt", std::ios_base::in | std::ios_base::binary);
    
    if (!fin.is_open())
    {
        std::cout << "Input file not found" << std::endl;
        
        system("pause");

        return 0;
    }

    std::vector<unsigned char> ch_set;
    std::vector<s_node> nodes;
    unsigned char ch;
    unsigned j = 0;

    while (fin >> ch)
    {
        unsigned i;

        for (i = 0; i < ch_set.size() && ch_set[i] != ch; i++);

        if (i == ch_set.size())
        {
            s_node t;

            ch_set.push_back(ch);

            t.ch = ch;
            t.n = 0;
            t.c = 0;
        
            nodes.push_back(t);

            my_ifstream fin2("input.txt", std::ios_base::in | std::ios_base::binary);

            while (fin2 >> ch)
                if (ch == nodes[j].ch)
                    nodes[j].n++;

            j++;
        }
    }

    for (unsigned i = 0; i < nodes.size() - 1; i++)
        fout << "'" << nodes[i].ch << "'" << nodes[i].n << ", ";
    
    fout << "'" << nodes[nodes.size() - 1].ch << "'" << nodes[nodes.size() - 1].n << std::endl << std::endl;

    std::vector<s_node*> t;

    for (unsigned i = 0; i < nodes.size(); i++)
    {
        t.push_back(new s_node);
        *t[i] = nodes[i];
    }

    while (t.size() > 1)
    {
        s_node *x;

        for (unsigned i = 0; i < t.size(); i++)
            for (unsigned j = 0; j < t.size(); j++)
                if (t[i]->n < t[j]->n)
                    x = t[i], t[i] = t[j], t[j] = x;

        s_node *min1 = t[0];
        unsigned c1 = 0;

        t.erase(t.begin() + c1);
        
        s_node *min2 = t[0];
        unsigned c2 = 0;

        s_node *tmp = new s_node;

        tmp->br.push_back(min1);
        tmp->br.push_back(min2);

        tmp->c = 2;
        tmp->n = min1->n + min2->n;
        t[c2] = tmp;
    }

    tree_walk(t[0]);
    write_message();
    tree_del(t[0]);

    return 0;
}

void tree_walk(s_node *root)
{
    static std::string s = "";

    if (root->c)
    {
        s += "1";
        
        tree_walk(root->br[1]);
        s.erase(s.size() - 1, 1);
        
        s +="0";

        tree_walk(root->br[0]);
        s.erase(s.size() - 1, 1);
    }
    else
    {
        fout << "'" << root->ch << "'" << " = " << s << std::endl;
        table[root->ch] = s;
    }
}

void tree_del(s_node *root)
{
    if (root->c)
    {
        tree_del(root->br[1]);
        tree_del(root->br[0]);
    }
    else
        delete root;
}

void write_message()
{
    my_ifstream fin("input.txt");
    unsigned char ch;

    fout << std::endl;

    while(fin >> ch)
        fout << table[ch];
}


Мне необходимо просто как-нибудь подключить код к моей программке, чтобы данные выводились в Memo.
--------------------
База IMEI-номеров украденных и утерянных мобильных телефоновhttp://imeis.net.ru/
PM MAIL WWW ICQ   Вверх
zim22
Дата 10.3.2009, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 16
Всего: 69



Цитата(SergXP @  10.3.2009,  12:12 Найти цитируемый пост)
чтобы данные выводились в Memo.

выявите все места вывода данных в коде и перенаправьте вывод данных в Memo.


--------------------
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0712 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.