Реферат на тему Организация информации
Работа добавлена на сайт bukvasha.net: 2015-06-29Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
|
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 05 03 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++ являются высокоуровневыми языками.