Языки программирования для баз данных и компьютерных сетей
При работе с базами данных (БД) наиболее часто выполняются следующие операции: создание, преобразование, удаление таблиц в БД; поиск, отбор, сортировка по запросам пользователя; добавление новых записей или модификация существующих; удаление записей и др. Для обработки больших массивов информации и выборки записей по определенным признакам был создан структурированный язык запросов SQL (Structured Query Language). Он был впервые создан фирмой IBM в начале 70-х гг., назывался Structured English Query Language (SEQUEL). В дальнейшем SQL стал стандартом языка работы с реляционными базами данных, что зафиксировано американским национальным комитетом стандартов ANSI в 1986 г.
Практически в каждой СУБД имеется свой универсальный язык, ориентированный на ее особенности. Сегодня в мире ведущие производители СУБД: Microsoft (SQL Server), IBM (DB2), Oracle, Software AG (Adabas), Informix и Sybase. Их продукты предназначены для совместной параллельной работы тысяч пользователей в сети, а базы данных могут храниться в распределенном виде на нескольких серверах. В Oracle имеется встроенный язык PL/SQL, в Informix – INFORMIX 4GL, в Adabas - Natural и т.д.
Появление и активное развитие компьютерных сетей стало причиной создания многочисленных версий популярных языков программирования, адаптированных для использования в сети. Отличительные особенности, присущие сетевым языкам: они являются интерпретируемыми, интерпретаторы для них распространяются бесплатно, а сами программы – в исходных текстах. Такие языки получили название скрипт-языков.
HTML (Hyper Text Markup Language – язык разметки гипертекста) представляет собой набор команд форматирования текста, добавления графических объектов (рисунков), задания шрифтов и цвета, таблиц и организации гипертекстовых ссылок. В соответствии с командами HTML браузер отображает содержимое документа, команды языка не отображаются. Практически все Web-страницы написаны на HTML или используют его расширения.
В 80-х гг. Ларри Уолл разработал язык Perl (Practical Extraction and Report Language – практический язык для составления отчётов), который предназначался для эффективной обработки больших текстовых файлов, создания текстовых отчетов и управления задачами. В его состав входят многочисленные функции работы со строками, массивами, всевозможные средства преобразования данных, управления процессами, работы с системной информацией и др.
Tcl/Tk. В конце 80-х гг. Джон Аустираут придумал скрипт-язык Tcl (Tool Command Language – командный язык инструментов) и библиотеку Tk (Tool Kit – набор инструментов). Tcl – это попытка создания идеального скрипт-языка. Он ориентирован на автоматизацию рутинных операций и состоит из мощных команд, выполняющих обработку нетипизированных объектов. Позволяет создавать программы с графическим интерфейсом.
Язык VRML (Virtual Reality Modeling Language – язык моделирования виртуальной реальности) был создан в 1994 г. для организации виртуальных трехмерных интерфейсов в Интернете. Он описывает разнообразные трехмерные образы и цвето-теневое освещение в текстовом виде, что позволяет создавать различные сценарии миров, путешествовать по ним, «облетать» объекты с разных сторон, вращать их в любых направлениях, масштабировать, изменять освещенность и т.д. Преемником VRML является совместимый с ним формат X3D (eXtensible 3D – расширяемый трёхмерный), ставший международным стандартом.
13.8 Языки моделирования *
При моделировании систем применяются формальные способы их описания – формальные нотации, с помощью которых можно представить объекты и взаимосвязи между ними в системе. Такие системы называют CASE-системами (Computer-Aided Software Engineering – автоматизированная разработка программ). В них активно применяются нотации IDEF (Icam DEFinition – ICAM определения, где ICAM – Integrated Computer-Aided Manufacturing – комплексная автоматизированная система управления производством), используется язык графического моделирования UML (Unified Modeling Language – унифицированный язык моделирования).
13.9 Вопросы и тестовые задания для самоконтроля
1. В качестве языка программирования в машинах первого поколения использовался:
1) машинный код;
2) Ассемблер;
3) Бейсик.
2. Дайте понятие языка "низкого" уровня.
3. Дайте понятие языка "высокого" уровня.
4. Что называют исходным кодом программы?
5. Какой язык программирования называют языком "низкого" уровня?
1) язык Ассемблер
2) язык Кобол
3) язык Паскаль
4) язык С++
5) язык Basic
6. Система программирования предоставляет программисту возможность
1) выбора языка программирования
2) автоматической сборки разработанных модулей в единый проект
3) анализа существующих программных продуктов по соответствующей тематике
4) автоматического построения математической модели, исходя из постановки задачи
7. Интегрированная система программирования включает компонент для создания исходного текста программы (исходного кода), который называется…
1) редактор формул
2) конструктор
3) текстовый редактор ¤
4) редактор связей
8. Исходными данными для работы транслятора является
1) текст программы на языке высокого уровня
2) текст программы в машинных кодах
3) рекламная рассылка
4) схема программы
9. Непосредственное покомандное выполнение исходной программы на языке высокого уровня происходит в процессе
1) компиляции
2) интерпретации
3) модуляции
4) трассировки
10. Основное отличие компилятора от интерпретатора заключается в следующем
1) компилятор автоматически переводит программу на машинный язык в готовый к исполнению код (ЕХЕ-файл), а интерпретатор нет
2) интерпретатор автоматически переводит программу на машинный язык в готовый к исполнению код (ЕХЕ-файл), а компилятор нет
3) компилятор в процессе трансляции исполняет программу, а интерпретатор нет
11. транслятор, который осуществляет перевод исходной программы в эквивалентную ей результирующую программу на языке машинных команд, называется
1) компилятором
2) интерпретатором
3) модулятором
4) отладчиком
12. Языками декларативного программирования являются языки
1) логические
2) процедурные
3) объектно-ориентированные
4) сценариев
13. Опишите классификацию языков программирования по поколениям языков, по принципам программирования
вернуться к содержанию
ОСНОВНЫЕ ПОНЯТИЯ КОМПЬЮТЕРНОЙ ГРАФИКИ
Представление данных на мониторе компьютера в графическом виде впервые было реализовано в середине 50-х годов для больших ЭВМ, применявшихся в научных и военных исследованиях. С тех пор графический способ отображения данных стал неотъемлемой принадлежностью подавляющего числа компьютерных систем, в особенности персональных. Графический интерфейс пользователя сегодня является стандартом для программного обеспечения разных классов, начиная с операционных систем.
Область информатики, изучающая методы и средства создания и обработки изображений с помощью программно-аппаратных комплексов, называется компьютерной графикой. Она охватывает все виды и формы представления изображений с помощью средств вычислительной техники.
Без компьютерной графики невозможно представить себе не только компьютерный, но и современный, вполне материальный мир. Визуализация данных находит применение в самых разных сферах человеческой деятельности. Для примера назовем медицину (компьютерная томография), научные исследования (визуализация строения вещества, векторных полей и других данных), моделирование тканей и одежды, опытно-конструкторские разработки.
На специализацию в отдельных областях указывают названия некоторых разделов: инженерная графика, научная графика, Web-графика, компьютерная полиграфия и прочие. На стыке компьютерных, телевизионных и кинотехнологий зародилась и стремительно развивается сравнительно новая область компьютерной графики и анимации.
Заметное место в компьютерной графике отведено развлечениям. Появилось даже такое понятие, как механизм графического представления данных (Graphics Engine). Рынок игровых программ имеет оборот в десятки миллиардов долларов и часто инициализирует очередной этап совершенствования графики и анимации.
Хотя компьютерная графика служит всего лишь инструментом, ее структура и методы основаны на передовых достижениях фундаментальных и прикладных наук: математики, физики, химии, биологии, статистики, программирования и множества других. Это замечание справедливо как для программных, так и для аппаратных средств создания и обработки изображений на компьютере.
Поэтому компьютерная графика является одной из наиболее бурно развивающихся отраслей информатики и во многих случаях выступает «локомотивом», тянущим за собой всю компьютерную индустрию.
Виды компьютерной графики
Существует два основных способа представления изображений – растровый и векторный (рис. 14.1). В соответствии с этими способами все компьютерные изображения, все форматы для их хранения и все программы для их обработки также можно делить на два основных класса. Отдельным предметом считается трехмерная (3D) графика, изучающая приемы и методы построения объемных моделей объектов в виртуальном пространстве. Как правило, в ней сочетаются векторный и растровый способы формирования изображений. Кроме того, особо следует выделить фрактальную* графику.
Изображения в растровой графике состоят из отдельных точек различных цветов, образующих цельную картину (наподобие мозаики). Типичным примером растровой графики служат отсканированные фотографии или изображения, созданные в графическом редакторе PhotoShop. Применение растровой графики позволяет добиться изображения высочайшего фотореалистичного качества. Но такие файлы очень объемны и трудно редактируемы (каждую точку приходиться подправлять вручную) При масштабировании (изменении размеров с сохранением пропорций) качество изображения ухудшается. Так, при уменьшении исчезают мелкие детали, а при увеличении проявляется «лестничный» эффект (например, наклонный отрезок становится «ступенчатым»). При печати растрового изображения или при просмотре его на устройствах, имеющих недостаточную разрешающую способность, значительно ухудшается восприятие образа.
Суть принципа точечной графики: если надо закодировать чёрно-белое изображение, то на него «накладывается» сетка и создается матрица (таблица) той же размерности, заполняемая единицами, если точка белая, и нулями, если чёрная. Если границы оригинала изображения параллельны границам ячеек сетки, получается идеальная матрица из нулевых и единичных битов, которая представляет закодированное изображение, его побитовую карту (bitmap). Если для кодирования каждой точки использовать несколько бит (количество которых называется глубиной цвета), то можно представлять не только монохромные, но и полутоновые (в градациях серого), и цветные изображения.
Достоинства растровой графики:
1. Каждый пиксель независим друг от друга.
2. Техническая реализуемость автоматизации ввода (оцифровки) изобразительной информации. Существует развитая система внешних устройств для ввода изображений (к ним относятся сканеры, видеокамеры, цифровые фотокамеры, графические планшеты).
3. Фотореалистичность (можно получать живописные эффекты, например, туман или дымку, добиваться тончайшей нюансировки цвета, создавать перспективную глубину, размытость и т.д.).
4. Большинство форматов файлов, предназначенных для сохранения точечных изображений, являются стандартными, поэтому не имеет решающего значения, в каком графическом редакторе создано то или иное изображение.
5. Можно использовать в Web-дизайне
Недостатки растровой графики:
1. Объём файла точечной графики однозначно определяется произведением глубины цвета на количество элементов разложения, которое определяется площадью изображения и разрешением (если они приведены к единой размерности). Если эти параметры одинаковы для разных файлов, то их размер будет тоже одинаковыми. При этом совершенно неважно, какое именно изображение хранится в файле: совершенно белое поле, или же некий фантастический узор с обилием цвета и форм.
2. При попытке слегка повернуть на небольшой угол изображение, например, с чёткими тонкими прямыми вертикальными линиями, линии превращаются в «ступеньки» (это означает, что при любых трансформациях: поворотах, наклонах и т.д. в точечной графике невозможно обойтись без искажений).
3. Невозможность увеличения изображений для рассмотрения деталей. Поскольку изображение состоит из точек, то увеличение изображения приводит только к тому, что эти точки становятся крупнее. Никаких дополнительных деталей при увеличении растрового изображения рассмотреть не удаётся. Более того, увеличение точек растра визуально искажает иллюстрацию и делает её грубой (пикселизация).
В основе векторной графики лежит формирование изображения с использованием большого числа отрезков коротких прямых (векторов), каждый из которых имеет определенное направление, цвет и координаты точки, из которой он исходит и точки, в которую входит. Представление изображения основано на использовании геометрических примитивов, таких как точки, прямые линии, ломаные, многоугольники, окружности, дуги, кривые, сплайны, и другие.
Векторное представление заключается в математическом описании элементов изображения с указанием способа их раскраски. Например, изображение древесного листа описывается точками, через которые проходит линия, создавая тем самым контур листа. Цвет листа задается цветом контура и области внутри этого контура.
При редактировании элементов векторной графики изменяются параметры примитивов, описывающих форму этих элементов. Можно переносить элементы, менять их размер, форму и цвет, но это не отразится на качестве их визуального представления при масштабировании. Векторная графика не зависит от разрешения, т.е. может быть показана в разнообразных выходных устройствах с различным разрешением без потери качества.
Существует тенденция к сближению редакторов векторной и растровой графики. Большинство современных векторных редакторов способны использовать растровые картинки в качестве фона, а то и переводить в векторный формат части изображения встроенными средствами (трассировка или векторизация). Причем обычно имеются средства редактирования загруженного фонового изображения. Кроме того, может осуществляться непосредственный перевод сформированного векторного изображения в растровый формат (растеризация) и дальнейшее его использование как нередактируемого растрового элемента. Существует множество конвертеров из векторного формата в растровый с получением соответствующего файла. Многие растровые редакторы способны загружать один из векторных форматов (обычно wmf – Windows Metafile) в качестве фона или сразу переводить их в растр с возможностью непосредственного редактирования.
Широкое применение находит трехмерная компьютерная графика и анимация – от рекламы и динамических заставок до моделирования катастроф. Современный мир немыслим без 3D-технологий. Средства трехмерной графики позволяют сегодня за считанные часы осуществить спецэффекты, которые с помощью физических моделей, прозрачной фотографии и оптических принтеров еще недавно создавались месяцами. Уже не надо тратить тысячи человеко-часов на построение моделей, которые нужно затем установить на сцене, осветить, отснять и скомбинировать с остальными участниками эпизода. Достаточно посадить одного человека за компьютер, чтобы создать спецэффекты, дающие полное ощущение реальности.
Методы трехмерной графики дают возможность создавать видеоролики и даже «снимать» телепередачи исключительно при помощи компьютерных моделей. «Живой» ведущий свободно перемещается внутри сцены, при моделировании которой использована трехмерная графика, ходит вокруг объектов и может взаимодействовать с ними. Интересно вспомнить, что трехмерная компьютерная графика когда-то носила ироническое название «решение в поисках проблемы».
Фрактальная графика, как и векторная, во многом основана на математических вычислениях. Однако базовым элементом фрактальной графики является не примитив, а последовательность преобразований, то есть изображение строится исключительно по заданным алгоритмам (для каждого изображения – свой алгоритм его формирования). Таким способом строят как простейшие регулярные структуры, так и сложные иллюстрации, имитирующие природные ландшафты и трехмерные объекты.
Графические форматы
Как известно, любая информация, хранящаяся в файле, представляется последовательностью байтов. Каждый байт может принимать одно из 256 (то есть 28) значений. Способ представления информации с помощью последовательности байтов называют форматом файла. Графический формат – это способ представления в файле графической информации.
Графический формат изображения оказывает влияние на возможности его просмотра, редактирования, печати, а также на объем занимаемой памяти. В настоящее время наиболее распространены следующие форматы растровой графики: bmp, gif, jpg, tif, png и другие. Рассмотрим более подробно некоторые из них.
Растровый формат BMP (BitMap Pictures – побитовая карта изображения) разработан корпорацией Microsoft, его поддержка интегрирована в операционной системе Windows, с ним могут работать многие программы. Поддерживаются изображения в модели RGB (о цветовых моделях речь пойдёт в следующем подразделе) с глубиной цвета обычно 1, 8 или 24 бит, но возможны и другие значения. Распространения в Интернете формат не получил из-за большого объема, хотя поддержка сжатия в нём имеется.
Формат GIF (Graphics Interchange Format – формат для обмена изображениями) создан крупнейшей сетевой службой CompuServe (впоследствии приобретённой корпорацией AOL – America OnLine) специально для передачи растровых изображений в глобальных сетях. Формат ориентирован в первую очередь на хранение изображений в режиме индексированных цветов (не более 256), использует сжатие без потерь, допускает чересстрочное хранение данных (загрузив четвёртую часть файла, либо половину, можно уже увидеть изображение, но с меньшим разрешением) и анимацию (последовательность из нескольких кадров).
Формат JPEG (Joint Photographic Experts Group – объединённая группа экспертов по фотографии) разработан группой международных организаций с целью эффективного сжатия фотографических (и подобных им) изображений. В формате впервые реализован новый принцип сжатия с потерями информации. Он основан на удалении из изображения той части информации, которая слабо воспринимается человеческим глазом, например, мелкие детали и их цвет. Лишенное избыточной информации изображение занимает гораздо меньше места, чем исходное. Степень сжатия, а, следовательно, и количество удаляемой информации, может регулироваться. Низкие степени сжатия дают лучшее качество изображения, а высокие могут существенно его ухудшить.
Формат JPEG широко используется при создании фотореалистичных изображений для электронного распространения на компакт дисках или в Интернете. Стандарт JPEG допускает использование различных цветовых моделей для преобразования изображения при сжатии, но де-факто используется трёхкомпонентная модель YUV, содержащая яркостную (Y) и две цветоразностных компоненты (U и V).
14.3 Цветовые модели *
На многообразие графических форматов оказывают влияние не только сами способы представления изображения, но и используемые в них принципы цветопередачи. Цветовая модель – термин, обозначающий абстрактную модель описания представления цветов в виде кортежей чисел, обычно из трёх или четырёх значений, называемых цветовыми компонентами или цветовыми координатами. Рассмотрим наиболее часто используемыемодели.
Цветовая модель RGB (Red, Green, Blue – красный, зеленый, синий) используется в светоизлучающих устройствах, таких как телевизионные кинескопы и компьютерные мониторы, такая модель является аддитивной. Для создания всех цветов, различаемых зрением человека, смешиваются три первичных цвета в разных пропорциях. Например, смесь всех трех цветов интенсивностью 100% каждый дает максимально яркий белый цвет, а 0% – черный, то есть полное отсутствие излучения.
Модель RGB распространена очень широко, но качество цветопередачи сильно зависит от устройства вывода. При замене устройства изменяется и цвет. Но самое главное – эта модель не подходит для раскраски отражающих поверхностей или для красителей и пигментов, используемых при печати.
От листа белой бумаги свет отражается практически полностью. Добавление дополнительного источника света не позволит сделать бумагу еще белее. Но можно изменить цвет бумаги, если покрасить её. Накладываясь на бумагу и друг на друга, чернила поглощают часть проходящего через них и отражающегося от бумаги белого света, такой процесс называется вычитанием цвета. Цвета, получаемые после вычитания основных аддитивных, называются дополнительными, и на их основе строится субтрактивная модель CMYK (Cyan, Magenta, Yellow и blacK – голубой, пурпурный, желтый, и черный). Теоретически четвёртый компонент не является необходимым, но на практике смешение трёх дополнительных цветов даёт не чёрный, а «грязный» цвет с разными оттенками, так как краски далеко не так идеальны и не могут перекрыть весь цветовой диапазон света.
При печати RGB-изображение раскладывается на CMYK составляющие. Эту операцию называют цветоделением, и ее способен выполнять графический редактор или принтер, в зависимости от настроек.
Возможный диапазон цветов, или цветовой охват, будет разным в случаях естественного представления объекта, его изображения на экране монитора, а также на бумаге. Самым широким, разумеется, он будет в естественной среде. Часть из того, что существует в природе, может передать монитор. А часть из того, что передает монитор, можно напечатать. В графических редакторах режим CMYK предназначается для подготовки изображения к печати в типографии, и в нем за качество цвета отвечают реальные красители, поэтому цветовой охват в режиме CMYK несколько меньше, чем в режиме RGB.
В цветовой модели HSB (или HSV) для представления любого цвета используются три основных компонента: Hue – оттенок, цветовой тон; Saturation – насыщенность; Brightness или Value – яркость или значение.
Оттенок соответствует положению цвета в спектре, именно тон определяет название цвета. Например, красный – 0 или 360°, зелёный – 120°, синий – 240°, между красным и зелёным расположен желтый – 60°. Иногда вместо диапазона 0 – 360° используется диапазон 0 – 100% (или 0 – 1).
Насыщенность, называемая также цветностью, чистотой оттенка характеризует преобладание одного тона над остальными, степень отдалённости цвета от серого. Например, чистые основные и дополнительные цвета имеют насыщенность 100%, а серый – 0%.
Яркость характеризует степень интенсивности серого цвета, добавляемого к заданному оттенку, и варьируется в диапазоне 0 – 100% (или 0 – 1). Чёрному цвету независимо от насыщенности и оттенка соответствует нулевая яркость. А белому – стопроцентная яркость и нулевая насыщенность.
|