Основы кодирования

Методы кодирования Шеннона-Фано и Хаффмана. Способы переведения числа в прямом и обратном порядке в двоичную, восьмеричную, шестнадцатеричную системы исчисления. Произведение сложения и вычитания полученных значений. Линейные вычислительные процессы.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 08.06.2017
Размер файла 3,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

1. Кодирование Шеннона - Фано Закодировать свою Фамилию имя очество кодом Шеннона - Фано с мощностью кода 4

Решение:

Кодируемая строка: Попов Андрей Сергеевич Длина строки 21 символ.

Буква

Вероятность

Шаг 1

Шаг 2

Шаг З

Итог

Е

4/21

0

0

00

П

2 /21

1

0

10

О

2/21

1

11

В

space

2/21

2/21

2

З

12

13

Р

2/21

2

0

20

А

1/21

1

21

н

1/21

2

22

Д

1 /21

3

23

Й

1/21

3

0

30

С

1/21

1

31

г

1/21

З

2

32

и

1/21

3

33

Ч

1/21

4

0

40

Суммарная вероятность равна 21/4=5

Шифр строки:

П о п о в А н д р е й С е р г е е в и ч

10 11 10 11 12 13 21 22 23 20 00 30 13 31 00 20 32 00 00 12 33 10

2. Кодирование Хаффмана Закодировать свою фамилию имя отчество кодом Хаффмана с мощностью 4.

Решение:

Кодируемая строка: Попов Андрей Сергеевич Длина строки 21 символ

Таблица шифра:

Буква

Вероятность

код

шаг 1

код

шаг 2

код

шаг 3

код

шаг 4

код

е

4/22

3

4/22

3

6/22

2

6/22

1

6/22

0

п

2/22

00

2/22

00

4/22

3

4/22

2

16/22

1

о

2/22

01

2/22

01

4/22

00

8/22

3

в

2/22

02

2/22

02

4/22

01

8/22

00

_

2/22

03

2/22

03

4/22

02

8/22

01

Р

2/22

10

2/22

10

4/22

03

а

1/22

11

2/22

11

4/22

10

н

1/22

12

2/22

12

4/22

11

д

1/22

13

2/22

13

й

1/22

20

2/22

20

с

1/22

21

2/22

21

г

1/22

22

и

1/22

23

ч

1/22

100

Шифр строки:

Попов Андрей Сергеевич

0001000120311121310320032131022330223100

3. Системы исчисления Номер студенческого билета(последние 4 цифры) в прямом и обратном порядке перевести в двоичную, восьмеричную, шестнадцатеричную. Произвести сложение и вычитание полученных значений.

Решение:

1919 : 2 =

959

1

959 : 2 =

479

1

479 : 2 =

239

1

239 : 2 =

119

1

119 : 2 =

59

1

59 : 2 =

29

1

29 : 2 =

14

1

14 : 2 =

7

0

7 : 2 =

3

1

3 : 2 =

1

1

Последние цифры студенческого билета: 1919 В прямом: 1919 В обратном: 9191

В двоичную систему исчисления:191910=111011111112

9191 : 2 =

4595

1

4595 : 2 =

2297

1

2297 : 2 =

1148

1

1148 : 2 =

574

0

574 : 2 =

287

0

287 : 2 =

143

1

143 : 2 =

71

1

71 : 2 =

35

1

35 : 2 =

17

1

17 : 2 =

8

1

8 : 2 =

4

0

4 : 2 =

2

0

2 :2 =

1

1

919110=100011111001112

В восьмеричную систему исчисления:

1919 : 8 =

239

7

239 : 8 =

29

7

29 : 8 =

3

5

191910=35778

9191 : 8 =

1148

7

1148 : 8 =

143

4

143 : 8 =

17

7

17 : 8 =

2

1

919110=217478

1919 : 16 =

119

15(F)

119 : 16 =

7

7

В шестнадцатеричную систему исчисления:

191910=77F16

9191 : 16 =

574

7

574 : 16 =

35

14(E)

35 : 16 =

2

3

919110=23E716

Сложение чисел:

Десятичное сложение: 191910 + 919110 = 1111010 Двоичное сложение: 111011111112 + 100011111001112=101011011001102 Восьмеричное сложение: 35778 + 217478 =255468 Шестнадцатеричное сложение: 77F16 + 23E716=2B6616

Вычитание чисел:

Десятичное вычитание: 919110 - 191910 = 727210 Двоичное вычитание: 100011111001112 - 111011111112= 11100011010002 Восьмеричное вычитание: 217478 - 35778 =161508 Шестнадцатеричное вычитание: 23E716 - 77F16 - =1C6816

4. Линейные вычислительные процессы Вычислить, упростив при помощи дополнительной переменной

кодирование исчисление вычислительный

Листинг программы на Паскаль:

program Task_4;

var

Rezultat: single;

A: single;

B: single;

C: Integer;

PromRes: single;

begin

Write('Введите значение A, B, C: '); Readln(A, B, C);

PromRes := (exp(C * ln(A))) / (sqr(B) + A * B + 1);

Rezultat := PromRes * ln(PromRes);

Writeln('Результат - ', Rezultat);

Writeln('press any key');

Readln;

end.

5. Простые разветвляющиеся вычислительные процессы 19. Определить превышает ли число x значение числа k, являющегося остатком от деления m на 7. Если превышает, то x уменьшить на k, в противном случае x увеличить в k раз.

Листинг программы на Паскаль:

program Task_5;

var

X:Integer;

K:Integer;

M: Integer;

begin

Write('Введите целые числа Х, M: ');

Readln (X, M);

K := m mod 7;

if X > k then

begin

X := X - k;

writeln('X > К');

end

else

begin

X := X * K;

writeln('X < K:');

end;

Writeln('X = ', X);

Readln;

end.

Листинг программы на Паскаль:

program Task_6;

var

A, B, C: Real;

Min1, Min2: Real;

D: Real;

begin

Writeln('Введите три любые числа: ');

Readln(A, B, C);

if ((a<b) and (a<c)) and (b<c) then

begin

writeln ('меньшие ', a,' и ',b);

Min1 := A;

Min2 := B;

end;

if ((a<b) and (a<c)) and (c<b) then

begin

writeln ('меньшие ', a,' и ',c) ;

min1 := A;

min2 := C;

end;

if ((c<a) and (c<b)) and (a<b) then

begin

writeln ('меньшие ', c,' и ',a);

min1 := C;

min2 := A;

end;

if ((c<b) and (c<a)) and (b<a) then

begin

writeln ('меньшие ', c,' и ',b) ;

min1 := C;

min2 := B;

end;

if ((b<c) and (b<c) and (c<a)) then

begin

writeln ('меньшие ', B,' и ',C);

min1 := C;

min2 := B;

end;

if ((b<a) and (b<c) and (a<c)) then

begin

writeln ('меньшие ', B,' и ',A);

min1 := A;

min2 := B;

end;

D := Min1 * Min2;

Writeln('Произведение двух наименьших чисел: ', D);

Readln;

end.

Процедура Formula:

Основной цикл:

Листинг программы на Паскаль:

program Task_7;

var

S: real;

n, k, I: Integer;

procedure formula(var n: integer);

begin

S := S + (Power(3, (n + 1)) / Power(n, 3));

end;

begin

S := 0;

Write('Введите верхний предел суммирования');Readln(k);

I := k;

for n := K downto 1 do

begin

formula(n);

end;

Writeln('Решение циклом FOR: ', S);

S := 0;

I := k;

while I >= 1 do

begin

formula(I);

I := I - 1;

end;

Writeln('Решение циклом while: ', S);

S := 0;

I := k;

repeat

formula(I);

I := I - 1;

until I < 1;

Writeln('Решение циклом repeat: ', S);

end.

procedure Init_Var; Procedure Rachet;

Листинг программы на Паскаль

program Tasr_8;

var

Sh, S: Real;

A, J, O: Integer;

const

I = 0.8;

Y = -3;

U = 8;

procedure Init_Var;

begin

J := 0;

S := 0;

Sh := Y;

end;

procedure Rachet;

begin

S := sqrt(abs(power(2, (A * Sh)) + sqr(Sh) + (A * Sh) - 3));

writeln('|', J:4, ' |', Sh:5:1, ' |', S:22:2, ' |');

Sh := Sh + I;

J := J + 1;

end;

begin

write(' Введите число А: ');Readln(A);

Init_Var;

while Sh <= U do

begin

Rachet;

end;

Init_Var;

repeat

Rachet;

until Sh > U;

Init_Var;

for O := 0 to 13 do

begin

Rachet;

end;

Readln;

end.

program Task_9;

const

a1 = 1;

a2 = 2;

a3 = 1;

var

stop: boolean;

arr: array of Real;

i: integer;

begin

Stop := false;

i := 4;

SetLength(Arr, i+1);

arr[1] := 1;

arr[2] := 2;

