Программная реализация алгоритма закрытого хэширования

Автор работы: Пользователь скрыл имя, 14 Февраля 2013 в 00:30, курсовая работа

Краткое описание

Цель курсовой работы рассмотреть закрытое хеширование, основные виды хеш-функций и некоторые их модификации, проблемы удаления элементов из хеш-таблицы, а также некоторые варианты применения хеширования.
Объектом исследования являются алгоритмы хэширования.
Предметом является программная реализация алгоритма хэширования.
Для достижения цели исследования поставим перед собой следующие задачи:
-рассмотреть закрытое хэширование;
-охарактеризовать основные понятия хэширования;
-разработать программную реализацию алгоритма закрытого хэширования.

Прикрепленные файлы: 1 файл

Закрытое хеширование.doc

— 241.00 Кб (Скачать документ)

5.2. Программа должна  включать справочную информацию  о работе и подсказки пользователю.

5.3.В состав сопровождающей  документации должны входить:

5.3.1.Руководство системного  программиста.

5.3.2.Руководство пользователя.

5.3.3. Схемы программных  модулей.

5.3.4.Формы интерфейса  пользователя.

 

 

 

 

 

 

 

 

Приложение 2

Программная реализация закрытого хеширования

program hash;

uses

crt;

const

empty = -1;

deleted = -2;

B = 200;

type

TDictionary = array[1..(B - 1)] of integer;

{===================================================}

{хеш - функция}

function h(x : integer) : byte;

begin

h := x mod B;

end;

{===================================================}

procedure clearHash(var A : TDictionary);

var

i : byte;

begin

for i := 1 to (B - 1) do

begin

A[i] := empty;

end;

end;

{===================================================}

function locate(x : integer; A : TDictionary) : integer;

var

initial : integer;

i : integer;

begin

initial := h(x);

i := 0;

while((i < B) and (A[(initial + i) mod B] <> x) and (A[(initial + i) mod B] <> empty)) do

begin

inc(i);

end;

locate := (initial + i) mod B;

end;

{===================================================}

function locate_1(x : integer; A : TDictionary) : integer;

var

initial : integer;

i : integer;

begin

initial := h(x);

i := 0;

while((i < B) and

(A[(initial + i) mod B] <> x) and

(A[(initial + i) mod B] <> empty) and

(A[(initial + i) mod B] <> deleted)) do

begin

inc(i);

end;

locate_1 := (initial + i) mod B;

end;

{===================================================}

{проверяем наличие элемента в словаре}

function exists(x : integer; var A : TDictionary) : boolean;

begin

exists := (A[locate(x, A)] = x)

end;

{===================================================}

{как для множеств}

procedure include(x : integer; var A : TDictionary);

var

bucket : integer;

begin

if(A[locate(x, A)] = x) then

begin

exit;

end;

bucket := locate_1(x, A);

if((A[bucket] = empty) or (A[bucket] = deleted)) then

begin

A[bucket] := x;

end

else

begin

writeln('Set is full!!!');

end;

end;

{===================================================}

{аналогично множествам}

procedure exclude(x : integer; var A : TDictionary);

var

bucket : integer;

begin

bucket := locate(x, A);

if(A[locate(x, A)] = x) then

begin

A[bucket] := deleted;

end;

end;

{===================================================}

var

A : TDictionary;

i : integer;

value : integer;

begin

clrscr;

clearHash(A);

for i := 1 to 150 do

begin

value := random(B) + 1;

write(value:3, ' ');

include(value, A);

if(i mod 16 = 0) then

begin

writeln;

end;

end;

for i := 0 to (B - 1) do

begin

if(exists(i, A)) then

begin

write(i, ' ');

end;

if(i mod 16 = 0) then

begin

writeln;

end;

end;

readln;

end.


Информация о работе Программная реализация алгоритма закрытого хэширования