[ Організація інформації ]! | FF FF FF FF FF FF FF FF FF FF FF FF Для зберігання такого зображення буде потрібно 48 байт. Колірна модель RGB [Red-Green-Blue] була стандартизована в 1931 р. і вперше використана в кольоровому телебаченні. Модель RGB є адитивною моделлю, тобто колір виходить в результаті складання базових квітів. Існують і інші колірні моделі, які для ряду завдань виявляються кращими, ніж RGB-модель. Наприклад, для представлення кольору в принтері використовується субтрактивна CMY-модель [Cyan-Magenta-Yellow], колір в якій виходить в результаті віднімання базових квітів з білого кольору. Білого кольору в цій моделі відповідає (0,0,0), чорного - (1,1,1), блакитному - (1,0,0), бузкового - (0,1,0), жовтому - (0,0 , 1). У колірній моделі HSV [Hue-Saturation-Value] колір представляється через колір, насиченість і значення, а в моделі HLS [Hue-Lightness-Saturation] через відтінок, яскравість і насиченість. Сучасні графічні редактори, як правило, можуть працювати з декількома кольоровими моделями. Цифрове представлення звуку Звук можна описати у вигляді сукупності синусоїдальних хвиль певних частоти і амплітуди. Частота хвилі визначає висоту звукового тону, амплітуда - гучність звуку. Частота вимірюється в герцах (Гц [Hz]). Діапазон чутності для людини становить від 20 Гц до 17000 Гц (або 17 кГц). Рис. 5. Дискретизація звукового сигналу Завдання цифрового представлення звуку, таким чином, зводиться до задачі опису синусоїдальної кривої. Принцип такого подання зображений на рис. 1.5. Кожній дискретної вибірці присвоюється ціле число - значення амплітуди. Кількість вибірок в секунду називається частотою вибірки [sampling rate]. Кількість можливих значень амплітуди називається точністю вибірки [sampling size]. Таким чином, звукова хвиля представляється у вигляді ступінчастої кривої. Ширина сходинки тим менше, чим більше частота вибірки, а висота сходинки тим менше, чим більше точність вибірки. ПрикладМожливості найбільш поширеною сучасної апаратури передбачають роботу з частотою вибірки до 44,1 кГц, що дозволяє правильно описувати звук частотою до 22,05 кГц. Точність вибірки має всього два значення 8 біт та 16 біт. Тобто для подання амплітуди 8-бітного звуку використовується 28 = 256 рівнів амплітуди. Стиснення даних Внутрішнє подання даних характеризується надмірністю. Наприклад, при кодуванні символів російського алфавіту можна врахувати частоту, з якою ці символи зустрічаються в пропозиціях російської мови. Тоді для цифрового представлення тексту потрібно менша кількість інформації. Обсяг даних має велике значення не тільки для зберігання, але також безпосередньо впливає на швидкість передачі даних по каналах обчислювальних мереж. Тому були розроблені спеціальні методи (алгоритми стиснення даних [data comdivssion]), за допомогою яких можна істотно зменшити обсяг даних. Існують як універсальні алгоритми, які розглядають дані як просту послідовність бітів, так і спеціалізовані, які призначені для стиснення даних певного типу (зображень, тексту, звуку і відео). Ефективність стиснення характеризується коефіцієнтом стиснення [comdivssion ratio], який визначається як відношення розміру вихідних даних до розміру стиснутих. У деяких випадках цей коефіцієнт досягає значення 10. ПрикладРозглянемо принцип стиснення найпростішого універсального RLE-методу. Для цього розглянемо представлення зображення, отриманого в прикладі вище. Особливість даного подання полягає в тому, що в ньому містяться довгі послідовності поспіль нулів або одиниць. У RLE-методі пропонується ставити спочатку значення числа повторень, а потім повторюється числа. Тоді стислий закодоване зображення отримає вигляд: С4 00 0F 80 08 80 08 80 0F 80 С4 00 Тут число С використовується як ознака послідовності однакових символів. Тобто С4 означає, що далі йде послідовність з 4 символів. Розмір зберігається зображення зменшився з 16 до 12 байт. Коефіцієнт стиснення дорівнює 1,33. Ефективність стиснення буде залежати від розміру та змісту зображення. Якщо те ж саме зображення перетворити в колірну RGB-модель, то в стислій формі воно отримає вигляд: СD FF F0 00 1F C3 FF F1 FF 1F C3 FF F1 FF 1F C3 FF F0 00 1F CE FF Тобто замість 48 байт стислий зображення займає 22 байти, а коефіцієнт стиснення дорівнює 2,18. Алгоритми стиснення широко застосовуються для більш компактного зберігання зображень. Для цього було розроблено велику кількість графічних форматів растрових зображень. ПрикладНайбільш популярними є графічні формати: BMP [Bit MaP], PCX, GIF [Graphics Interchange Format], TIFF [Tagged Image File Format], JPEG [Joint Photographic Experts Group], які по суті різняться між собою використовуваними методами стиснення. Формати BMP та PCX використовують RLE-алгоритм, формати GIF і TIFF - LZW-алгоритм, JPEG використовує однойменний алгоритм стиснення. Звук і відео також вимагають для свого цифрового представлення дуже великого обсягу пам'яті, тому без алгоритмів стиснення робота з відео і звуковими даними була б неможливою. Фактичним стандартом для представлення звуку став формат MP3, а для представлення відеоданих - формат MPEG. Зовнішнє представлення даних Файли і каталоги Будь-які дані, представлені у вигляді сукупності цілих чисел, зберігаються в пам'яті ЕОМ у вигляді файлів. Файл [file] - іменована цілісна сукупність даних, причому не має значення, яких саме даних. Для файлу дані - це лише набір цілих чисел в двійковій формі, тому файл - це просто послідовність байтів. Для користувача мають значення лише дві ознаки, які характеризують фото як такої: ім'я файлу і його розмір. Розмір файлів вимірюється в байтах. Рис. 6. Дерево каталогів Як правило, файли сортуються користувачем згідно з певними ознаками за групами. Список такої групи називається каталогом [directory]. Таким чином, організується особлива ієрархічна структура - дерево каталогів (див. рис. 1.6 - імена каталогів підкреслені). Вершина такого дерева називається кореневим каталогом [root directory]. Ім'я кореневого каталогу завжди строго визначена (на мал. 1.6 - C:) і залежить від файлової системи (див. тему 3). Моделі і бази даних Чимало об'єктів у конкретних прикладних задачах можуть бути представлені не в двійковій формі, а у вигляді складної інформаційної структури. Наприклад, креслення деталі можна представити у вигляді сукупності відрізків прямих. Тоді в пам'яті ЕОМ потрібно буде зберігати не растр, а сукупність дійсних чисел, що описують координати кінців відрізків. Формалізований опис інформаційних структур і операцій над ними називається моделлю даних [data model]. ПрикладНаприклад, для опису шрифтів застосовуються три моделі: бітова, векторна і true-type. Розглянемо, як можна уявити символ «С» за допомогою бітової моделі. Бітова модель використовує той же принцип, що і бітова колірна модель для растрових зображень. Кожному символу відводиться матриця фіксованого розміру. Нехай матриця має розмір 8х10: Після такого графічного подання символу, його можна описати десятьма числами, розміром 1 байт кожне: 00 3С 66 С0 С0 С0 66 3С 00 00 Такі описи складаються для всіх символів алфавіту, цифр, знаків пунктуації та містяться в один файл - файл бітового шрифту. Усі символи, які виводяться в текстовому режимі, представлені за допомогою бітових шрифтів і записані в ПЗУ. Розглянуте в прикладах вище зображення можна представити через опис чотирьох відрізків прямих ліній, задаючи координати кінців відрізків: (4,2-8,2) (4,2-4,5) (4,5-8,5) (8,5-8,2) Для такого опису потрібно 16 чисел. У результаті з'являється можливість різних геометричних перетворень зображення (масштабування, повороти, розтягнення та ін.) Такий спосіб опису зображень називається векторним і широко використовується в проектуванні. Але потрібно чітко розуміти, що при виведенні на екран монітора дане зображення буде представлено в растровій формі. У реальних задачах для опису даних потрібно дуже багато файлів, причому дані, що містяться в цих файлах, деяким чином пов'язані між собою. Наприклад, опис інформації про діяльність деякої судноплавної компанії буде включати в себе технічні дані по судах компанії, дислокацію суден, дані по дільницях водних шляхів, розмірами канальних і портових зборів, дані по фрахтовим ставками, дані для визначення експлуатаційних витрат по кожному судну і т. д. Тому управління файлами в таких випадках виявляється дуже складним. Щоб подолати ці складнощі, вихідні дані повинні бути організовані в базу даних [data base] - сукупність взаємозв'язаних даних, що зберігаються, і керованих відповідно до деяких правил. Ці правила також називаються моделлю даних. Конкретне побудову бази даних і використовувана модель даних визначаються розв'язуваної завданням. ПрикладЄ кілька моделей даних: мережева, ієрархічна, реляційна, об'єктно-орієнтована. Останнім часом найбільш широко використовуваною є реляційна модель даних. Відповідно до цієї моделі всі дані організовуються в сукупність пов'язаних таблиць. Питання, пов'язані з проектуванням баз даних вивчаються у спеціальному курсі «Бази і банки даних». Обробка даних Поняття програми Рішення задачі на ЕОМ - це процес отримання результатних даних на основі обробки вихідних за допомогою програми. Програма [program, routine] - це просто послідовність команд, зрозумілих ЕОМ, або машинних команд. Машинні команди [computer instruction] являють собою цілі числа, приймаючи які, ЕОМ виробляє строго певні дії. Набір цих команд залежить від конкретної ЕОМ і носить назву машинної мови [computer (machine) language]. Машинні команди, як і дані, зберігаються у файлах, однак, файлу з командами можна передати керування комп'ютером. Такі файли також називають програмами. ПрикладНехай в деякому файлі записана наступна послідовність чисел: B8 Травня 2003 BB-00 00 CD 16-CD 20 Якщо запустити цей файл на виконання (тобто передати йому управління ЕОМ) на ЕОМ з процесором Pentium в ОС Windows95, то клавіатура буде працювати швидше. Усього в даній послідовності закодовано чотири машинних команди. Поняття алгоритму та алгоритмічної мови Будь-яка програма складена у відповідності з деяким алгоритмом. Алгоритм [algorithm] - це кінцевий набір приписів, для якого зазначено, як і в якій послідовності ці приписи необхідно застосовувати до вихідних даних завдання, щоб отримати її рішення. Алгоритм - це загальний метод рішення задачі, конкретне вираження якого буде оформлено у вигляді програми. Алгоритм дає можливість чисто механічно вирішувати будь-яке завдання з деякого класу однотипних задач. Алгоритм може бути описаний різними способами: формульно, графічно, за допомогою деякого алгоритмічної мови. Алгоритмічна мова [algorithmic language] - система позначень, призначена для точного опису алгоритмів для ЕОМ і чи достатня для автоматичного знаходження таких алгоритмів. Такі мови є штучними мовами зі строго визначеними синтаксисом і пунктуацією, тому вони не допускають вільного тлумачення для своїх конструкцій, як це характерно для природної мови. Існує велика кількість мов програмування, призначених для вирішення прикладних завдань. ПрикладРозглянемо завдання обчислення квадратного кореня з деякого позитивного дійсного числа: . Таке завдання вирішується за допомогою алгоритму Герона. У формульної запису цей алгоритм буде мати вигляд: . Маючи деяке початкове наближення, можна уточнити значення кореня, а потім знову повторити цей процес. Алгоритми такого роду мають назву циклічних. У графічному поданні алгоритм буде мати більш наочну форму. На алгоритмічній мові BASIC алгоритм може бути реалізований таким чином: while (1) y = y0 y = (y0 + x/y0) / 2 y0 = y wend Зрозуміло, в реальному програмі повинен бути забезпечений вихід з циклу. Алгоритм Герона використовується при реалізації бібліотек стандартних математичних функцій. Машинний мова належить до внутрішнього рівнем подання обробки даних. Людина звертається до машинного мови в дуже специфічних випадках. Алгоритмічні мови є зовнішній рівень і мають форму, зручну для сприйняття людиною. Програмування та мови програмування Використання ЕОМ немислимо без програмування [programming], яке в самому простому розумінні являє собою створення програм. Більш точно, програмування полягає у відображенні в пам'яті ЕОМ цифрових даних про реальні об'єкти і в описі на машинній мові інструкцій з управління цими даними. Так як для сприйняття людиною машинні мови незручні, то для більш ефективної роботи були створені різні мови програмування [programming language]. Найбільш поширені так звані процедурні мови програмування. Процедурна мова програмування надає набір типів та операцій з цими типами, а також кошти для логічної організації програми - оператори [statement]. Програма на процедурному мовою виконується поетапно - оператор за оператором. Найбільш поширеними процедурними мовами програмування є: С, C + +, Fortran, Pascal, Basic, Visual Basic, Ada. Мова програмування Fortran був створений в 1956 р. і до 70-х років використовувався в переважній кількості програмних проектів. На сьогоднішній день є величезна кількість прикладних програм, створених на цій мові, тому практичне використання Fortran-a триває. Однак область використання цієї мови програмування обмежена чисельними розрахунками в області фізики. Всі суперЕОМ мають у складі свого програмного забезпечення засоби для роботи з Fortran-му. Для Fortran-а є міжнародний стандарт, що дозволяє створювати добре переносяться програми. Мова Basic представляв собою спрощений Fortran і був створений у 1964 р. для початкового навчання програмуванню. Однак з часом ця мова придбав популярність серед професійних розробників програм. Основний недолік мови - це використання великої кількості «правил за умовчанням», що ускладнює створення надійних програм. Відсутність загальноприйнятого стандарту на мову також заважає його поширення та використання в серйозних програмних розробках. Мова Visual Basic є об'єктно-орієнтованої версією мови Basic, створеної фірмою Microsoft, і широко використовується для розробки графічного інтерфейсу прикладних програм. Мова Pascal був створений в 1970 р. також для вивчення програмування, проте, численні позитивні якості цієї мови зумовили його широке розповсюдження як серед прикладних, так і серед системних програмістів. Найбільшу популярність придбала об'єктно-орієнтована версія цієї мови, реалізована фірмою Borland у своїй RAD-системі Delphi. Мова С, створений в 1972 р. набув поширення як мова системного програмування. На цій мові написані операційні системи Unix і її численні версії (Linux, IRIX, AIX), а також операційна система Windows NT. Мова С + +, створений в 1982 р., будучи принципово іншою мовою, тим не менш зберіг сумісність з С, а, отже, можливість використання раніше створених програм. Де-факто мову С + + став стандартом для створення складних програм як системних, так і прикладних. Мова програмування Ada був розроблений в 1979 р. на замовлення Міністерства оборони США і є обов'язковим для багатьох військових програм. Основне призначення мови - створення великих програм для роботи в реальному часі. Істотним недоліком мови є його громіздкість. З непроцедурного мов найбільш відомими є LISP і PROLOG. Мова LISP створений в 1959 р. і розглядається як основна мова програмування систем штучного інтелекту. Мова логічного програмування PROLOG створений в 1978 р. і використовується для роботи з базами знань, заснованими на фактах і правилах. Тобто програми, написані на цій мові, повинні володіти деяким ступенем «інтелектуальності». У залежності від того, наскільки детально враховуються особливості ЕОМ у конкретній мові програмування, говорять про рівень програмування. Мова С є низькорівневим мовою, так як може працювати безпосередньо з фізичними адресами пам'яті ЕОМ. Мови Ada, LISP, C + + є високорівневими мовами. |
Будь ласка, не зберігайте тестовий текст.