arr[3] := 1;

while stop = false do

begin

if arr[i - 3] <= 0 then Stop := True else

arr[i] := (Exp(-arr[i - 2]) + Exp(arr[i - 1])) / arr[i - 3];

if arr[i] >= 1 then

begin

i := i + 1;

SetLength(Arr, I + 1);

end

else

stop := true;

end;

Writeln('Количество первых членов, значение которых больше единицы:', i);

readln;

end.

Листинг программы на Паскаль

program massiv_10;

var

arr: array[1..13] of integer;

res_arr: array of Integer;

I, Ost, E, Ch, L: Integer;

begin

for I := 1 to 13 do

begin

write('Введите целые числа массива ', I, ' -> ');Readln(Ch);

Arr[I] := Ch;

end;

for I := 1 to 13 do

begin

E := arr[I];

ost := E mod I;

if ost = 0 then

begin

L := Length(Res_arr);

L := L + 1;

SetLength(res_arr, L );

res_arr[L - 1] := arr[I];

end;

end;

writeln('Всего найдено значений = ', L);

for I := 0 to L - 1 do

begin

write(res_arr[I], '; ');

end;

readln('press any key');

end.

procedure Output_mass;

program massiv_11;

var

Arr: array of integer;

N, I, Ch, Ost: Integer;

procedure Output_mass;

var

Y: integer;

begin

for Y := 0 to N - 1 do

begin

Writeln(Y:4, ' |', arr[Y]:17);

end;

end;

begin

write('Число знаков в массиве: ');Readln(N);

SetLength(Arr, N);

for I := 0 to N - 1 do

begin

write('Введите число массива №', I, '->');Readln(Ch);

arr[I] := Ch;

end;

writeln;

writeln('Массив заполненный без изменений');

Output_mass;

for I := 0 to N - 1 do

begin

ost := arr[I] mod 3;

if ost <> 0 then

begin

arr[I] := arr[I] + ost;

end;

end;

writeln('Массив изменённый');

Output_mass;

Readln;

end.

program massiv_12;

var

arr: array [1..3] of array [1..4] of integer;

I, Y, Ch, ost, Summ: Integer;

begin

Summ := 0;

for I := 1 to 3 do

for Y := 1 to 4 do

begin

Write('Введите число в ячейку массива ', I, ':', Y, ' -> ');Readln(Ch);

arr[I, Y] := Ch;

end;

Writeln('Рассчет массива');

for I := 1 to 3 do

for Y := 1 to 4 do

begin

ost := arr[I, Y] mod 3;

if ost <> 0 then

begin

Summ := Summ + ost;

end;

end;

Writeln('Сумма остатков от деления на 3 'не кратных элементов массива равна = ', Summ ');

readln;

end.

procedure Output_mass;

program massiv_13;

var

N, M, I, Y, Ch: Integer;

arr: array [,] of Integer;

procedure Output_mass;

var

A, B: Integer;

begin

for A := 0 to N - 1 do

for B := 0 to M - 1 do

begin

Writeln('|', A:2,':', B, ' |', arr[A, B]:6, ' |');

end;

end;

begin

Write('Введите размер массива N*M: ');Readln(N, M);

SetLength(Arr, N, M);

for I := 0 to N - 1 do

for Y := 0 to M - 1 do

begin

Write('Введите элемент массива ', I, ':', Y, ' -> ');Readln(Ch);

arr[I, Y] := Ch;

end;

writeln('Введенный вами массив');

Output_mass;

for I := 0 to N - 1 do

for Y := 0 to M - 1 do

begin

if sqr(arr[I, Y]) < 25 then

begin

arr[I, Y] *= 2;

end;

end;

writeln('Измененый массив');

Output_mass;

Readln;

end.

program Task_14;

var

F: file of real;

I: integer;

El: Real;

G: Real;

H: Real;

S: Real;

begin

I := 0;

S := 0;

// запись в файл данных

assign(F, 'f.dat');

Rewrite(F);

writeln('Вводите 13 чисел в файл, El: ');

for I := 1 to 13 do

begin

Write('Введите ', I, ' число: ');Readln(El);

Write(F, El);

end;

close(F);

// чтение из файла

assign(F, 'f.dat');

Reset(F);

while not Eof(F) do

begin

Read(F, El);

G := El * 4;

H := Sqr(El);

if G > H then S := S + El;

end;

Writeln('Сумма El*4 > Sqr(El): ', S);

Readln;

end.

Процедура PrintFile

Листинг программы на Паскаль

program Task_15;

