Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 2
Регистрация: 13.09.2014
Сообщений: 43

Реализация алгоритма Шеннон-Фано

14.09.2014, 22:08. Показов 553. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите люди добрые, есть задачка для тех, кто знает алгоритм:
Все сделал, осталось только к числам подставить 0 и 1, как сделать, подскажите, вот, собственно, код:
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
#include<iostream>
#include <cstdlib>
using namespace std;
 
int index(char ch, char* symbols, int size) // Кол-во повторений
{
    for (int i = 0; i < size; ++i)
    {
        if (ch == symbols[i])
            return i;
        else
            continue;
    }
    return -1;
}
 
int max(int size, int* freqs)      // Упорядочивает по убыванию
{
    int maxInt = 0;
    int index = 0;
    for (int i = 0; i < size; i++)
    {
        if (maxInt < freqs[i])
        {
            index = i;
            maxInt = freqs[i];
        }
    }
    return index;
}
 
 
int main()
{
    const int N = 255;
    const int M = 69;
    
    int frequencys[M] = { };  // пустой массив для заполнения таблицы частот
    char symbols[M] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', ' ', ',', '.', ':', ';', '!', '?', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'};
    char text[N]; // Обьявление массива под текст
    cout << "BBegute TekcT: " << endl;
    cin.getline(text, N);
    unsigned long kolvo = strlen(text);
    
    for (int i = 0; i < kolvo; i++)
    {
        int ind = index(text[i], symbols, M);
        if (ind!= -1)
            ++frequencys[ind];
    }
    
    for (int i = 0; i < M; i++)
    {
        int result = max(M, frequencys);
        if(frequencys[result] == 0)
            break;
        cout << symbols[result] << " - " << frequencys[result] << endl;
        frequencys[result] = 0;
    }
    
    system("pause");
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.09.2014, 22:08
Ответы с готовыми решениями:

Реализация алгоритма кодирования Шеннона-Фано
задание: реализовать алгоритм кодирования Шеннона-Фано, ввести строку символов, на выходе получить таблицу&quot;символ, вероятность, код...

Шеннон-Фано
Помогите пожалуйста, дали курсовую, неделю не могу сделать уже. В кратце: 1. Посчитать сколько раз встречается каждый символ в...

Шеннон-Фано
Вопрос будет о методе сжатия изображения(bmp) методом Шеннона-Фано. Допустим я записываю значение, вероятность появления и битовый код в...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.09.2014, 22:08
Помогаю со студенческими работами здесь

Шеннон-Фано, зацикливается программа
В чем косяк? почему то зацикливается и все, хз даже что делать, перепробывал все :( #include &lt;iostream&gt; #include...

Реализация алгоритма
помогите пожалуйсто написать программу: 1. Реализовать алгоритм Insertion-Sort (сортировка вставками) и Merge-Sort (сортировка слиянием)...

Реализация алгоритма
Смотрите, есть функция для рисования сегмента круга: pieslice(int x, int y, int start, int end, int radius) - int start и int ende угол...

Реализация алгоритма RLE
Есть задачка, надо реализовать две функции &quot;закодировать&quot; и &quot;раскодировать&quot; массив данных типа: char mass =...

Реализация алгоритма Мандельброта
Знаю, этим уже давно никого не удивить, но я еще раз решил почтить память Бенуа Мандельброта простой коонсльной программой с реализацией...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru