ступенів 2; це пов’язано з тим, що кожен символ кодується цілою кількістю біт. Найбільш помітно це під час кодування двосимвольного алфавіту: в цьому випадку стискання неможливе, незважаючи на відмінності імовірностей символів; алгоритм фактично “округляє” їх до 1/2!
Арифметичне кодування
Арифметичне кодування – це метод, що дозволяє стискати символи вхідного алфавіту без втрат за умови, що відомий розподіл частот цих символів. Концепцію методу наведено у роботах Еліаса в 60-х роках. Пізніше метод було розвинено та значно модифіковано.
Арифметичне кодування є оптимальним, досягаючи теоретичної границі стискання – ентропії вхідного потоку.
Текст, який стиснено арифметичним кодером, розглядається як деякий двійковий дріб з інтервалу [0,1). Результат стискання можна подати як послідовність двійкових цифр із цього дробу.
Ідея методу полягає в наступному: початковий текст розглядається як запис цього дробу, де кожен вхідний символ є “цифрою” з вагою, що пропорційна ймовірності його появи.
Під час реалізації цього методу виникають дві проблеми: по-перше, необхідно використовувати дійсну арифметику необмеженої точності, і по-друге, результат кодування стає відомим лише після закінчення вхідного потоку. Однак, досліди показали, що можна практично без втрат обмежитися цілочисельною арифметикою невеликої точності (16-32 розряди), а також домогтися покрокової (інкрементальної) роботи алгоритми: цифри коду можуть видаватися послідовно під час читання вхідного потоку.
2 Розробка програмного забезпечення
2.1 Вибір програмного середовища розробки
В якості середовища розробки програми була вибрана мова програмування Delphi 7.0.
Delphi – могутня система візуального об'єктно-орієнтованого проектування, що дозволяє вирішувати безліч задач, зокрема:
- створювати завершені додатки для Windows різноманітної спрямо-ваності, від чисто обчислювальних і логічних, до графічних і мультимедіа;
- швидко створювати (навіть програмістам-початківцям) професіо-нально виглядаючий віконний інтерфейс для будь-яких додатків;
- створювати могутні системи роботи з локальними і розподіленими базами даних;
- створювати довідкові системи (файли. hlp) для своїх додатків;
- та багато іншого.
Крім того, Delphi 7.0 працює в середовищах Windows 9.х, ХР і використовує всі можливості сучасної комп’ютерної техніки .
Нове покоління засобів візуального програмування дозволило значно скоротити час розробки функціонально-складних і зручних в користуванні прикладних програм. Система Delphi – останнє досягнення на ниві візуального програмування. Головним суперником Delphi є система Builder C++, проте для початкового освоєння Delphi є більш доступною системою оскільки вона базується на мові Pascal – мові спеціально створеній для освоєння програмування швейцарським математиком Ніклаусом Віртом в 60-х роках.
Компілятор Delphi забезпечує швидке перетворення написаного програмного коду безпосередньо в робочий код процесора ЕОМ, чим зумовлює швидкість написання, відладки і виконання прикладної програми, уникаючи етапів проміжної компіляції (перетворення в Р-код, тощо) – які ми бачимо в компіляторах з інших мов. В цьому відношенні мова Сі є більш складною для вивчення і є придатною для масового виробництва програмних продуктів, за умови наявності спеціальних бібліотек і необхідності максимального використання апаратних засобів ЕОМ. Для одиничних застосувань, за умови відсутності надпродуктивних обчислювальних засобів (Pentium2-350400МГц), а тим більше на етапі початкового освоєння, більш доцільним є застосування системи Delphi, яка забезпечує мінімальний час компіляції і ефективну оптимізацію результуючого процесорного коду. На відміну від таких мов програмування як Visual Basic Delphi справжня об’єктно-орієнтована мова, яка дозволяє об’єднувати дані і код в один клас (інкапсуляція), створювати дочірні класи (наслідування) і звертатися до класів-нащадків як до класів-предків (поліморфізм) .
Проект Delphi складається з форм, модулів, установок параметрів проекту, ресурсів і т.д. Вся ця інформація розміщується в файлах. Багато з цих файлів автоматично створюються Delphi, коли програміст будує свій додаток. Ресурси, такі як бітові матриці, піктограми і т.д., знаходяться в файлах, які програміст отримує з інших джерел або створює за допомогою численних інструментів і редакторів ресурсів, що є у його розпорядженні.
При проектуванні додатку Delphi створює наступні файли:
- файл проекту (.dpr) – цей текстовий файл використовується для зберігання інформації про форми і модулі. У ньому містяться оператори ініціалізації і запуску програм на виконання;
- файл модуля (.pas) – кожній формі, що створюється, відповідає текстовий файл модуля, що використовується для зберігання коду.
Можна створювати модулі, не пов'язані з формами. Багато з функцій і процедур Delphi зберігаються в модулях;
- файл форми (.dfm) – це двійковий або текстовий файл, який створюється Delphi для зберігання інформації про ваші форми. Кожному файлу форми відповідає файл модуля (.pas);
- файл параметрів проекту (.dfo) – у цьому файлі зберігаються установки параметрів проекту;
- файл ресурсів (.res) – цей бінарний файл містить піктограму, що використовується проектом і інші ресурси;
- файли резервних описів (.~dp,. ~df,. ~pa) – це відповідно файли резервних описів для файлів проекту, форми і модуля. Якщо щось безнадійно зіпсоване в проекті, можна відповідно змінити розширення цих файлів і таким чином повернутися до попереднього не зіпсованого варіанту;
- файл конфігурації вікон (.dsk) – Файл зберігає конфігурацію всіх вікон середовища розробки;
- файл, що виконується (.exe) – це файл вашого додатку, що виконується. Він є автономним файлом, що виконується, для якого більше нічого не потрібно, якщо тільки ви не використовуєте бібліотеки, що містяться в DLL, OCX і т.д., а також якщо ви не використовуєте підтримку пакетів часу виконання;
- об'єктний файл модуля (.dcu) – це відкомпільований файл модуля (.pas), який компонується в остаточний файл, що виконується.
І, нарешті, інші файли Windows, які можуть використовуватися Delphi:
- файли довідки (.hlp) – це стандартні файли довідки Windows, які можуть бути використані вашим додатком Delphi;
- файли зображень або графічні файли (.wmf,. bmp,. ico) – ці файли звичайно використовуються в додатках Windows