var

F: file of Integer;

El: Integer;

Sz, Y: Integer;

Chetno: Integer;

SeredinaF: Integer;

Ed: Boolean;

Ed_t: string;

procedure PrinFile;

begin

while not Eof(F) do

begin

Read(F, El);

Write(El, ' ');

end;

end;

begin

Ed := true;

assign(F, 'F.dat');

Rewrite(F);

while Ed = true do

begin

write('Введите новое число в файл: ');Readln(El);

write('Если вы закончили ввод нажмите N: ');Readln(Ed_t);

if Ed_t = 'n' then Ed := false;

if Ed_t = 'N' then Ed := false;

Write(F, El);

end;

Close(F);

writeln('Данные файла до изменения');

assign(F, 'F.dat');

Reset(F);

PrinFile;

writeln;

Reset(F);

Sz := FileSize(F);

SeredinaF := (Sz div 2);

for Y := 0 to Sz - 1 do

begin

if Y < SeredinaF then

begin

Read(F, El);

end

else

begin

Read(F, El);

Chetno := El mod 4;

if Chetno = 0 then

begin

Seek(F, Y);

El := El div 4;

Write(F, El);

end;

end;

end;

Reset(F);

writeln('Данные файла после изменения');

PrinFile;

close(f);

end.

Листинг программы на Паскаль

program Task_16;

var

Arr: Array of Real;

ZnakCh: boolean;

OtrCh: integer;

Sum_OtrCh: Real;

PolCh: Integer;

El: Real;

L_arr, I: Integer;

First_El: Real;

End_El: Real;

begin

PolCh := 0;

OtrCh := 0;

Sum_OtrCh := 0;

Write('Сколько чисел вы введете?: '); Readln(L_arr);

SetLength(Arr, L_arr);

for I := 0 to L_arr - 1 do

begin

Write('Введите ', I + 1, ' число: '); Readln(El);

if El < 0 then

begin

OtrCh := OtrCh + 1;

Sum_OtrCh := Sum_OtrCh + El;

end;

if El > 0 then PolCh := PolCh + 1;

Arr[I] := El;

end;

Writeln('Оригинальный массив');

Writeln(Arr);

if otrCh > PolCh then

begin

for I := 0 to L_arr - 1 do

begin

El := Arr[I];

if El > 0 then Arr[I] := Sum_OtrCh;

end;

end

else

begin

First_El := arr[0];

End_El := Arr[L_arr - 1];

Arr[0] := End_El;

Arr[L_arr -1] := First_El;

end;

Writeln('измененый массив');

Writeln(Arr);

end.

Листинг программы на Паскаль

program Tasl_17;

var

Arr: array[,] of Integer;

M: Integer;

N: Integer;

K: Integer;

I, Y: Integer;

Sum_K: Integer;

El, min: Integer;

begin

Write('Введите размер массива: '); Read(M);

N := M;

SetLength(Arr, M, N);

for I := 0 to M - 1 do

for Y := 0 to N - 1 do

begin

Write('Введите число: '); Read(El);

Arr[I, Y] := El;

end;

Writeln('Введеный массив');

for I := 0 to M - 1 do

for Y := 0 to N - 1 do

begin

Write(Arr[I, Y]:1, ' ');

if Y = (N - 1) then Writeln;

end;

K := 0;

Sum_K := 0;

for I := 0 to M - 1 do

begin

Y := I;

El := Arr[I, Y];

if (El mod 2) = 0 then K := K + 1;

if (El mod 2) <> 0 then Sum_K := Sum_K + El;

end;

Writeln ('Сумма нечетных чисел в диагонали: ', Sum_K);

writeln('Количество четных чисел в диагонали: ', K);

min := 0;

for Y := 1 to N - 1 do

begin

if Arr[K - 1, Y] > Arr[K - 1, min] then min := Y;

end;

Writeln('Максимальное число в стреке ', K,' массива: ', Arr[K - 1, min]);

Arr[K - 1, min] := Sum_K;

Writeln('Массив измененый');

for I := 0 to M - 1 do

for Y := 0 to N - 1 do

begin

Write(Arr[I, Y]:1, ' ');

if Y = (N - 1) then Writeln;

end;

end.

Процедура Drob

Листинг программы на Паскаль

program Task_18;

var

X, Y, Z, K, M, N, S: REal;

function Drob(B, C: Real): Real;

begin

result := sin((Pi*Sqr(B))/(C + 1));

end;

begin

Writeln('Введите числа X, Y, Z, K, M, N: '); Readln(X, Y, Z, K, M, N);

