Результаты тестирования приложения на разных объемах данных




 

Результат тестирования программы.

 


 

 

 


 

Анализ работы алгоритма LZ77 и выводы

Рис. 6.1. График зависимости количества сравнений от количества элементов

Из данного графика видно, что увеличение количества элементов ведет к увеличению количества сравнений. Количество сравнений можно посчитать по формуле , где n - количество элементов.

В результате проделанной работы было изучено большое количество литературы, рассмотрены несколько алгоритмов сжатия. Написана программа для сжатия данных по алгоритму Лемпела-Зива LZ77.

 


Список использованных источников

 

1. Дж. Бакнел «Фундаментальные алгоритмы и структуры данных в Delphi»- СПб: ООО «ДиаСофтЮП», 2003.-560 с.

. Д. Хопкрофт «Структуры данных и алгоритмы» Д. Хопкрофт: Уч.пос.- М.:“Вильямс”, 2000.

. Н.Вирт «Алгоритмы и структуры данных.» Н.Вирт.М.: Мир, 1989.,87с.

. В.В.Фаронов « Delphi. Программирование на языке высокого уровня: Учебник для вузов» В.В.Фаронов.: Питер,2009

. Д. Райли «Абстракция и структуры данных». Вводный курс. Д. Райли - М.: Мир, 1993 г.

 


Приложение

 

unitUmain;,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,,StdCtrls,ComCtrls,ExtDlgs;=class(TForm):TButton;:TEdit;:TListBox;:TListBox;:TListBox;:TEdit;:TEdit;:TUpDown;:TUpDown;:TButton;:TButton;:TMemo;:TButton;:TButton;Click(Sender:TObject);Click(Sender:TObject);Click(Sender:TObject);Click(Sender:TObject);Click(Sender:TObject);

{Privatedeclarations}

{Publicdeclarations};:TForm1;,st,slov,buff:string;,sizebf,sizesl,ind,shft:integer;

{$R*.dfm}.Button1Click(Sender:TObject);,temp:integer;:string;(x,y:string):byte;//определяемдлинусовпадения,j,k:integer;:=pos(y[1],x);:=1;:=2;:=ktosizebfdo[i]=y[j+1]then(j);(result);;(result);;(varx,y:string;n:integer);//заполняемсловарьснова,j,delta:integer;+length(x)<=sizeslthen//есливловарьможнодописатьтопишем12345придлине7->1234567:=1tondo:=x+y[i]:=n+length(x)-sizesl;//определяемсколькосимволоввыталкиваем:=1tosizesl-deltado[i]:=x[i+delta];//передвигаемвсебуквынадлинусмещения12345сосдвигом2-->345:=1;:=length(x)-delta+1tosizesldo

begin[i]:=y[j];//дописываемизбуфера

inc(j);;;

//;(varx:string;m:integer);,j:integer;:=1tolength(x)-mdo

x[i]:=x[i+m];//выталкиваемпроверенныебуквы:=length(x);(x,j-m);//устанавливаемновуюдлину

i:=length(x)+1;(i<=sizebf)and(ind<length(st))do

begin//еслистроканезакончиласьибуфернеполон

x:=x+st[ind+1];

inc(i);inc(ind);;

//;.Clear;.Clear;.Clear;:=Str.Text;:=StrToInt(Edit1.Text);:=StrToInt(Edit2.Text);:='';:='';:=1;:=1tosizebfdo:=buff+st[i];:=sizebf;.Items.Add(buff);.Items.Add(slov);<>''do(slov='')or((ind=length(st))and(length(buff)=1))then//еслипоследняябукваилисловарьещепуст:=slov+buff[1];.Items.Add('<'+'0'+','+'0'+','+buff[1]+'>');(buff,1);(buff[1],slov)<>0then:=pos(buff[1],slov)-length(slov);;:=GetCount(buff,slov);:=buff[shft];(slov,buff,shft);(buff,shft);.Items.Add('<'+inttostr(sizesl+temp)+','+inttostr(shft-1)+','+s+'>');(slov,buff,1);.Items.Add('<'+'0'+','+'0'+','+buff[1]+'>');(buff,1);;;:=0;<>''then.Items.Add(buff);.Items.Add(slov);;;('Готово!');;.Button2Click(Sender:TObject);.text:='';.items.clear;.Items.Clear;.Items.Clear;;.Button4Click(Sender:TObject);;;.Button3Click(Sender:TObject);:TOpenDialog;:TextFile;,s:string;.Clear;.Lines.Add('');:=TOpenDialog.Create(self);.InitialDir:=GetCurrentDir;

//Тольк оразрешенные существующие файлымогут быть выбраны

openDialog.Options:=[ofFileMustExist];

//Разрешеновыбратьтолько.txtфайлы.Filter:=

'TextFiles|*.txt';

//Показдиалоготкрытияфайла.Execute('File:'+openDialog.FileName);:=openDialog.FileName;(Tekst,FilePass);(Tekst);(Tekst)do(Tekst,s);.Lines.Add(s);;.Lines.Delete(0);

elseShowMessage('Открытие файла остановлено');

Str.Text:=memo1.Text;;.Button5Click(Sender:TObject);:TSaveDialog;:=TSaveDialog.Create(self);.InitialDir:=GetCurrentDir;.Options:=[ofFileMustExist];.Filter:='TextFiles|*.txt';.Execute.Items.SaveToFile(SaveDialog.FileName+'.txt');('File:'+SaveDialog.FileName);('Сохранение файла остановлено');;.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-04-01 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: