Позволяет создавать рекламные ролики, мультфильмы, компьютерные игры, видеопрезентации и т.д.
Графические пакеты, предназначенные для решения подобных задач, требуют больших ресурсов компьютера по быстродействию и памяти. Эти программы позволяют создавать реалистические изображения и компьютерную анимацию. Для создания реалистических изображений используется сложный математический аппарат, при помощи которого рассчитываются приближения, удаления, повороты, деформации пространственных объектов, передача освещения, расположения теней с учетом законов оптики. Движущиеся изображения также получаются на основании расчетов. Художник создает начальную и конечную фазу движения объекта, а все промежуточные состояния рассчитываются и изображаются компьютером.
Иллюстративная графика.
Программные средства иллюстративной графики позволяют использовать компьютер для произвольного рисования и черчения. Простейшие программные средства этой направленности называются графическими редакторами.
Способы формирования графического изображения.
Существует несколько способов получения графического изображения.
Растровая графика.
Растровое изображение строится из отдельных точек (пикселей), каждая из которых имеет определенное положение и цвет. Изображение описывается конкретным расположением и цветом каждой точки в растровом изображении не существует объектов как таковых (линий, фигур…).
В памяти компьютера растровое изображение представлено набором кодов: координаты точки (или номер) и код цвета. Если изображение состоит только из черных и белых точек, то для хранения цвета одной точки требуется 1 бит. Чем больше цветов, тем больше бит требуется для хранения цветовой характеристики каждой точки, тем больше будет объем файла с таким изображением.
Растровое изображение характеризуется разрешением (количеством пикселей в изображении) и глубиной цвета (количеством цветов). На качество растрового изображения оказывает существенное влияние то устройство, с помощью которого его просматривают (монитор или принтер). Вывод растровой графики на устройства с более низким разрешением, чем разрешение самого изображения, понизит его качество.
При изменении размеров изображения (масштабировании), качество изображения ухудшается. При уменьшении несколько соседних точек преобразуются в одну, поэтому исчезают мелкие детали. При увеличении – увеличивается размер каждой точки, картинка превращается в набор цветных квадратиков.
Растровые изображения могут быть получены при сканировании, фотографировании и видеосъемки при помощи цифровых аппаратов и камер.
Достоинства:
· растровые изображения очень хорошо передают реальные образы. Они замечательно подходят для фотографий, картин и в других случаях, когда требуется максимальная «естественность».
· легко выводятся на монитор или принтер, поскольку эти устройства тоже основаны на растровом принципе формирования изображения.
Недостатки:
1. большой объем, необходимый для хранения изображения. Растровое изображение высокого качества может занимать сотни мегабайт памяти. Для обработки их нужны мощные компьютеры.
2. Плохая масштабируемость. Любое изменение размеров неизбежно приводит к ухудшению качества: при увеличении пиксели не могут появиться «из ничего», при уменьшении – часть пикселов просто выбрасывается.
Векторная графика.
Векторной изображение формируется из объектов (точка, линия, окружность, прямоугольник, кривая…), называемых примитивами. При этом сохраняется не сам рисунок, а правила его построения (то есть, например, не все пиксели круга, а команда «построить круг радиуса 30 с центром в точке 50,135 и закрасить его красным цветом»). Точка задается своими координатами, кривая – координатами начала и конца и уравнением.… Поэтому файлы, хранящие векторные изображения, имеют сравнительно небольшой объем.
При редактировании элементов векторного изображения изменяются параметры линий, задающих форму этих элементов. Можно переносить элементы, менять их форму и цвет, но это не отразится на качестве их визуального представления. В векторном изображении все части (примитивы) могут быть изменены независимо друг от друга. Любой из них можно увеличить, повернуть, деформировать, перекрасить и даже стереть – остальных объектов это не изменит.
Векторная графика не зависит от разрешения, т.е. может быть показана в разнообразных устройствах вывода с различным расширением без потери качества, т.к. изображение пересчитывается в растровое представление для данного устройства непосредственно перед выводом на устройство.
Достоинства:
1. Небольшой объем файла, хранящего векторное изображение.
2. Объекты векторной графики легко трансформируются, ими легко манипулировать, что не влияет на качество изображения.
3. Качественное представление изображения на любом устройстве вывода.
Недостатки: не предоставляет возможность для создания фотореалистических изображений.
Цветовые модели
Для описания цветовых оттенков, которые могут быть воспроизведены на экране или при печати, разработаны специальные средства – цветовые модели или системы цветов.
RGB
В этой цветовой модели цвет каждого пикселя определяется тремя основными цветовыми компонентами: Red – красным, Green – зеленым, Blue – синим, сочетания которых могут дать 16 миллионов различных оттенков. Изображения в данном режиме содержат три канала – по одному на каждый цвет. Пиксель в каждом из каналов описывается 8-битовым кодом и может принимать значения от 0 до 255. Если пиксель имеет значения яркости 0 для каждого цвета, то он имеет абсолютно черный цвет. Если 255, то абсолютно белый.
В режиме RGB работают мониторы, сканеры и телевизоры.
CMYK
Режим используется при подготовке цветных изображений к печати. Изображения в данном режиме содержат четыре канала, по одному для каждой основной краски: Cyan - голубой, Magenta – Пурпурной, Yellow – желтой, Black – черной. Сочетание точек, напечатанных этими четырьмя красками, создает все богатство цветов, получаемых при печати. В режиме CMYK черный пиксель получается смешением всех трех основных цветов, при отсутствии краски получается белый цвет – цвет бумаги.
Т.о. эти две модели «противоположны». Изображения в режиме CMYK занимают на 25% больше места, чем в кодировке RGB, поэтому рекомендуется выполнять редактирование в режиме RGB, а затем переводить его в режим CMYK для печати.
Обзор программных средств для создания и обработки графических изображений
CorelDraw, Adobe Illustrator – графический редактор для векторной графики. Обладает мощным инструментарием для создания векторных изображений. Область применения – деловая графика, макеты обложек для печатных изданий, Интернет-графика.
Fractal Design Painter – графический редактор, позволяет имитировать на компьютере все традиционные художественно-графические материалы и инструменты – от карандаша до масляных красок. Имеет удобный интерфейс, возможности настройки параметров для каждого виртуального материала и инструмента.
Adobe Photoshop, Aldus Photostyler предназначены для обработки фотографических изображений: ретуши, коррекции цветовых и тоновых отношений, добавления оптических эффектов. Основное назначение – допечатная подготовка изображений для последующей публикации в печатных изданиях
3D Studio – трехмерный графический редактор. Позволяет создавать трехмерные сцены с имитацией текстур, освещенности, пространственного окружения объектов, сочетая их с анимацией объектов.
MAYA – пакет для создания трехмерной компьютерной графики. Использованы почти все существующие технологии для создания и обработки трехмерной графики: фотореалистичное отображение трехмерных сцен и моделей, моделирования различных сред (дым, жидкости, частицы), моделирование любых форм твердотельных объектов посредством интерактивной их деформации. Изначально предназначалась художникам-аниматорам и дизайнерам.
V - Real Builder , Virtual Home Space Builder – конструкторы виртуальных миров. Позволяют создавать виртуальные пространства и среды, передавать эффекты освещенности, цветовую гамму, оригинальные формы объектов и их конструкции.
AutoCad – система автоматизированного проектирования, получившая широкое распространение среди инженеров-проектировщиков во всем мире. Позволяет проектировать объекты самой различной природы от технических устройств до архитектурных сооружений, имеет возможности для расширения применения системы в различных направлениях благодаря дополнительным пакетам программ.
ArchiCad – система для разработки архитектурно-строительных проектов с использованием трехмерной графики. Предусмотрено автоматическое выполнение операций по изображению основных архитектурных элементов здания (колонн, окон, дверей…), предоставляет возможности для расчетов технических параметров конструкций, позволяет создавать фотореалистические изображения архитектурных объектов, имеет встроенную библиотеку предметов интерьера.
3D Dream House Designer – система для разработки интерьеров и ландшафтного дизайна. Позволяет задавать архитектурные характеристики создаваемого объекта, окружающий ландшафт, а затем разработать проект оформления данной пространственной среды. Имеется база данных, в которой представлен большой набор элементов окружающего ландшафта и предметов оформления интерьеров (мебель, фурнитура…)
ArCon – система для разработки интерьеров помещений. Позволяет создать проект оформления помещения и прилегающего участка, имеет большую базу данных готовых элементов оформления и возможность изменения параметров объектов из базы данных. Но возможности ландшафтного дизайна ограничены.
Фрактальная графика.
Фрактальная графика возникла и начала развиваться как средство изучения сложных динамических систем. Результаты компьютерных экспериментов открыли перед учеными удивительный мир графических объектов, которые до этого не попадали в поле изучения науки или были отброшены ею, как «бесформенные».
Термин фрактал ввел в употребление в 1975 году американский математик Бенуа Мандельброт. Фракталами он назвал структуры, обладающие двумя важными признаками: изломанностью и самоподобием (любая часть структуры подобна всему целому). Слово «подобный» не всегда имеет классический смысл «линейно увеличенный или уменьшенный», но всегда находится в соответствии с широким толкованием слова «похожий».
Понятие фрактала во всей его красоте математических свойств и глубине физических следствий вошло в сознание математиков и физиков после опубликования в 1983 году книги Мандельброта «Фрактальная геометрия природы». В 1984 году состоялась выставка «Границы хаоса», на которой были представлены компьютерные изображения фракталов, полученные в Бременском университете. В 1986 году вышла книга Х-О Пайтгена и П. Рихтера «Красота фракталов», фрактальный бум охватил планету.
Фрактальная графика относится к вычисляемой графике, т.е. изображение не строиться из некоторого набора примитивов, а является результатом выполнения некоторого алгоритма (программы). Свойство самоподобия позволяет получить изображения похожие на реальные природные объекты: деревья, горы, ландшафты, что широко используется в компьютерных играх для создания виртуальной реальности.
Форматы графических файлов.
определяют способ хранения информации в файле (растровый или векторный), а также используемый алгоритм сжатия.
BMP (Bit MaP images) – универсальный формат растрового изображения, используемый в ОС Windows. Поддерживается многими графическими редакторами, рекомендуется для обмена данными с другими приложениями.
TIFF (Tagged Image File Format) – растровый, поддерживается всеми основными графическими редакторами и компьютерными платформами. Использует алгоритм сжатия без потери информации. Рекомендуется для использования при работе с издательскими системами.
GIF (Graphics Interchange Format) – растровый. Использует эффективный алгоритм сжатия без потери информации (поиск повторяющихся в рисунке узоров). Рекомендуется для хранения контурных (с четким контуром) графических изображений с ограниченным количеством цветов.
JPG – растровый. Использует эффективный алгоритм сжатия с потерями (данные, которые не могут быть восприняты человеческим глазом). Рекомендуется для многоцветных фотографических изображений, вызывает заметные искажения четко очерченных контурных рисунков.
EPS (Encapsulated PostScript) – формат векторных графических файлов, поддерживается компьютерами разных платформ. Рекомендуется для печати и создания иллюстраций в настольных издательских системах.
CDR - формат изображений, созданных в CorelDraw.
WMF (Windows MetaFile) – векторный универсальный формат, используется в Windows-приложениях.
Вопросы для самопроверки.
· назовите области применения компьютерной графики.
· как можно классифицировать компьютерную графику по способу формирования изображения.
· какие цветовые модели используются в компьютерной графики.
· приведите примеры программ, предназначенных для работы с компьютерной графикой.
· перечислите основные форматы графических файлов.
Системы компьютерной математики (математические пакеты).
Еще недавно для решения математических задач пользователь должен был не только разбираться в математике, но и освоить язык программирования (и не один), знать сложные численные методы. Сейчас разработаны математические пакеты, которые позволяют решать различные математические задачи.
Ранние математические пакеты были ориентированы только на численные расчеты, для чего использовались возможности развитых численных методов. Но применение численных методов имеет ряд недостатков. Это, прежде всего, нахождение только частных решений и некоторая погрешность вычислений.
Высочайшим достижением стали системы компьютерной математики, выполняющие аналитические (символьные) преобразования. Еще недавно это было фантастикой. Аналитические методы решения задач дают общие (формульные) результаты и без погрешностей. Поэтому сейчас системы аналитических вычислений – наиболее интересное и развивающееся направление компьютерной математики.
Современные системы компьютерной математики обеспечивают и численные и символьные вычисления.
Структура систем компьютерной математики.
Каждая система может иметь нюансы в своей архитектуре, но можно выделить общую структуру.
Библиотеки
Ядро Интерфейс Справочная система
Пакеты расширений
Ядро – центральное место (главная часть) компьютерной системы. Представляет собой множество заранее откомпилированных (переведенных в машинные коды) функций и процедур, которые обеспечивают вычисление основных математических функций и операторов системы. Здесь же хранятся тысячи правил преобразования математических выражений. Ядро тщательно оптимизировано, так как от скорости его работы зависит скорость вычислений (для этого и производится предварительная компиляция). Доступ пользователя в ядро исключен. Объем ядра достигает нескольких мегабайт.
Интерфейс – дает пользователю возможность обращения к ядру со своими запросами и получать результат решения. В современных системах компьютерной математики интерфейс базируется на средствах ОС Windows и обладает практически всеми стандартными возможностями.
Библиотеки – нельзя все вычисляемые функции и процедуры включить в ядро. Хотя они выполняются быстрее, но увеличивается время на поиск нужной функции. В библиотеке помещаются не часто используемые процедуры и функции. Их можно модернизировать и расширять.
Пакеты расширений – расширяют возможности системы и их адаптацию к решаемым конкретным пользователем задачам. Они пишутся на языке программирования системы, что делает возможным их подготовку обычным пользователем.
Справочная система – получение оперативной информации, касающейся работы с системой.
Команды главного меню.
Обычно главное меню систем компьютерной математики включает следующие команды.
Author – ввод пользователем исходной задачи.
Build – построение математических выражений из имеющихся фрагментов.
Calculus – вычисление.
Declare – объявление переменных, векторов, матриц и функций.
Expand – раскрытие выражения, перемножение его членов, упорядочение по степеням.
Factor – разложение на простые множителя чисел и выражений.
Solve – решение уравнений.
Simplify – упрощение выражений.
Approx – приближенное вычисление выражений.
Особенности работы с математическими пакетами.
Современный уровень развития компьютерной алгебры не исключает отказа от выполнения символьных вычислений (система возвращает исходное выражение). Многие преобразования имеют ограниченную область применения. Поскольку при упрощении выражений система, должна выполнять только корректные преобразования, компьютеру может потребоваться квалифицированная помощь: подсказать направление дальнейших преобразовании, сузить класс значений параметра. Поэтому во многих системах имеются средства указания областей определения переменных.
Результаты некоторых преобразований выглядят неожиданными. Такие сюрпризы могут быть связаны с неоднозначностью функций, их взаимозаменяемостью и главным образом – с вынужденной стандартизацией методов решения. Последним объясняется и неспособность математических пакетов справиться с отдельными задачами, решения которых вошли в широко известные справочники. Это вполне естественно: упомянутые решения копились сотни лет и иногда достигались весьма искусственными приемами. Поэтому, например, при сравнении результата интегрирования с табличным следует иметь в виду возможность эквивалентных преобразований и различного представления констант. В таких случаях нужно получить разность интегралов, упростить ее и убедиться в том, что эта разность не зависит от переменной интегрирования.
Результатом символьного решения дифференциальных уравнений в общем случае является уравнение, связывающее зависимую и независимую переменные. Полезно выполнить его дифференцирование и затем контрольную подстановку.
При решении нелинейных уравнений и систем уравнений обычно требуется указание начальных приближений или области нахождения корней. И первом случае, как правило, находится единственное решение, в «области притяжения» которого оказалось исходное приближение, и для получения нового решения требуется сменить исходную точку. Если возможны комплексные корни, то, по крайней мере, одно приближение должно быть комплексным. Во втором за одно обращение возможно получение нескольких решений, но можно остаться ни с чем, поскольку процесс при выходе из указанной области завершается аварийно. «Свободный» поиск не имеет этих недостатков, но идет дольше и может завершиться отказом по исчерпанию предельного числа шагов. Во многих пакетах имеется возможность применить для решения системы несколько процедур, различающихся способами подготовки исходных данных.
Вообще известный принцип «доверяй, но проверяй» в полной мере относится и к работе с математическими пакетами, в которых не может не быть ошибок как на концептуальном уровне, так и на уровне программной реализации. Пользователь должен уметь критически оценивать результаты и искать способы их проверки. Такие возможности может дать только знание математики.
Наиболее распространенные системы компьютерной математики.
Самыми богатыми возможностями обладают профессиональные пакеты Mathematica и Maple . Они же предъявляют самые высокие требования к аппаратуре и наиболее сложны в освоении.
Maple V
Maple V – это среда для выполнения символьных, численных и графических вычислений профессиональными математиками, разработанная фирмой Waterloo Maple Software (University of Waterloo, Канада) и Высшей технической школой в Цюрихе. Она воплотила колоссальный математический потенциал, включает широчайший арсенал средств («от элементарном арифметики до общей теории относительности») и активно используется в научной среде, о чем свидетельствуют многочисленные ссылки в научных статьях. Выпускается журнал «Maple Technical Newsletter» и даже газета.
Набор осуществляется с помощью входного языка или с использованием палитры математических знаков. В систему встроен хороший текстовый редактор, позволяющий выполнять форматирование шрифта, абзаца. Maple позволяет преобразовать математический текст в формат Latex.
Набор графических возможностей уникален. При построении двумерных графиков Maple поддерживает 15 систем координат, а в трехмерном случае – 31 (с возможностями преобразования из одной системы в другую).
Mathematica
Система Mathematica разработана фирмой Wolfram Research и является мощным средством выполнения математических исследований как в символьной, так и в численной форме. Система справедливо считается мировым лидером среди компьютерных систем символьной математики для ПЭВМ. Она используется в 50 ведущих университетах мира и получила широкое распространение в образовательных учреждениях всех континентов. Список монографий, посвященных применениям Mathematica , содержит более двухсот наименований; издаются два журнала, проводятся ежегодные конференции. Разработчик поддерживает в сети Internet свободный доступ к громадному числу научных, методических и учебных продуктов, созданных сотрудниками фирмы и пользователями, число которых превысило миллион. На базе Mathematica создано около 100 специализированных коммерческих пакетов.
Ввод может осуществляться как с помощью палитр математических знаков, так и с использованием команд специального входного языка.
Сильной стороной этой системы является развитая двух- трехмерная графика.
Mathcad
Пакет Mathcad (MathSoft Inc., 1986-1998 гг.) является одним из наиболее удобных для несложных расчетов на ПЭВМ. Пакет имеет естественный входной язык представления математических выражений и инструменты их набора (палитры математических знаков).
Пакет – физико-математический: он позволяет вводить размерности переменных задачи и автоматически контролирует соответствие размерностей операндов и результата. Mathcad имеет встроенный текстовый процессор, который позволяет оформить статью без помощи специализированных текстовых редакторов. Рабочий лист состоит из отдельных зон, в которых помещаются формулы, результаты, графики, текст и т.п.
Вместе с пакетом могут использоваться прикладные дополнения (обработка сигналов и изображений, анализ электрических цепей, численный анализ, статистика, теория очередей), включающие в себя электронные гипертекстовые книги и программные компоненты.
Derive
Derive (Soft Warehouse Inc., 1996, Gonolulu) сочетает достаточно богатые возможности проведения численных и символьных вычислений с простотой и умеренными требованиями к ПЭВМ. Уже к 1995 г. система применялась в Австрии, Италии, 2500 школах Германии, половине школ Португалии, во Франции. Ядро Derive содержит около тысячи функций.
Ряд дополнительных возможностей реализуется при загрузке вспомогательных подпакетов — файлов с расширением .mth. Пользователь может оформлять подобным образом собственные разработки.
Система, работает в диалоговом режиме, последовательно нумеруя запросы пользователя и ответы на них. Явным неудобством является различие в номерах запросов и результатов, затрудняющее их сопоставление. Ввод математических символов допускается как извлечением их из панели инструментов, так и набором ключевых слов.
MatLab
Своим названием (MATrix LABoratory) система MatLab обязана ориентации на матричные и векторные вычисления. MatLab прошла многолетний путь развития от сиг-темы для больших ЭВМ до интегрированной среды, ориентированной на массовые ПК (с середины 80-х). MatLab – хорошо апробированная и надежная система, рассчитанная на широкий круг задач и представление данных в универсальной (матрично-векторной) форме.
MatLab называют: «симфонией алгоритмов». Считается, что эта система фактически стала международным стандартом учебного программного обеспечения. Она используется более чем в 70 ведущих университетах мира, включая Стэнфордский, Кембриджский и Калифорнийский, и в таких отечественных вузах, как МАИ, МГТУ, МГУ, МИФИ, Балтийский университет.
Недостатки MatLab – отсутствие спецзнаков математических операторов (корня, интеграла и т.д.), невозможность редактирования ранее введенных команд, комбинирования текста и графиков и ряд других неудобств в работе с последними, ограниченные возможности символьных вычислений.
В целом MatLab можно характеризовать как мощную и хорошо сбалансированную математическую систему, ориентированную преимущественно на инженерные приложения теории управления, электро- и радиотехники.
Вопросы для самопроверки.
1. Опишите структуру системы компьютерной математики.
2. Какие особенности следует учитывать при работе с системами компьютерной математики.
3. Приведите примеры современных систем компьютерной математики. Какие достоинства и недостатки имеет каждая из них.
Информационные системы. Основные понятия.
В основе решения многих задач лежит хранение и обработка больших массивов информации об объектах и явлениях реального мира. Такие массивы данных вместе с программно-аппаратными средствами для их обработки называют автоматизированными информационными системами или просто информационными системами (ИС) учитывая, что современные ИС являются, как правило, автоматизированными.
Сама идея ИС и некоторые принципы их организации возникли задолго до появления ЭВМ. Библиотеки, архивы, адресные книги, телефонные справочники, словари – все это ИС.
Базы данных.
Основа информационной системы, объект ее обработки – база данных.
База данных – в широком смысле – это совокупность сведений о конкретных объектах реального мира в какой-то предметной области.
В этом определении, вообще говоря, отсутствует упоминание о компьютере. Базой данных можно считать, например, картотеку в регистратуре поликлиники, которая ведется на картонных карточках и хранится на полках.
Если хранить эти же сведения в текстовых файлах, то некоторые действия можно выполнять быстрее и аккуратнее (например, распечатать рекомендации врача какому-либо пациенту), однако многие возможности компьютера при таком подходе останутся не задействованы. Дело в том, что в текстовых файлах обычно содержится неструктурированные данные, т.е. у компьютера отсутствует формальная информация о том, где какие данные находятся, поэтому использовать возможности ЭВМ для поиска и отбора нужных данных (например, отобрать пациентов определенного года рождения или с определенным диагнозом) очень сложно.
Процесс приспособления форматов и значений данных к нуждам ЭВМ, т.е. введение соглашений о способах представления данных, можно назвать структурированием информации.
Теперь можно уточнить определение базы данных и информационной системы.
База данных (БД) – совокупность специальным образом организованных данных, хранимых в памяти вычислительной системы и отображающих состояние объектов и их взаимосвязей в рассматриваемой предметной области.
Информационная система – это совокупность структурированных данных (базы данных) и комплекса аппаратно-программных средств для хранения данных и манипулирования ими.
Компоненты ИС:
· База данных.
· Система управления базами данных (СУБД) – пакет программ, позволяющий:
o Обеспечивать пользователя языковыми средствами описания и манипулирования данными.
o Обеспечить поддержку логических моделей данных. (т.е. взаимосвязи между данными)
o Обеспечить операции создания и манипулирования логическими данными и одновременное отображение этих операций на физическом уровне.
o Обеспечить защиту и целостность данных.
· Администратор БД – это специалист или группа специалистов, занятых обслуживанием пользовательской БД. Администратор должен координировать процессы сбора информации и эксплуатации БД, а также обеспечивать целостность и защиту данных. При разработке ИС обязательно учитываются интересы конечного пользователя. Главный принцип состоит в том, что от конечных пользователей не должно требоваться каких-либо специальных знаний в области вычислительной техники и языковых средств. Поэтому пользовательский интерфейс должен быть предельно прост и понятен.
· Вычислительная система (ВС) – совокупность взаимосвязанных и согласованно действующих ЭВМ и других устройств, обеспечивающих автоматизацию процессов приема, обработки и выдачи информации.
· Словарь данных – подсистема БД, предназначенная для централизованного хранения информации о структуре данных, хранящихся в БД, типах данных и форматах их представления, взаимосвязях файлов БД, принадлежности пользователей, кодах защиты информации и проч. присутствует во всех ИС, но не всегда имеет такое название, эти функции обычно поддерживает СУБД.
Классификация ИС.
В зависимости от используемых технических средств можно выделить следующие типы БД
· Локальные (ЛБД)– размещаются в памяти одной машины.
· Распределенные (РБД)– размещаются в памяти нескольких машин, соединенных в сеть.
Совокупность ЛБД, входящих в сеть ЭВМ, является РБД.
Информационные системы можно условно разделить на фактографические, документальные и экспертные.
В фактографических ИС регистрируются факты – конкретные значения данных об объектах реального мира. Основная задача таких ИС заключается в том, что все сведения об объектах (фамилии людей, названия предметов, даты и т.д.) сообщаются системе в каком-то заранее обусловленном формате (например, дата в виде ДД.ММ.ГГ). Информация, с которой работает фактографическая ИС, имеет четкую структуру, позволяющую машине отличать одно данное от другого. Поэтому фактографическая система способна давать однозначные ответы на поставленные вопросы. Например, ИС магазина может ответить на вопрос «Сколько велосипедов марки Салют продал магазин за май месяц», ИС вокзала – «Какие поезда проходят через город Нижний Новгород» и т.д.
Документальные ИС работают с неструктурированными текстовыми документами (статьи, книги, рефераты, тексты законов …), графическими или мультимедийными объектами. Такие ИС имеют формализованный аппарат поиска нужного документа. Цель такой системы – выдать в ответ на запрос пользователя список документов или объектов, в какой-то мере удовлетворяющих сформулированным в запросе условиям. Например, выдать список всех статей, в которых встречается слово «Рак». Принципиальной особенностью документальной ИС является ее способность, с одной стороны, выдавать ненужные пользователю документы (например, если нужно «рак» – животное, а система отберет «рак» - болезнь), а с другой стороны – не выдавать нужные (например, если в запросе употреблен синоним или произошла ошибка в написании).
Современные фактографические системы часто работают с неструктурированными блоками информации (текстом, графикой, видео), снабженными структурированными описателями.
Рассмотрим пример.
Пусть объектом обработки фактографической ИС служит список эстрадных певцов, причем, для каждого певца имеются данные:
1. Сценическое имя (не более 20 символов)
2. Дата рождения в формате ДД.ММ.ГГГГ
3. Пол (М или Ж)
4. Биография
5. Фонограмма
Располагая структурированными описателями (имя, дата рождения, пол), система может выдать строгие ответы на вопросы:
1. О каждом певце персонально
2. О распределении певцов по возрасту и полу (в любых сочетаниях)
Та же информация дублируется в тексте биографии, однако, там она не структурирована. Если удалить описатель, то получится документальная ИС.
Важнейший этап обработки любого документа, поступающего на хранение в документальную ИС – индексирование. Индексирование состоит из двух этапов:
· Выявление основного содержания документа.
· Описание содержания документа на информационно-поисковом языке и получение соответствующего поискового образа документа (ПОД).
При получении запроса на поиск документа составляется поисковый образ запроса, который в процессе поиска сравнивается с поисковыми образами документов, до тех пор пока не будет найдено совпадение.
Информационно поисковые языки (ИПЯ) можно разделить на три группы:
· Классификационные
o ИПЯ с иерархической структурой.
o ИПЯ с фасетной структурой.
o Эмпирические (неиерархические) языки.
· Дескрипторные.
· Комбинированные.
В иерархических классификационных системах термины находятся между собой в отношении включения. При записи они располагаются в порядке постепенного перехода от общих к частным. Примером такой системы является универсальная десятичная классификация (УДК), применяемая в библиотечном деле (создана в 19-20 веке). Каждый класс (первая ступень) содержит группу более или менее близких наук, например 5 математика и естественные науки, 6 – прикладные науки (в том числе и информатика)…каждая следующая цифра не меняя значения предыдущих, уточняет их, обозначая более частное понятие. УДК указывается на второй странице титульного листа книги. Пример 51.938 («Красота фракталов. Образы комплексных динамических систем»).
Примером эмпирической классификационной системы может быть алфавитно-предметная классификация.
В дескрипторных ИПЯ смысловое содержание документа выражается списком ключевых слов (дескрипторов). Дескриптор – слово или словосочетание естественного языка, отражающее один из аспектов содержания документа. Для обеспечения поиска используется поисковый образ данных, который содержит фиксированный набор дескрипторов, быть может связанных между собой логическими операциями.
Еще одним видом информационных систем являются экспертные системы.
Экспертные ИС – имитируют поведение эксперта (специалиста) в той или иной области. Экспертная система может генерировать новую информацию на основе имеющейся у нее и давать разумные советы исследователям. В основе операций экспертной системы – обработка базы знаний, составленной специалистами в данной области. База знаний содержит факты – изменяющаяся информация, характеризующая состояние объекта – и правила – информацию о том, как получать новые факты.
Объекты, атрибуты, связи
Целью ИС является обработка данных об объектах реального мира, с учетом связей между ними. В теории фактографических ИС данные часто называются атрибутами, а объекты – сущностями.
Объект (сущность) – это нечто существующее и различимое, т.е. объектом можно назвать то, для чего существует название и способ отличать один подобный объект от другого. Например, город, человек, класс в школе, фирма, химическое соединение – могут быть объектами в той или иной БД.
Группа подобных объектов образует класс объектов. Например классами объектов могут быть города, люди, работающие на предприятии, товары на складе и т.д. конкретный объект в такой группе является экземпляром класса.
Атрибут (или данное) – это некоторый показатель (параметр, признак, свойство), который характеризует некий объект и принимает для конкретного экземпляра конкретное значение. Например, класс объектов – города России. Название города – атрибут, принимающий текстовое значение (например, Москва, Красноярск, Тамбов), численность населения – атрибут, принимающий числовое значение и т.д.
ИС оперирует классами объектов, выделенных применительно к данной предметной области, используя при этом конкретные значения атрибутов тех или иных экземпляров класса.
Атрибут некоторого класса объектов сам может быть объектом, имеющим собственные атрибуты. Например, атрибутом служащего является ВУЗ, который он окончил. С другой стороны, конкретный ВУЗ – это объект, характеризующийся собственным набором атрибутов: адрес, фамилия ректора, список факультетов. Таким образом возникает возможность установления связи между экземплярами объектов разных классов.
Пример. Рассмотрим пример промышленной компании. В этом случае желательно хранить информацию о: проектах, деталях (для этих проектов), поставщиках (деталей), складах (где хранятся эти детали), служащих… все перечисленное представляет собой сущности.
Между этими объектами существуют связи или отношения (показаны стрелками). На приведенной схеме большинство связей объединяют два типа объекта, но это не всегда так. Например, стрелка может объединять три типа объекта (поставщики – детали – проекты). Это отражает тот факт, что определенные поставщики поставляют определенные детали для определенных проектов. Связь может охватывать и один тип объекта (детали). Она отражает то, что некоторые детали могут являться компонентами других деталей.
В общем случае одни и те же объекты могут быть соединены произвольным числом связей (проекты – служащие две связи: одна из них «работает над», другая «руководит проектом»).
Таким образом, подобная БД представляет собой сущности, атрибуты и связи, иначе говоря, содержит логически связанные данные.
Модели данных
Общее описание БД называется моделью БД.
Модель данных – интегрированный набор понятий для описания данных, связей между ними и ограничений, накладываемых на данные в некоторой организации.
Таким образом, модель данных представляет собой структуру БД и включает в себя описание всех классов объектов, их атрибутов и связей между ними. Модель данных описывает правила, по которым построена БД, определяет допустимые операции с данными.
В фактографических ИС выделяют следующие типы моделей данных:
1. Реляционная;
2. Сетевая;
3. Иерархическая;
Иерархическая модель
Иерархическая модель исторически появилась первой. Ее появление связано с тем, что в реальном мире очень многие связи соответствуют иерархии, когда один объект выступает как родительский, а с ним может быть связано множество подчиненных объектов. Иерархия проста и естественна в отображении взаимосвязи между классами объектов.
Основными информационными единицами в иерархической модели являются: БД, сегмент, поле.
Поле – минимальная, неделимая единица данных, описывает одну из характеристик объекта.
Сегмент (запись) – совокупность данных об одном объекте.
В иерархической модели сегменты объединяются в древовидный граф. При этом направленные ребра графа отражают иерархические связи между сегментами: каждому экземпляру сегмента, стоящему выше по иерархии (сегменты-предки) соответствует множество экземпляров подчиненного типа сегмента (сегменты-потомки).
Таким образом БД представляет собой совокупность отдельных деревьев. При этом действуют следующие ограничения:
· В каждом дереве есть один корневой сегмент, т.е. сегмент у которого нет логически исходного.
· Каждый исходный сегмент может иметь произвольное число подчиненных сегментов.
· Подчиненный сегмент может иметь только одного родителя.
Сетевая модель
Сетевая модель данных – модель, состоящая из записей данных и связей, установленными между записями.
Сетевую модель можно представить как граф с записями в виде узлов и связями в виде ребер. На связи между объектами не накладывается ограничений.
Сетевой БД фактически является Всемирная паутина (WWW) сети Интернет. Гиперссылки связывают между собой сотни миллионов документов в единую сетевую БД.
При использовании сетевых и иерархических моделей от пользователя требуется знание физической организации БД, к которой он должен осуществлять доступ.
Реляционная модель (РМ)
Реляционная БД представляет собой совокупность логически связанных таблиц. Основной структурой данных является отношение (таблица). Можно доказать, что любую структуру можно преобразовать в набор двумерных таблиц.
В таблицу помещаются данные об объектах одного типа. Заголовками столбцов служат атрибуты (свойства) описываемых объектов. Столбцы таблицы называются полями, строки – записями или кортежами.
Поле характеризуется своим именем и типом данных (текстовый, числовой, денежный и т.д. )
Ключевым называется поле, значение которого однозначно определяет запись таблицы.
Как правило, реляционные БД состоят из более чем одной таблицы. Таблицы связываются между собой по общему полю. Связи, установленные между таблицами, позволяют осуществить поиск одних записей по значению других.
Отделы.
Номер Отдела | улица | Город | Индекс | телефон | Факс |
В5 | … | Москва | … | 1223454 | 8767652 |
В7 | … | Новгород | … | 1286653 | 5435435 |
В3 | … | Москва | … | 8766542 | 6544322 |
В4 | … | … | … | 4354376 | 9876552 |
В2 | … | … | … | 9876543 | 9876543 |
Сотрудники.
Номер сотр. | Фам. | имя | Адрес | тел | должность | Дата рожд. | Доход | Номер отдела |
СЛ-21 | Иванов | Н. | В5 | |||||
СГ-37 | Петров | И. | В3 | |||||
СГ-14 | … | … | В3 | |||||
СА-9 | … | … | В7 | |||||
СГ-5 | … | … | В3 | |||||
СЛ-41 | … | … | В5 |
Между таблицами «Отделы» и «Сотрудники» существует связь: сотрудник работает в отделении компании. Но существование этой связи можно заметить только зная, что атрибут «номер отдела» в таблице Сотрудники эквивалентен атрибуту «Номер отдела» в таблице «Отделы».
Иерархическая модель.
Этот же пример в сетевой модели.
К СУБД реляционного типа относятся: dBASE, FoxPro, Paradox, Access и др. Интерфейсы различных СУБД менее унифицированы, чем интерфейсы текстовых или графических редакторов, поэтому трудно дать общее описание.
Например, в СУБД Access каждая БД состоит из следующих объектов:
Таблицы – базовый объект БД. В таблицах хранится вся информация.
Запросы. Главное предназначение запросов – это отбор данных на основании заданных условий.
Форма. Отображает данные таблицы или запроса в более удобном виде.
Отчет. Предназначен для печати данных из таблиц и запросов.
Макросы и модули – служат для автоматизации повторяющихся операций, для написания процедур обработки событий (пишутся на языке )
Вопросы для самопроверки.
· Что представляет собой современная информационная система (ИС).
· Перечислите виды ИС.
· Назовите компоненты, входящие в состав ИС.
· Проведите классификацию БД.
· Модели данных. Опишите основные модели данных.
Лекции 16 – 18
Системы программирования.
Эволюция разработки программного обеспечения.
С момента появления первых ЭВМ разработка программного обеспечения прошла большой путь: от восхищения фактом возможности написать хоть какую-то программу до осознания того, что именно технология разработки программного обеспечения определяет прогресс в вычислительной технике.
На первых этапах развития вычислительной техники основное внимание было сосредоточено на решении технических проблем. Предметом забот была, прежде всего, аппаратура, вычислительная техника как таковая. Это было время применения языков программирования низкого уровня:
· машинные языки. Программы разрабатывались в двоичных кодах, т.е. непосредственно на «языке понятном машине». Каждая ЭВМ имеет свой машинный язык (совокупность машинных команд).
· машинно-ориентированные языки (язык Ассемблера). Ассемблер – система обозначений, которая позволяет представить в удобной форме программы, записанные в машинных кодах. Программист может использовать текстовые мнемонические коды, присваивать символические имена регистрам процессора и памяти, использовать различные системы счисления.
Машинно-ориентированные языки используются и сейчас для разработки системного ПО. Они позволяют использовать все возможности аппаратуры, но процесс написания программы трудоемкий и требует высокой квалификации программиста, т.к. необходимо знание работы микропроцессора, памяти и других аппаратных средств.
По мере развития техники, росло значение программного обеспечения. Важнейший прорыв произошел в конце 50-х годов, с появлением языков программирования высокого уровня (Фортран – предназначенный для математических, научных, технических расчетов, Алгол и др.). Ускорив и упростив программирование, языки высокого уровня существенно расширили круг задач, которые стали решаться с помощью ЭВМ. Новые задачи, более сложные, чем раньше, привели к тому, что имеющихся средств снова стало недостаточно для их успешного решения.
Прежде всего, усилия были сосредоточены на создании новых языков программирования. Появились язык Кобол, предназначенный для обработки экономической информации, PL/1, призванный объединить все возможности языков программирования.
Все ранее упоминаемые языки были процедурными. Программа, написанная на этих языках, представляет собой последовательность шагов для решения поставленной задачи. К процедурным языкам относятся также появившиеся позже Basic, Pascal.
Basic – прост в освоении и использовании, т.к. был разработан в Дартмунд Колледже для обучения программированию. Основывался на Фортране. Первые версии страдали отсутствием структуры. С момента создания претерпел существенные изменения и превратился в серьезный язык программирования. Один из самых распространенных языков программирования.
Pascal – Создан Николасом Виртом на базе языка Алгол в учебных целях. Программы понятны и легко читаются. Язык позволяет осуществлять структурное программирование, что сделало его популярным в научных исследованиях. Поддерживает принцип модульности – независимой разработки отдельных частей программы и последующего их связывания в единую систему.
Си – системный язык, послужил инструментом для создания ОС Unix, MS-DOS. Имеет более гибкие средства для использования особенностей аппаратуры, нежели Паскаль. Программы компактны и работают быстрее.
Применение ЭВМ для решения задач искусственного интеллекта и обработки текстов привело к созданию функциональных языков, в частности Lisp и Prolog.
Prolog – программирование в терминах логики. Предназначен для обработки символьной нечисловой информации. Хорошо приспособлен для решения задач, в которых фигурируют объекты и отношения между ними.
Например, формулируются предложения:
родитель(Иван, Сергей). // Иван родитель Сергея
родитель(Вера, Сергей). // Вера родитель Сергей
родитель(Сергей, Елена)
родитель(Сергей, Илья)
После ввода такой программы можно будет задавать вопросы:
? – родитель(Вера, Сергей)
yes
? – родитель(Вера, Илья)
no
? – родитель(Х, Елена) //Кто родитель Елены
Х=Сергей
? – родитель(Сергей, Х) //Кто дети Сергея
Х=Елена
Х=Илья
и т.д.
Лисп – позволяет строить адаптирующиеся и самоизменяющиеся программы, т.к. объектами, которые порождает программа, могут быть и сами программы.
В 60-е годы многими теоретиками и практиками было осознано, что только лишь создание новых, более совершенных языков программирования не может решить все проблемы разработки программ. Начались интенсивные исследования в области тестирования программ, организации процесса разработки программного обеспечения и др.
Усилия преобразовать программирование из эмпирического процесса в более упорядоченный, придать ему более «инженерный» характер вылились в создание методик программирования. Это был очень существенный шаг. Разработка методов построения программ, с одной стороны, создавала основу для массового программирования, а с другой, давала мощный импульс к созданию новых языков программирования, сред программирования.
Одной из наиболее широко применяемых методик программирования стало структурное программирование. Структурное программирование (создатель – Э.Дейкстра) – это первая законченная методология программирования, предлагающая путь от задачи до ее воплощения в программе. Структурное программирование оказало огромное влияние на развитие программирования. Этот метод не потерял своего значения и сейчас.
Структурный подход базируется на двух основных принципах:
· использование процедурного стиля программирования;
· последовательное решение задачи методом нисходящего проектирования.
Преимущества в использовании структурного программирования состоят в том, что не используется безусловный переход, и программы не имеют многочисленных точек входа и выхода. Чуть позже добавилась концепция модульного программирования, основной особенностью которого является то, что программы разбиты на отдельные блоки (подпрограммы). Преимущества:
1. маленькие модули можно писать легко и быстро;
2. модули общего назначения можно использовать неоднократно, что приведет к уменьшению времени разработки новых программ;
3. модули можно отлаживать и тестировать независимо от всей программы.
Очередное увеличение сложности решаемых задач и создаваемых программных систем привело к широкому распространению объектно-ориентированного программирования (ООП). Объектно-ориентированное программирование в большей степени, чем модульное, позволяет создавать программы, обладающие структурированностью, модульностью и абстракциями данных. Термином класс определяется абстрактный тип данных. Объекты одного класса имеют перечень общих свойств или полей и методов (действий, которые можно проделать с объектом данного класса). Механизм наследования позволяет строить иерархию типов, порождать производные классы, которые наследуют от классов-родителей поля и методы и, кроме того, имеют свои поля и методы.
Системы программирования.
Системы программирования – это комплекс инструментальных программных средств, предназначенных для создания программ на одном из языков программирования.
Системы программирования предоставляют программистам сервисные возможности при разработке и отладки программ.
В состав систем программирования входят:
· текстовый редактор, осуществляющий функции записи и редактирования исходного текста программы.
· средства для работы с файлами (сохранение, удаление, открытие файлов, содержащих тексты программ)
· средства запуска программ,
· транслятор, осуществляющий перевод исходного текста программы с языка высокого уровня в машинный код.
· отладчик, выполняющий сервисные функции по отладке и тестированию программ.
· библиотека стандартных программ и функций.
Сейчас большое распространение получили визуальные среды программирования, которые существенно облегчают создание приложений. В этих средах построение интерфейса приложений осуществляется путем выбора из Палитры компонент нужных управляющих элементов (кнопок, полей ввода, текстовых полей…). Затем программист определяет свойства выбранного элемента, реакцию на различные воздействия. Соответствующий программный код генерируется автоматически. (Visual Basic, Visual C++, Delphi и др.)
Трансляция программ и сопутствующие процессы.
Идеи трансляции (перекодирования) одних символов в другие легли в основу создания различных языков программирования с соответствующими трансляторами (если текст программы записать на языке программирования, со строгими правилами, то этот текст можно перевести в машинный код автоматически, с помощью специальной программы – транслятора).
Трансляторы реализуются в виде компиляторов и интерпретаторов.
Компилятор (compiler – составитель, собиратель) делает перевод целиком всей программы на машинный язык (.exe или .com файл), который затем и выполняется. После компиляции уже не нужны ни исходный текст программы, ни компилятор. Компиляторы встраиваются в системы программирования для языков Паскаль, Си и др.
Процесс компиляции:
· Исходный текст программы (исходный модуль) переводится (компилируется) в двоичный машинный код (получается объектный модуль).
Перед этим текст программы анализируется (проверка синтаксиса и семантики).
· синтаксический анализ программы – проверка формальных правил языка.
· семантический анализ – совпадение количества begin и end, скобок, описание переменных и т.д.
· Затем производится компоновка, которая заключается в подключении к исходному объектному модулю соответствующих подпрограмм.
В результате получается абсолютный или загрузочный модуль (его файл имеет, как правило, расширение com или exe).
Различные фазы компиляции могут быть как последовательны, так и частично перекрываться во времени. В зависимости от способа реализации компилятор читает и обрабатывает исходный текст один или несколько раз, называясь соответственно однопроходным, двухпроходным и т.д.
Интерпретатор (interpreter - истолковыватель) переводит и выполняет программу строка за строкой. При каждом очередном запуске программа заново транслируется. (Basic).
Откомпилированные программы работают быстрее, интерпретируемые – проще исправлять и изменять. Некоторые системы программирования имеют и компилятор и интерпретатор.
Современные системы программирования на языках высокого уровня интегрируют в себе возможности интерпретаторов и компиляторов, а, кроме того, в системы программирования добавляют различные сервисные утилиты по трансляции и отладки создаваемых программ.
Важнейшим элементом в развитии систем программирования выступили подпрограммы. Появление аппарата подпрограмм существенно облегчило процесс разработки программ. Подпрограммы позволили формировать библиотеки из наиболее часто употребляемых процедур и функций. В системах программирования обязательно присутствуют библиотеки встроенных процедур и функций (например, вычисления математических функций sin, cos и др.).
В настоящее время распространены пользовательские и прикладные библиотеки подпрограмм. В современных системах получили широкое распространение модули (Unit), представляющие специализированные пакеты взаимосвязанных подпрограмм определенного назначения, например для работы с клавиатурой, с графикой и т. д.
Современная программа представляет собой набор команд, операторов и выражений, в которых имеются ссылки на различные подпрограммы из библиотек и модулей. Поэтому исходный текст программы может занимать в памяти меньше места, чем его оттранслированный вариант.
Отладчики
Эти программы входят в состав системы программирования и предоставляют средства для просмотра и изменения значений переменных в ходе отладки программы, поиска ошибок и т.д. Использование отладчиков значительно облегчает процесс доводки больших программ.
Вопросы для самопроверки.
· Проведите классификацию языков программирования.
· Что представляют собой системы программирования. Что входит в состав системы программирования.
· Проведите классификацию программ-трансляторов. Каковы особенности программ-трансляторов каждого класса.
· Что происходит в процессе трансляции программы. Каковы основные этапы трансляции.
Visual Basic for Applications
Visual Basic for Applications (VBA) - это сочетание одного из самых простых языков программирования и всех возможностей Windows-приложений. Он прост в освоении и позволяет быстро получать ощутимые результаты - конструировать профессиональные приложения, решающие практически все задачи, встречающиеся в среде Windows. При этом создание многих приложений с использованием VBA проще и быстрее, чем при помощи других языков программирования.
В VBA применяется технологию визуального программирования, т. е. конструирование рабочей поверхности приложения и элементов его управления непосредственно на экране. VBA содержит графическую среду, позволяющую наглядно конструировать экранные формы и управляющие элементы. Также имеется возможность записи всей программы или ее частей при помощи средства МасroRecorder (автоматическая запись макроса).
Объекты. Методы и свойства объектов
Дата: 2019-05-28, просмотров: 255.