Страница: 1 |
Вопрос: Консультация по C++ - платная :) | Добавлено: 20.03.09 13:30 |
Автор вопроса: ![]() |
В рамках учебы есть задача написать программу которая кодирует текст методом Шеннона-Фано... На просторах интернет нашел исходники кода на С++.
Программа работает, но есть одно но ... Изучать С++ только начал в этом семестре. Сам посмотрел на код обработчика кнопки кодирования и не смог разобраться с большей половиной тех команд и инструкций, что там написано. Можно помочь с коментариями к каждой строке ? Книг у меня много .. но приходится лопатить их все ради понимания одной строки и еще не факт что разберусь в итоге ... например со строкой - CShannonFanoEncoding sfe; так и не разобрался для чего она и что делает ... Вот код void CShannonAppDlg::OnButtonEncode() { CShannonFanoEncoding sfe; // Возможно собственный класс стр 582 CString str; int len, i; unsigned char *sz; // без знаковое строковое (для улучшения переносимости программы, но ухудшает быстродействие) if (m_table) sfe.free_table(m_table, m_tableLen); m_srcEdit.GetWindowText(str); len = str.GetLength(); sz = new unsigned char[4096]; wcstombs((char *) sz, str, len + 1); memset(m_buffer, 0, 4096); str.Format(L"%d", len << 3); m_srclenStatic.SetWindowText(str); // encode m_len = sfe.encode(sz, len, m_buffer, &m_table, &m_tableLen); str.Format(L"%d", m_len); m_outlenStatic.SetWindowText(str); // output bit result unsigned char *t = m_buffer; unsigned char mask = 0x80, s = 7; str.Empty(); for (i = 1; i <= m_len; i++) { str += (WCHAR) (((*t & mask) >> s) + L'0'); mask = mask >> 1; s--; if (mask == 0) { mask = 0x80; t++; s = 7; } } m_outEdit.SetWindowText(str); WCHAR szTemp[64]; m_codesList.AddString(L"----------"); // output codes for (i = 0; i < m_tableLen; i++) { _itow(m_table[i]->code, szTemp, 2); str.Format(L"%C - %s [len - %d] [count - %d]", m_table[i]->atom, szTemp, m_table[i]->len, m_table[i]->count); m_codesList.AddString(str); } m_decodeButton.EnableWindow(); delete [] sz; } Готов оплатить услуги.. zwezda-11@mail.ru для первого контакта.. в теме желательно указать С++ |
Ответы | Всего ответов: 2 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() Вопросов: 15 Ответов: 194 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 14.04.09 20:04 |
Всегда поражаюсь таланту некоторых людей торговаться ![]() |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 246 Ответов: 3333 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 02.05.09 15:37 |
Особенно когда вопрос по C++ задают на форуме ВБ-шников. |
Страница: 1 |
|