Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2012, 23:06   #1
Рустам_IMAN
 
Регистрация: 14.03.2012
Сообщений: 4
Восклицание Расстановка комментариев

Ребята помогите пожалуйста расставить комментарии....буду весьма благодарен.... места установки комментария обозначенны цифрами.....всего 14 шт.....помогите!!! оч надо

Код:
program Shennon_Fano;
{Создание кодовой таблицы сжатия информации методом Шеннона-Фэно}

type
  sim = record
    a: byte;
    w: real;
    kod: string
  end;

var
  S: array [1..256] of sim;
  I, K, L: integer;
  H, J: Real;
  Name: string;
  Dan, Rez: Text;

{1 }
procedure S_F(Beg, En: integer);
var
  R, P: Real;
  M, N: integer;
begin
  if Beg < En then
  begin
    
    {2 }
    R := 0;
    for M := Beg to En do R := R + S[M].w;
    
    R := R / 2; {3 }
  
    {4 }
    N := beg; P := 0;
    repeat
      P := P + S[N].w;
      inc(N)
    until (P > R);
    dec(N);
  
    if N > Beg then
      if abs(P - R) > abs(P - R - S[N].w) then dec(N); {5 }
  
    {6 }
    for M := Beg to N do S[M].kod := S[M].kod + '0';
    for M := N + 1 to En do S[M].kod := S[M].kod + '1';
  
    if Beg < En then
    begin
      S_F(Beg, N); {7 }
      S_F(N + 1, En) {8 }
    end;
    
  end
  
end;{S_F}


begin
  Write('Введите имя файла с частотной таблицей -> ');
  Readln(Name);
  Assign(Dan, Name); Reset(Dan);
  Name := Copy(Name, 1, pos('.', Name)) + 'Cod'; {9 }
  Assign(Rez, Name); Rewrite(Rez);
  
  {10 }
  Readln(Dan, Name); 
  WriteLn(Rez, Name);
  Readln(Dan, L); Writeln(Rez, L);
  Readln(Dan); Writeln(Rez);
  
  {11 }
  K := 0;
  repeat
    inc(K); Readln(Dan, S[K].a, S[K].w);
    S[K].kod := ''
  until eoln(Dan);
  Readln(Dan); Readln(Dan, H);
  Close(Dan);
  
  S_F(1, K); {12 }
  
  {13 }
  J := 0;
  for I := 1 to K do 
  begin
    Writeln(Rez, S[I].a, #9, S[I].kod);
    J := J + length(S[I].kod) * S[I].w
  end;
  
  {14 }
  Writeln(Rez);
  Writeln(Rez, J);
  Writeln(Rez, H);
  
  Close(Rez)
  
end.

Последний раз редактировалось Рустам_IMAN; 15.03.2012 в 22:08. Причина: Неточность
Рустам_IMAN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расстановка чисел Defunate C# (си шарп) 10 20.11.2011 16:11
Добавление комментариев Amen PHP 9 20.10.2009 19:34
Расстановка Табуляции B00lean Microsoft Office Word 1 22.03.2009 18:10
(+,-,*,/)Расстановка знаков МаксимNEWProgramm Паскаль, Turbo Pascal, PascalABC.NET 5 17.04.2008 17:04