S := arccos(Drob(X,K)) + arccos(Drob(Y,M)) - 3 * arccos(Drob(Z, N));

Writeln('Резултат вычисления выражения: ', S);

readln;

end.

Процедура Vvod2m(A, N: Integer; Name: array[,] of Real);

Процедура Vivod2m(A, N: Integer; Name: array[,] of Real);

функция SrArDiag(A: Real; N: Integer): Real;

Функция ZamenaPoboch(A, N: Integer; Name: array [,] of Real);

Основная блок схема

program Task_19;

var

Arr1: array [,] of Real;

Arr2: array [,] of Real;

Ch: Real;

SumSrArr1: REal;

SumSrArr2: Real;

SumArr1: Real;

SumArr2: Real;

Rarr1: Integer;

Rarr2: Integer;

I, Y: Integer;

DlArr: Integer;

procedure Vvod2m(A, N: Integer; Name: array[,] of Real);

begin

Ch := Random(0, 10);Writeln;

Name[A, N] := Ch;

end;

procedure Vivod2m(A, N: Integer; Name: array[,] of Real);

begin

Write(Name[A, N]:3, ' ');

end;

function SrArDiag(A: Real; N: Integer): Real;

begin

result := A / (N - 1);

end;

function ZamenaPoboch(A, N: Integer; Name: array [,] of Real);

begin

Name[A,N-i-1]:=SumSrArr1;

end;

begin

Write('Введите размер 1 массива: ');REadln(Rarr1);

Write('Введите размер 2 массива: ');Readln(Rarr2);

SetLength(Arr1, Rarr1, Rarr1);

SetLength(Arr2, Rarr2, Rarr2);

Writeln('заполнение первого массива');

for I := 0 to Rarr1 - 1 do

for Y := 0 to Rarr1 - 1 do

begin

Vvod2m(I, Y, Arr1);

end;

Writeln('заполнение второго массива');

for I := 0 to Rarr2 - 1 do

for y := 0 to Rarr2 - 1 do Vvod2m(I, Y, Arr2);

Writeln('Первый массив');

for I := 0 to Rarr2 - 1 do

for y := 0 to Rarr2 - 1 do

begin

Vivod2m(I, Y, Arr1);

if Y = Rarr1 - 1 then Writeln;

end;

Writeln('Второй массив');

for I := 0 to Rarr2 - 1 do

for y := 0 to Rarr2 - 1 do

begin

Vivod2m(I, Y, Arr2);

if Y = Rarr2 - 1 then Writeln;

end;

Y := 1;

SumArr1 := 0;

for I := 1 to Rarr1 - 1 do

begin

Y := I - 1;

SumArr1 := SumArr1 + Arr1[I, Y]

end;

SumSrArr1 := SrArDiag(SumArr1, Rarr1);

writeln('Среднее арифметическое поддиагонали 1 массива: ', SumSrArr1);

Y := 1;

SumArr2 := 0;

for I := 1 to Rarr2 - 1 do

begin

Y := I - 1;

if Y > Rarr2 - 1 then break;

SumArr2 := SumArr2 + Arr2[I, Y]

end;

SumSrArr2 := SrArDiag(SumArr2, Rarr2);

writeln('Среднее арифметическое поддиагонали 2 массива: ', SumSrArr2);

For I := 0 to Rarr2-1 do

ZamenaPoboch(I, Rarr2,Arr1);

Writeln('Второй массив c замененой побочной диагональю');

for I := 0 to Rarr2 - 1 do

for y := 0 to Rarr2 - 1 do

begin

Vivod2m(I, Y, Arr1);

if Y = Rarr1 -1 then Writeln;

end;

end.

Листинг программы на Паскаль

program Task_20;

var

F: File of Real;

SrA: Real;

EndInp: boolean;

YN: string;

Max: Real;

Min: Real;

Ch, Sum_Ch: Real;

N, I: Integer;

const

File_Name = 'F.dat';

begin

N := 0;

EndInp := true;

assign(F, File_Name);

Rewrite(F);

while EndInp = true do

begin

Write('Введите любое число: ');Readln(Ch);

Write('Закончили ввод? (Y/N): '); Readln(YN);

if (YN = 'Y') or (YN = 'y') then EndInp := false;

Write(F, Ch);

N := N + 1;

end;

Write('Данные файла F: ');

Seek(F, 0);

While not Eof(F) do

begin

Read(F, Ch);

Write(Ch, ' ');

end;

Writeln;

