0 / 0 / 0
Регистрация: 31.01.2014
Сообщений: 6

Кодирование методом Хаффмана и Фано

31.01.2014, 12:54. Показов 3253. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, не выполнить задание,
Написать программу, которая осуществляет кодирование введенного текста методом Фано и Хаффмана
Текст кодировать я могу, на бумаге, а вот составить программу не получается, буду благодарен если поможете.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.01.2014, 12:54
Ответы с готовыми решениями:

Кодирование методом Шеннона-Фано и Хаффмана
Добрый день уважаемые форумчане, не могу выполнить задание по дискретной математике, нужно написать программу которая будет кодировать...

Кодирование методом Хаффмана
Создать программу методом хакмана. Я не понимаю как. Помогите пожалуйста.:cry:

Кодирование методом Хаффмана
Написать программу, которая осуществляет кодирование Вашей фамилии, имени и отчества методом Хаффмена

2
 Аватар для dimabubyakin
161 / 122 / 85
Регистрация: 16.10.2013
Сообщений: 1,738
08.02.2014, 12:22
Лучший ответ Сообщение было отмечено SM 13 1 как решение

Решение

Фано
Pascal
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
uses crt;
type
  mas=array[1..100]of real;
  var tex:text;
      s:array[1..10000]of char;
      sum,tmp:real;
      i,j,n:byte;
      a,kl:array[1..100]of integer;
      p:array[1..100]of real;
      c:array[1..50,1..50] of 0..1;
      kol:integer;
      bol:boolean;
  function delen(b,e:byte):byte;
  var i,m:byte;
      sb,se,d:real;
  begin
   sb:=0;
         for i:=b to e-1 do
             sb:=sb+p[i];
    se:=p[e];
    m:=e;
    repeat
         d:=sb-se;
         m:=m-1;
         sb:=sb-p[m];
         se:=se+p[m];
    until abs(sb-se)>=d;
    delen:=m;
  end;
  procedure fano(b,e,k:byte);
  var m,i:byte;
  begin
     if e>b then
      begin
           inc(k);
           m:=delen(b,e);
           for i:=b to e do
               if i>m then begin c[i,k]:=1; inc(kl[i]); end
               else begin c[i,k]:=0; inc(kl[i]); end;
           fano(b,m,k);
           fano(m+1,e,k);
      end;
  end;
  procedure cena_kod;
  var kod:real;i:integer;
  begin
   kod:=0;
   for i:=1 to n do kod:=kod+kl[i]*p[i] ;
   writeln;
   write('cena koda: ',kod:4:3);
  end;
  procedure fail;
  var t,l:boolean;
      d:integer;
      i,j,h,k:integer;
  begin
   k:=1;
   n:=0;
   kol:=0;
   assign(tex,'222.txt');
   reset(tex);
   while not Eoln(tex)do
     begin
      inc(kol);
      read(tex,s[kol]);
     end;
  writeln('Кол-во символов:',kol);
   while not Eoln(tex) do
     for i:=1 to kol do read(tex,s[i]);
   for i:=1 to kol do
   begin
     for j:=i to kol do
       begin
        t:=true;
        for h:=1 to i-1 do
          if (s[i]=s[i-h]) then
                                begin
                                 t:=false;
                                 break;
                                end
                             else t:=true;
    if (s[i]=s[j])and(t=true) then  a[k]:=a[k]+1;
   end;
   inc(k);
  end;
  close(tex);
  for i:=1 to kol do  write(s[i],' ');
  writeln;
  for k:=1 to kol do   write(a[k],' ');
  for k:=1 to kol do
     if a[k]<>0 then n:=n+1;
  i:=1;
  for k:=1 to kol do
    if a[k]<>0 then
     begin
      a[i]:=a[k];
      inc(i);
     end;
  while  l do
   begin
    l:=false;
    for i:=1 to n-1 do
     if a[i]<a[i+1] then
      begin
       d:=a[i+1];
       a[i+1]:=a[i] ;
       a[i]:=d;
       l:=true;
      end;
   end;
  writeln;
  end;
  begin
  clrscr;
  fail;
  sum:=0;
  for i:=1 to n do
    begin
     p[i]:=a[i]/kol;
     sum:=sum+p[i];
    end; 
  repeat
     bol:=false;
     for i:=1 to n-1 do
          if p[i]<p[i+1] then
                         begin
                         bol:=true;
                         tmp:=p[i];
                         p[i]:=p[i+1];
                         p[i+1]:=tmp;    
                         end;
until bol=false;
  for i:=1 to n do writeln('p[',i:2,']=  ',p[i]:4:3);
   writeln;
      fano(1,n,0);
      for i:=1 to n do
       begin
          for j:=1 to kl[i] do write(c[i,j]);
          writeln;
       end;
  cena_kod;
  readkey;
  end.
2
0 / 0 / 0
Регистрация: 06.03.2014
Сообщений: 1
06.03.2014, 21:03
Тема еще актуальна?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.03.2014, 21:03
Помогаю со студенческими работами здесь

. Выполнить кодирование и декодирование русскоязычного текста методом Хаффмана
Выполнить кодирование и декодирование русскоязычного текста методом Хаффмана. MatLab Добавлено через 15 часов 11 минут спасибо)

Закодировать алфавит методом Шеннона-Фано и Хаффмана
Нужно закодировать алфавит K = {k1, k2, k3, k4, k5} двоичным кодом, если вероятности букв следующие: p(k1) = 0.05 p(k2) = 0.5 p(k3) =...

Кодирование методом Шеннона-Фано
Добрый день! Нужно доработать программу: #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { string...

Кодирование фразы Методом Шеннона-фано и Хаффмена
Привет всем)))) помогите мне написать программу,пожалуйста)))) мне необходимо написать программу на языке Visual Basic for...

Кодирование методом Хаффмана
Составить программу, которая кодирует и сжимает текст простым методом Хаффмана


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru