Типы программирования, программирование, языки программирования, книги программирование На сайте представлена информация про программирование в Интернете и работу  

Заблокировать доступ к принтеру или модему, Заблокировать доступ к принтеру или моде
COM порт передача данных
Содержимое Table скинуть в Excel 2003, Delphi 7 (пример из фака не пашет)
Application, ошибка при содании
Контекстное меню к файлу, как вызвать?
Excel protect, и delphi
Автоподбор ширины, через СOM
Com-объект Oper'ы
отображаются компоненты
excel, данные
Как из дельфи кинуть данные в новый doc-файл..., ... в таблицу + заголовки столбцов..
Открытие файла из формы Delphi, Как?
Чтение значения реестра...
Дайте <HEAD>!, TWebBrowser
EOleException
Персональный мини Excel
Возможно ли получить доступ к Таблице в html файле
sharemem
TWebBrowser: доступ к не-HTML элементам
Как создать TWebBrowser в ран-тайм?
WebBrowser frozen..., как оживить
Работа с Word из Консоли...
старт ole server
Как отслеживать изменение файла?, отлов update файла на сетке
Проблемы с локальным COM сервером
Оцените код, для сосздания/удаления COM-объекта
*.TLB
Проблемы с установкой OCX компонента
guid
Просмотр документа Word
Сохранить в вордовский файл из DBEdit
Как Вы относитесь к курящим девушкам?
Проблемка с загрузкой инфы в OLEContainer, Неопознанная ошибка
как задать Feature.Name, MapInfo MapX 5.0
ListView
Операции с таблицей Excel, по технологии СОМ
Создание вертикальных заголовков в Excel, Использование технологии СОМ
OLEContainer и DOC, Показывается только первая страница :(
Компонент TWordApplication, Как пронумеровать страницы ???
Microsoft Word, открыть файл
Delphi & Exсel, Взаимодействие
Сохраняю оле контейнер, как избавиться от OLE headera
Office 97, Создание Add-In для Outlook 97/98
передача страницы из TWebBrowser в MS WORD
Как попроще подключить Ассеss через ADO, Банально, но в DRKB непонятно написано
Работа с Wordовскими файлами, Как прочитать файл с расширением doc
Как Вы относитесь к курящим девушкам?
Помощь программистам на Pascal, Компиляторы, русификация, литература
Проект lazarus, Всем паскалистам предлагаю взглянуть
Предлагаем темы для FAQ, точнее сами статьи
Составление БД выражений Pascal, Проект "Межъязыковый словарь"
поиск минимальной траектории
Взаимодействие программных МОДУЛЕЙ(теория), Защитить реферат на тему мод.прог.
Многозадачность в Паскале
Помогите разобраться с if... then-ом, почему то не работает
Проблема с тетрисом
Работа с MailSlots, Подкинте примерчик?
Помогите С поиском в Глубину!!!!
Автостоянка, Поиск размещения макс. кол-ва авто
Turbo Vision
Помогите решить задачу по Паскалю!!!, Нужно решить позарез!!!
Очень сложная задача, Помогите
SetActivePage, :(
Сортировка Шелла
Факториалы, Кто хочет вспомнить школу?
Сортировка на компонетном Паскале, Сортировка Binary Insertion на BlackBox
Помогите..., ...с изучением паскаля
Возведение в произвольную степень., Требуется алгоритм или процедура.
D G, Delphi games
Моделирование системы передачи сигналов.

Платные хостинги     Раскрутка сайта     Книги по программированию


Моделирование системы передачи сигналов.

Только здесь 1000 посетителей на Ваш сайт всего за 3 у.е.!

- Ребята помогите кто нибудь написать комментарии к проге ... в универе достал готовую прогуи никак немогу в ней разобраться ... если кому не сложно помогите ... завтра вечером сдаватьа как не знаю В общем прога по предмету "Теория информации и кодирования" <<Цель работы : Моделирование системы передачи сигналов.Задание. Написать программу, моделирующую работу системы передачи сигналов. Сообщения источни-ка кодируются (сжимается) кодером источника (кодирование Хаффмена), затем кодером канала добавля-ется избыточность, необходимая для обнаружения и исправления независимой одиночной ошибки (ко-дирование по Хеммингу), которая вносится в сообщение при прохождении через канал ( белый шум). Декодер канала исправляет ошибки и декодирует сообщение (удаляет проверочные символы). Декодер приемника восстанавливает принятое сообщение. >>Код {Лабораторная работа №5}program lab_05;var stroka: string[100]; stroka_z,symb,stroka_r,stroka_b,stroka_fc,symb_5,symb_6,symb_7: string; stroka_ac,place,stroka_rz:string; bukv: array[1..50] of char; {Массив, в котором находятся буквы} kod: array[1..50,1..2] of string; {Массив, в кот. хранятся коды Хаффмана} {Перв. строка - буферная  Вторая - основная} vero: array[1..50,1..50] of longint; {Массив, в котором преобразуются вероятности} bait:array[1..50] of string; i,k,ind,l,ind2,len_bukv,prov,dobav:integer; posl2:longint;{Функция преобразования строкового типа в целочисленный}function value(st: string):integer;var I,Code:integer;begin  Val(st, I, Code);  if code = 0 then value:=I;  if code<>0 then value:=0;end;(* Подпрограмма канала *)function chanel(s1:string) : string;var poz: integer;begin {выбор случайным образом количества ошибок} poz:=random(6)+1; if s1[poz]='1' then s1[poz]:='0' else s1[poz]:='1'; chanel:=s1;end;{Функция преобразования двоичного числа в десятичное}function bin2dec(s: string): integer;var razm,i,k,index: integer;    y: char;    vv,chislo: integer;begin razm:=length(s); index:=2; vv:=0; chislo:=0; for i:=razm downto 1 do  begin   if (i=razm) and (s[i]='1') then chislo:=1;   if (i=razm-1) and (s[i]='1') then chislo:=2;   if (i<(razm-1)) and (s[i]='1') then     begin      chislo:=1;      for k:=1 to index do chislo:=chislo*2;     end;   vv:=vv+chislo;   if i<(razm-1) then index:=index+1;   chislo:=0;  end; bin2dec:=vv;end;BEGINwrite('Введите строку: '); readln(stroka);{Блок получения неравномерного кода Хаффмана}{Поиск всех вероятных букв в сообщении}bukv[1]:=stroka[1];ind:=2;l:=0;for i:=2 to length(stroka) do begin  for k:=1 to ind do     if bukv[k]=stroka[i] then inc(l);  if l=0 then begin bukv[ind]:=stroka[i]; inc(ind); end;  l:=0; end;dec(ind);{Просчет вероятностей}for i:=1 to length(stroka) do  for k:=1 to ind do    if stroka[i]=bukv[k] then begin vero[1,k]:=vero[1,k]+1;                                          break;                                    end;for i:=1 to ind do{ vero[1,i]:=round((vero[1,i]/length(stroka))*1000);}{ind - индекс столбца .. .. .. .. ..}ind2:=2; {Индекс строки  ..                         ..                         ..}l:=ind;len_bukv:=ind;while ind>2 dobeginposl2:=vero[ind2-1,ind]+vero[ind2-1,ind-1]; {складываем 2 последних элемента}k:=1;for i:=1 to ind-1 do begin  if vero[ind2-1,k]>posl2 then    begin vero[ind2,i]:=vero[ind2-1,k]; inc(k); end    else begin vero[ind2,i]:=posl2;               posl2:=-1;         end; end;inc(ind2);dec(ind);end;dec(ind2);writeln;writeln(' Матрица вероятностей: ');writeln;write(' ');for k:=1 to l do write('  ',bukv[k],'   ');writeln;writeln;for k:=1 to ind2 do begin for i:=1 to l do  write(' ',(vero[k,i]/length(stroka)):3:3); writeln; readln; dec(l);end;{------------------------------------------------------------------------}{Блок Распределения кодов (0 и 1)}if vero[ind2,1]>=vero[ind2,2] then begin kod[1,1]:='0'; kod[2,1]:='1'; end else  begin kod[1,1]:='1'; kod[2,1]:='0'; end;kod[1,2]:=kod[1,1]; kod[2,2]:=kod[2,1];while (ind<len_bukv) and (ind2>1) dobegin{------------------------------------------------------------------}{Нахождение вероятности, кот. явл. суммой двух последних предыдущих  вероятностей}{2- осн. строка, 1 - буферная}for i:=1 to ind do if vero[ind2,i]=vero[ind2-1,ind]+vero[ind2-1,ind+1] then    begin     kod[ind+1,1]:=kod[i,2];     kod[ind,1]:=kod[i,2];     prov:=i;     break;    end;{------------------------------------------------------------------------}{Блок просмотра вероятностей поединично}k:=1;for i:=1 to ind do  if i<>prov then begin  kod[k,1]:=kod[i,2];  inc(k); end;{Блок просмотра двух последних элементов}{if (ind+1<len_bukv) and ((ind2-1)>1) then} if vero[ind2-1,ind]>=vero[ind2-1,ind+1] then begin  kod[ind,1]:=kod[prov,2];  kod[ind,1]:=kod[ind,1]+'0';  kod[ind+1,1]:=kod[prov,2];  kod[ind+1,1]:=kod[ind+1,1]+'1'; end else  begin  kod[1,ind]:=kod[prov,2];  kod[1,ind]:=kod[ind,1]+'1';  kod[1,ind+1]:=kod[prov,2];  kod[1,ind+1]:=kod[ind+1,1]+'0';  end;for i:=1 to ind+1 do begin kod[i,2]:=kod[i,1]; kod[i,1]:=''; end;dec(ind2);inc(ind);end;for k:=1 to len_bukv do begin write(kod[k,2],'      '); end;{Кодировка}for k:=1 to length(stroka) do    begin    symb:=stroka[k];    for i:=1 to 50 do    if bukv[i]=symb then begin stroka_z:=stroka_z+kod[i,2]; break; end;    end;writeln;writeln;write('Закодированная строка: ',stroka_z);{Разбиение на байты}stroka_b:=stroka_z;i:=1;while stroka_b<>'' do begin  bait[i]:=copy(stroka_b,1,8);  delete(stroka_b,1,8);  inc(i); end;dec(i);if length(bait[i])<8 then begin dobav:=8-length(bait[i]); bait[i]:=bait[i]+copy('00000000',1,8-length(bait[i])); end;writeln;{Строка, разбитая на байты}write('Строка, разбитая на байты: ');k:=1;stroka_z:='';while k<=i do begin write(bait[k],'    '); stroka_z:=stroka_z+bait[k]; inc(k); end;writeln;{Кодирование по методу Хейминга}stroka_fc:='';while stroka_z<>'' do begin  stroka_fc:=stroka_fc+copy(stroka_z,1,4);  {5-ый символ}  l:=value(stroka_z[2])+value(stroka_z[3])+value(stroka_z[4]);  if (l mod 2)<>0 then symb_5:='1' else symb_5:='0';  {6-ый символ}  l:=value(stroka_z[1])+value(stroka_z[3])+value(stroka_z[4]);  if (l mod 2)<>0 then symb_6:='1' else symb_6:='0';  {7-ый символ}  l:=value(stroka_z[1])+value(stroka_z[2])+value(stroka_z[4]);  if (l mod 2)<>0 then symb_7:='1' else symb_7:='0';  stroka_fc:=stroka_fc+symb_5+symb_6+symb_7+'0';  delete(stroka_z,1,4); end;writeln('Строка, для пропускания в канал: ',stroka_fc);stroka_b:=stroka_fc;stroka_fc:='';symb:='';while stroka_b<>'' do begin symb:=copy(stroka_b,1,8); randomize; symb:=chanel(symb); stroka_fc:=stroka_fc+symb; delete(stroka_b,1,8); symb:=''; end;writeln('Строка, после канала:            ',stroka_fc);stroka_ac:='';{исправление ошибок по методу Хейминга}stroka_fc:=stroka_fc+'9999';while stroka_fc<>'9999' do begin  symb:=copy(stroka_fc,1,8);  place:='';  {1-ая сумма}  l:=value(symb[4])+value(symb[5])+value(symb[6])+value(symb[7]);  if (l mod 2)<>0 then place:=place+'1' else place:=place+'0';  {2-ая сумма}  l:=value(symb[2])+value(symb[3])+value(symb[6])+value(symb[7]);  if (l mod 2)<>0 then place:=place+'1' else place:=place+'0';  {3-ья сумма}  l:=value(symb[1])+value(symb[3])+value(symb[5])+value(symb[7]);  if (l mod 2)<>0 then place:=place+'1' else place:=place+'0';  {place - позиция ошибки, записанная в двоичном виде}  if bin2dec(place)<>0 then    if symb[bin2dec(place)]='1' then symb[bin2dec(place)]:='0'     else symb[bin2dec(place)]:='1';  delete(stroka_fc,1,8);  stroka_ac:=stroka_ac+symb;  symb:=''; end;writeln('Исправленная строка:             ',stroka_ac);stroka_r:='';while stroka_ac<>'' do begin  stroka_r:=stroka_r+copy(stroka_ac,1,4);  delete(stroka_ac,1,8); end;writeln;writeln('Полученная строка: ',stroka_r);delete(stroka_r,length(stroka_r)-dobav+1,dobav);writeln('Строка для раскодировки: ',stroka_r);symb:='';stroka_rz:='';for i:=1 to length(stroka_r) do begin  symb:=symb+stroka_r[i];  for k:=1 to 50 do  if kod[k,2]=symb then begin stroka_rz:=stroka_rz+bukv[k]; symb:=''; break; end; end;writeln('Полученная строка: ',stroka_rz);readln;END.highlightSyntax('delphiTI2MmI','delphi');

Интернет казино     Онлайн игры     Увеличение члена     Купить DVD


Главная страница | программирование 1с учебник | программирование сотовых | офшорное программирование | примеры линейное программирование | анализ программирование | программирование делфи | cgi программирование | программирование atmel | школа программирования | типы программирования | практика программирования | программирование autocad | программирование профессиональное | обзор языков программирования | среда программирования delphi | задачи целочисленного программирования | характеристика языка программирования | стиль программирования | постановка задачи программирование | программирование серверов | программирование диплом скачать | применение программирования | Ссылки

Все про практика программирования