Sum_Ch := 0;

Seek(F, 0);

While not Eof(F) do

begin

Read(F, Ch);

if Ch > 0 then Sum_Ch := Sum_Ch + Ch;

end;

if Sum_Ch = 0 then

begin

Writeln('В файkе нет положительных чисел, преобразование невозможно!');

end

else

begin

SrA := Sum_Ch / N;

Writeln('Среднеарифметическая сумма чисел в файле: ', SrA);

Seek(F, 0);

While not Eof(F) do

begin

Read(F, Ch);

if Ch < Min then

begin

Min := Ch;

end;

if Ch > Max then

begin

Max := Ch;

end;

end;

Writeln('Минимальное число: ', Min);

Writeln('Максимальное число: ', Max);

Seek(F, 0);

for I := 0 to N - 1 do

begin

Seek(F, I);

Read(F, Ch);

if Ch = Min then

begin

Seek(F, I);

Write(F, SrA);

end;

if Ch = Max then

begin

Seek(F, I);

Write(F, SrA);

end;

end;

Write('Преобразованный файл F: ');

Seek(F, 0);

While not Eof(F) do

begin

Read(F, Ch);

Write(Ch, ' ');

end;

end;

Close(F);

Readln;

end.

Размещено на Allbest.ru


Подобные документы

  • Определение среднего количества информации. Зависимость между символами матрицы условных вероятностей. Кодирование методом Шеннона–Фано. Пропускная способность канала связи. Эффективность кодирования сообщений методом Д. Хаффмана, характеристика кода.

    контрольная работа [94,6 K], добавлен 04.05.2015

  • Изучение методов кодирования Хаффмана, Фано. Модель информационной системы Шеннона. Среднестатистическая информационная емкость сообщений для эргодических источников с заданным распределением частот символов. Формулы Хартли для удельной емкости на символ.

    презентация [528,9 K], добавлен 19.10.2014

  • Понятие и основные свойства алгоритма. Линейный, ветвящийся и циклический виды вычислительных процессов. Перевод числа из десятичной системы счисления в двоичную, восьмеричную, шестнадцатеричную системы, сложение чисел, выполнение вычитания и умножения.

    контрольная работа [125,7 K], добавлен 15.09.2013

  • Определение понятий кода, кодирования и декодирования, виды, правила и задачи кодирования. Применение теорем Шеннона в теории связи. Классификация, параметры и построение помехоустойчивых кодов. Методы передачи кодов. Пример построения кода Шеннона.

    курсовая работа [212,6 K], добавлен 25.02.2009

  • Методы арифметического кодирования. Основные функции программ, реализующие алгоритмы кодирования по методам Хаффмана, Голомба, Фибоначчи и Элиаса. Разработка программно-аппаратных средств оптимального арифметического кодирования и их экономический расчет.

    дипломная работа [1,1 M], добавлен 26.05.2012

  • Типы сжатия данных: с потерями (lossy) и без потерь (lossless). Сжатие с минимальной избыточностью. Кодирование методом Шеннона-Фано. Проверка работы программы по сжатию файлов формата bmp и xls. Реализация на Delphi алгоритма сжатия Шеннона и Хаффмана.

    курсовая работа [2,6 M], добавлен 26.01.2011

  • Общее представление о системах счисления. Перевод чисел в двоичную, восьмеричную и шестнадцатеричную системы счисления. Разбивка чисел на тройки и четверки цифр. Разряды символов числа. Перевод из шестнадцатеричной системы счисления в десятичную.

    практическая работа [15,5 K], добавлен 19.04.2011

  • Перевод десятичного числа в двоичную, восьмеричную и шестнадцатеричную системы счисления. Место автоматических систем управления (АСУ) в организации технического обслуживания. Информационное обеспечение управления и программное обеспечение АСУ.

    контрольная работа [16,7 K], добавлен 09.10.2012

  • Описание метода сжатия информации на основе двоичных кодирующих деревьев Хаффмана. Среда разработки Delphi версии 7.0. Понятия объектно-ориентированного программирования. Программа, разработанная в Delphi. Реализация на Delphi метода кодирования Хаффмана.

    курсовая работа [2,1 M], добавлен 26.03.2013

  • Особенности кодирования информации с помощью метода Хаффмана. Реализация кодера и декодера с использованием статического алгоритма Хаффмана. Структура программы, оценка ее эффективности (степени сжатия) в зависимости от типа и размера сжимаемых файлов.

    курсовая работа [136,2 K], добавлен 15.06.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.