Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Ответы по информатике - файл 1.doc


Ответы по информатике
скачать (1803 kb.)

Доступные файлы (1):

1.doc1803kb.16.11.2011 09:26скачать

содержание
Загрузка...

1.doc

1   2   3   4   5   6   7   8
Реклама MarketGid:
Загрузка...

^ 11. Линейный алгоритм. Алгоритмическая структура «вветление». Алгоритмическая структура «выбор». Алгоритмическая структура «цикл».

Алгоритмы можно представлять как некоторые структуры, состоящие из отдельных базовых (т.е. основных) элементов. Логическая структура любого алгоритма может быть представлена комбинацией (суперпозицией) четырех базовых структур: следование, ветвление, цикл, подпрограмма. Характерной особенностью базовых структур является наличие в них одного входа и одного выхода.

Базовая структура "следование" (линейная алгоритмическая конструкция) образуется последовательностью действий, следующих одно за другим.

Простейшие задачи имеют линейный алгоритм решения. Это означает, что такой алгоритм не содержит проверок условий и повторений, действия в нем выполняются последовательно, одно за другим, т.е. при его реализации используется структура "следование".

Чаще всего алгоритмы предполагают обработку некоторых величин. Величина – это элемент данных с точки зрения их смыслового (семантического) содержания или обработки. При разработке алгоритма данные можно разбить по смыслу на входные – аргументы, выходные – результаты и промежуточные. Исходные (входные) – это данные, известные перед выполнением задачи, из условия. Выходные данные – результат решения задачи. Переменные, которые не являются ни аргументом, ни результатом алгоритма, а используются только для обозначения вычисляемого промежуточного значения, называются промежуточными. Чаще всего требуется указать имена и типы данных – целый, вещественный, логический и символьный, либо структурированный, базирующийся на одном из названных.

Итак, с понятием величины связаны следующие характеристики (атрибуты):

имя – это ее обозначение и место в памяти;

тип – множество допустимых значений и множество применимых операций к ней, объем занимаемой памяти и способ представления в памяти ЭВМ:

значение – динамическая характеристика, может меняться многократно в ходе исполнения алгоритма. Во время выполнения алгоритма в каждый конкретный момент величина имеет какое-то значение или не определена.

Постоянной называется величина, значение которой не изменяется (и не может быть изменено в принципе) в процессе исполнения алгоритма, а остается одним и тем же, указанным в тексте алгоритма.

Переменной называется величина, значение которой меняется в процессе исполнения алгоритма.

Для того чтобы переменная величина могла определить или изменить свое значение, новое значение должно быть ей присвоено.

Оператор присваивания – один из самых простых и наиболее часто используемых операторов в любом языке программирования. Он предназначен для вычисления нового значения некоторой переменной, а также для определения значения, возвращаемого функцией.

В общем виде оператор присваивания можно записать так:

<переменная> <знак команды присваивания> <выражение>

Оператор выполняется следующим образом. Вычисляется выражение в правой части присваивания. После этого переменная, указанная в левой части, получает вычисленное значение. При этом тип выражения должен быть совместим по присваиванию с типом переменной.

Свойства присваивания:

  • пока переменной не присвоено значение, она остается неопределенной;

  • значение, присвоенное переменной, сохраняется в ней вплоть до выполнения следующего присваивания этой переменной нового значения;

  • новое значение, присвоенное переменной, заменяет ее предыдущее значение.

Выражения предназначаются для выполнения необходимых вычислений, состоят из операндов (констант, переменных, вызовов функций), объединенных знаками операций. Выражения записываются в виде линейных последовательностей символов (без подстрочных и надстрочных символов, обыкновенных дробей и т.д.), что позволяет вводить их в компьютер.

Различают выражения арифметические, логические и строковые.

Арифметические выражения служат для определения одного числового значения.

Например, (1+sin x)/2. Значение этого выражения при х=0 равно 0,5.

Логическое выражение может принимать только два значения – "истина" или "ложь" {"да" или "нет"). Например, логическое выражение х∙х+у∙у<r∙r определяет принадлежность точки с координатами (х, у) внутренней области круга радиусом r с центром в начале координат. При х=4, у=–2, r=5 значение этого выражения – "истина", а при х=6, у=2, r=5 – "ложь".

Строковые (литерные) выражения, значениями которых являются последовательности символов. В строковые выражения могут входить литерные и строковые константы, литерные и строковые переменные, литерные функции, разделенные знаками операции сцепления. Например, А+В означает присоединение строки В к концу строки A. Если А="Мама мыла", а В="раму.", то значение выражения А+В есть "Мама мыла раму.".

При составлении алгоритмов решения разнообразных задач часто бывает необходимо обусловить те или иные предписания, т.е. поставить их выполнение в зависимость от результата, который достигается на определенном шаге исполнения алгоритма. Например, алгоритм нахождения корней квадратного уравнения с помощью компьютера должен содержать проверку знака дискриминанта. Лишь в том случае, когда дискриминант положителен или равен нулю, можно проводить вычисление корней. Алгоритм перемещения в заданный пункт по улицам города обязательно должен содержать предписание проверки сигналов светофоров на пересечениях улиц, поскольку они обусловливают движение на перекрестках. Можно привести еще много примеров подобных ситуаций, которые не имеют решения в рамках структуры "следование" (линейная алгоритмическая конструкция). По этой причине в теории алгоритмов наряду со "следованием" предлагается вторая базовая структура, называемая "ветвление". Эта структура предполагает формулировку и предварительную проверку условий с последующим выполнением тех или иных действий, реализуя альтернативный выбор.

В словесной форме представления алгоритма "ветвление" реализуется в виде команды:

если <ЛВ> то <Серия 1> Иначе <Серия2>

Здесь <ЛВ> – это логическое выражение, <Серия1> – описание последовательности действий, которые должны выполняться, когда <ЛВ> принимает значение ИСТИНА, <Серия2> – описание последовательности действий, которые должны выполняться, когда <ЛВ> принимает значение ЛОЖЬ. Любая из серий может быть пустой. В этом случае ветвление называется неполным. Каждая серия может, в свою очередь, содержать команду ветвления, что позволяет реализовать не только альтернативный выбор действий.


Достаточно часто при организации алгоритма решения задачи необходимо одну и ту же определенную последовательность команд выполнить несколько раз подряд. Конечно, самый простой способ – записать эти команды несколько раз друг за другом, и необходимое повторение действий будет организовано. Но как быть в тех случаях, когда количество команд, которые исполняются несколько раз, слишком велико? Или само количество повторений команд огромно? Или вообще неизвестно, а сколько же раз нужно повторить последовательность команд? Решить все эти проблемы можно, если использовать алгоритмическую структуру цикл.

Командой повторения, или циклом, называется такая форма организации действий в алгоритме, при которой выполнение одной и той же последовательности команд повторяется до тех пор, пока истинно некоторое логическое выражение.

Для организации цикла необходимо выполнять следующие действия:

  • перед началом цикла задать начальное значение параметров (переменных, используемых в логическом выражении, отвечающем за продолжение или завершение цикла);

  • внутри цикла изменять переменную (или переменные), которая сменит значение логического выражения, за счет которого продолжается цикл, на противоположное (для того, чтобы цикл в определенный момент завершился);

  • вычислять логическое выражение – проверять условие продолжения или окончания цикла;

  • выполнять операторы внутри цикла;

  • управлять циклом, т.е. переходить к его началу, если он не закончен, или выходить из цикла в противном случае.

Различают циклы с известным числом повторений (цикл с параметром) и итерационные (с пред- и постусловием).


^ 15. Классы объектов, экземпляры класса и семейства объектов. Объекты: свойства, методы, события

Основополагающей идеей одного из популярных в настоящее время подходов к программированию — объектно-ориентированного — является объединение данных и обрабатывающих их подпрограмм в единое целое — объекты. Объектно-ориентированное программирование (далее ООП) — это методология программирования, которая основана на представлении программы в виде совокупности объектов, каждый из которых является реализацией определенного класса (типа особого вида), а классы образуют иерархию на принципах наследуемости. При этом объект характеризуется как совокупностью всех своих свойств и их текущих значений, так и совокупностью допустимых для данного объекта действий.

Несмотря на то, что в различных языках и системах программирования делается акцент на те или иные особенности внедрения и применения ООП, три основных (базовых) понятия ООП остаются неизменными. К ним относятся:

  1. наследование (inheritance);

  2. инкапсуляция (encapsulation);

  3. полиморфизм (polymorphism).

Эти понятия, как три кита, лежат в основе ООП.

При процедурном подходе требуется описать каждый шаг, каждое действие алгоритма для достижения конечного результата. В отличие от него, объектно-ориентированный подход оставляет за объектом право решать, как отреагировать и что сделать в ответ на поступивший вызов. Достаточно в стандартной форме поставить перед ним задачу и получить ответ.

Как отмечалось выше, объект состоит из следующих трех частей:

  • имя объекта;

  • состояние (переменные состояния);

  • методы (операции).

Можно дать обобщающее определение: объект ООП — это совокупность переменных состояния и связанных с ними методов (операций). Эти методы определяют, как объект взаимодействует с окружающим миром.

Под методами объекта понимают подпрограммы (процедуры и функции), которые выполняют действия. Их объявление включено в описание объекта. Возможность управлять состояниями объекта посредством вызова методов в итоге и определяет поведение объекта. Эту совокупность методов часто называют интерфейсом объекта.

Инкапсуляция — это механизм, который объединяет данные и методы, манипулирующие этими данными, и защищает и то и другое от внешнего вмешательства или неправильного использования. Когда методы и данные объединяются таким способом, создается объект.

При использовании инкапсуляции данные, принадлежащие объекту, защищаются от возможных ошибок, которые могут возникнуть при прямом доступе к этим данным. Кроме того, применение этого принципа очень часто помогает локализовать возможные ошибки в коде программы. А это намного упрощает процесс поиска и исправления этих ошибок. Можно сказать, что инкапсуляция подразумевает под собой скрытие данных, что позволяет защитить эти данные. Однако применение инкапсуляции ведет к снижению эффективности доступа к элементам объекта. Это обусловлено необходимостью вызова методов для изменения внутренних элементов (переменных) объекта. Но при современном уровне развития вычислительной техники эти потери в эффективности не играют существенной роли.

Наследование — это процесс, посредством которого один объект может наследовать свойства другого объекта и добавлять к ним черты, характерные только для него. В итоге создается иерархия объектных типов, где поля данных и методов предков автоматически являются и полями данных и методов потомков.

Смысл и универсальность наследования заключаются в том, что не надо каждый раз заново ("с нуля") описывать новый объект, а можно указать родителя (базовый класс) и описать отличительные особенности нового класса. В результате новый объект будет обладать всеми свойствами родительского класса плюс своими собственными отличительными особенностями.

При описании типа-потомка необходимо указать, какой класс или объект он наследует, во всем остальном описание совпадает с приведенными выше. Следует помнить, что поля наследуются без какого-либо исключения. Поэтому, объявляя новые поля, требуется следить за уникальностью их имен, иначе совпадение имени нового поля с именем наследуемого поля вызовет ошибку. На методы это правило не распространяется.

Перечислим правила наследования:

  1. информационные поля и методы родительского типа наследуются всеми его типами-потомками независимо от числа промежуточных уровней иерархии;

  2. доступ к полям и методам родительских типов в рамках описания любых типов-потомков выполняется так, как будто бы они описаны в самом типе-потомке;

  3. ни в одном из типов-потомков не могут использоваться идентификаторы полей, совпадающие с идентификаторами полей какого-либо из родительских типов. Это правило относится и к идентификаторам формальных параметров, указанных в заголовках методов;

  4. тип-потомок может доопределить произвольное число собственных методов и информационных полей;

  5. любое изменение текста в родительском методе автоматически оказывает влияние на все методы порожденных типов-потомков, которые его вызывают;

  6. в противоположность информационным полям идентификаторы методов в типах-потомках могут совпадать с именами методов в родительских типах. При этом одноименный метод в типе-потомке подавляет одноименный ему родительский — ив рамках типа-потомка при указании имени такого метода будет вызываться именно метод типа-потомка, а не родительский.

Полиморфизм − это свойство, которое позволяет одно и то же имя использовать для решения нескольких технически разных задач. Полиморфизм подразумевает такое определение методов в иерархии типов, чтобы метод с одним именем мог применяться к различным родственным объектам. В общем смысле концепцией полиморфизма является идея "один интерфейс, множество методов". Преимуществом полиморфизма является то, что он помогает снижать сложность программ, разрешая использование одного интерфейса для единого класса действий. Выбор конкретного действия в зависимости от ситуации возлагается на компилятор.

Механизм работы ООП в таких случаях можно описать примерно так: при вызове того или иного метода класса сначала ищется метод у самого класса. Если метод найден, то он выполняется, и поиск этого метода на этом завершается. Если же метод не найден, то обращаемся к родительскому классу и ищем вызванный метод у него. Если он найден, поступаем как при нахождении метода в самом классе. А если нет, продолжаем дальнейший поиск вверх по иерархическому дереву, вплоть до корня (верхнего класса) иерархии. Этот пример отражает так называемый "механизм раннего связывания".

Такова в общих чертах технология объектно-ориентированного программирования. Следует отметить, что эта технология за последние 20 лет получила широкое распространение и нашла свое дальнейшее развитие в языках визуального программирования и интернет-программирования.

Не менее важно умение пользоваться категориями объектного программирования. Действительно, объект является одним из центральных понятий систем программирования обсуждаемого типа. Чтобы подчеркнуть отличие от предшествующих "невизуальных" сред, для обозначения объектов вводится новый термин — компонент. Большинство компонентов имеют свой графический образ, но это не является обязательным требованием: в качестве примера назовем "невидимый" компонент таймер.

Каждый компонент обладает своими собственными (или наследуемыми от своих предков) свойствами (property) и методами (method). Объединение свойств и методов в единый объект еще раз иллюстрирует обсуждавшееся в предыдущем билете свойство инкапсуляции.

Мы уже упоминали ранее в нашем рассказе о некоторых простейших свойствах визуальных объектов, таких, как их геометрические размеры и координаты. Сейчас определим данное понятие более строго. Свойства − это атрибуты объекта, определяющие то, как он выглядит или как себя ведет. Примеров первого рода было уже достаточно, а в качестве свойства, определяющего поведение объекта, назовем то, которое описывает включенное или выключенное состояние компонента (enabled). Несмотря на сложное название, данное свойство имеет очень простой смысл — оно показывает, активен ли объект сейчас и будет ли результат от попытки щелкнуть по нему мышью. Кнопки и пункты меню, для которых enabled=false, имеют в окне характерный "затуманенный" вид и, естественно, никаких действий не вызывают.

Очень важно понимать, что, хотя для задания свойств формально используется оператор присваивания, истинный механизм существенно глубже. Если для классической переменной в определенную область памяти просто помещается указанное значение, то для свойства вызывается специальная процедура. Она может выполнять самые разнообразные действия, помимо сохранения значения свойства в ОЗУ. В частности, может изменять вид визуальных объектов на экране, скажем, перекрашивать их при изменении свойства цвет (color).

Объекты, помимо свойств, имеют еще и методы, которые описывают их поведение. По своей сути метод − это процедура или функция, принадлежащая данному классу объектов. Примерами стандартных методов могут служить добавление нового пункта в меню, показ формы на экране или чтение содержимого текстового поля из файла на диске. Кроме того, при некотором опыте программист вполне может добавлять к объекту свои собственные методы.

Таким образом, визуальное объектно-ориентированное программирование представляет собой качественно новый уровень развития систем программирования. Их преимущества настолько очевидны, что ближайшее будущее, без всякого сомнения, за ними.


^ 16. Графический интерфейс и событийные процедуры. Формы. и размешения в программе управляющих элементов.

Переход от текстового интерфейса к графическому, завершающийся сейчас на наших глазах, не мог не вызвать изменения в средствах разработки программного обеспечения. В качестве иллюстрации этого положения сошлемся на пример из книги А. Г. Федорова. Там обсуждается проблема "минимальной программы", т.е. речь идет об оформлении "пустой", ничего не делающей программы. Минимальная программа для МS-DOS на языке Паскаль выглядит следующим образом:

  • Program DOS_Pas_Minimal;

  • Begin

  • End.

Для среды Windows дело обстоит гораздо сложнее. Проблема в том, что даже "пустая" программа в этой среде должна иметь окно, которое уже само по себе обладает довольно сложным поведением: способно сворачиваться и разворачиваться, перемещаться по экрану и уметь делать прочие хорошо знакомые нам стандартные вещи. Попытка честно описать подобное самое обыкновенное пустое окно средствами Паскаля и зарегистрировать его в системе (без этого Windows не будет работать с ним) породила у автора книги программу длиной около 60 строк! Программирование в среде Windows старыми методами — занятие не для всех!

В свете сказанного выше появление качественно новых систем программирования выглядит вполне закономерно. К ним относятся популярный продукт Microsoft — Visual Basic, одна из самых удачных разработок фирмы Borland (ныне Inprise) — Delphi, а также ряд реализаций в том же ключе языка С (С++ Builder или Visual C++). Хочется особо отметить появление последнего программного продукта в этой области — Kylix, который фактически переносит инструментальную среду Delphi на платформу операционной системы Linux. Версия Kylix Open edition является бесплатной.

Все перечисленные нами выше системы программирования называют визуальными и объектно-ориентированными. Первое означает, что создание программных приложений ведется принципиально новым, визуальным методом. А второе подчеркивает стиль построения программы, в основе которого лежит понятие объекта. Поскольку об объектно-ориентированном программировании подробно говорилось в предыдущем билете, сосредоточим наше внимание на визуальном характере средств программирования.

Для того чтобы ясно представить себе удобство визуального программирования, рассмотрим реализацию на экране простейшей прямоугольной кнопки. По старым технологиям это выглядело примерно так. Вы пишете программу, рисующую кнопку, задаете размеры и положение последней в тексте, а затем запускаете на исполнение. Чаше всего с первого раза кнопка на экране выглядит не очень симпатично: например, слишком маленькая и к тому же заметно смещена вправо. Вы останавливаете программу, корректируете несколько параметров и снова запускаете. Теперь кнопка скорее всего имеет нормальный размер, но зато смещена уже влево... Не будем развивать данный пример дальше, заметим только, что если кнопок несколько, то "эстетично" расположить их на экране будет еще сложнее.

Вместо всей этой длинной и утомительной процедуры среда визуального программирования предлагает нам своеобразный конструктор из интерфейсных объектов. Достаточно просто поместить их в создаваемое прямо на экране окно, а затем с помощью мышки отрегулировать размер и добиться нужного расположения. Подчеркнем, что важно не только то, что вы задаете размер и положение с помощью мыши вместо набора координат, но и что делается все это в режиме конструирования без запуска и компилирования программы.

Все системы визуального программирования поддерживают двойной (two-way) механизм изменения параметров интерфейсных объектов. Для этого они имеют очень важное служебное окно — Инспектор объектов.

В этом окне в первом столбце перечислены все свойства выделенного объекта, а во втором задаются их значения. Двойной механизм воздействия на объект состоит в том, что мы можем реализовать его двумя способами:

  • изменить значения координат объекта (Left и Top) или его размеров (Width и Height>) в окне Инспектора объектов, при этом система перерисует объект в соответствии с новыми параметрами;

  • изменить размер или положение объекта с помощью мыши, при этом размер и координаты объекта в Инспекторе будут автоматически пересчитаны.

Оба способа абсолютно равноправны, и пользователь может выбирать тот, который ему лучше подходит в данной ситуации.

Все конструирование интерфейса ведется в специальной "заготовке" окна, которое в визуальных системах принято называть формой. Первая форма при старте системы генерируется автоматически. Ее вид полностью аналогичен тому, как будет выглядеть окно после запуска программы, но еще раз подчеркнем, что работать с формой можно до компиляции программы. Форма содержит в себе все стандартное поведение окна Windows, поэтому программисту об этом заботиться уже не надо и он может сосредоточить свое внимание на других вопросах. Таким образом, становятся излишними те 60 строчек, с которых мы начали рассказ, — они теперь включены внутрь класса TForm, описывающего форму. Более того, современные системы программирования всячески стремятся облегчить набор программы: в текст автоматически вносятся очевидные заголовки и описания, распознаются по нескольким символам стандартные свойства объектов. Вспомните для сравнения, как выглядел набор текста в Turbo Pascal или версии языка QBasic, и вы поймете, что речь, без преувеличения, идет о новом поколении программных систем.

Форма — это главный компонент, на который помещаются другие элементы графического интерфейса. Последних в системах визуального программирования достаточно много. Настолько много, что их обычно разделяют на группы, каждая из которых помещается на отдельной страничке специальной инструментальной панели, называемой палитрой компонентов.

Рассмотрим несколько примеров визуальных компонентов. В первую очередь это всевозможные кнопки: обычная кнопка и кнопка с картинкой, оперативная кнопка, радиокнопки и флажки проверки. К элементам управления также относятся различные виды списков, меню и др. Их свойства и назначение хорошо известны любому, кто пользуется операционной системой Windows.

После размещения на форме необходимых компонентов, настройки их размеров и расположения (можно использовать любой из двух названных выше способов — визуальное конструирование с помощью мыши или задание свойств через Инспектор объектов), а также задания других свойств компонентов наконец начинается собственно программирование. Этот этап в рассматриваемых системах также имеет принципиально новые идеи, которые обязательно надо описать подробнее.

В "старых" версиях языков программирования основная программа представляла собой единую последовательность операторов; ее выполнение и происходило по команде "Run". Ситуацию несколько осложняло (но принципиально не меняло) наличие выделенных из общего текста в отдельные блоки процедур или функций. В "новых" системах программирования основная программа в указанном смысле отсутствует. Имеется лишь набор относительно самостоятельных процедур, каждая из которых реагирует на определенное событие. Событие (Event) является составной частью самой операционной системы Windows. Примерами событий могут служить движение мыши, нажатие или отпускание клавиши на клавиатуре, появление или минимизация окна и многое другое, на что должна реагировать система. Часто в литературе используется термин "обработка события", поэтому упомянутые выше процедуры принято называть обработчиками событий (Event handler).

Таким образом, работа программы протекает следующим образом. После ее запуска последовательно возникает несколько специфических инициализационных событий (например, создание формы или ее появление на экране). Если предусмотрено, наша программа отвечает на них какими-то действиями, например, заданием начальных значений переменных или показом стартовой заставки. После завершения выполнения указанных обработчиков программа "замирает" в ожидании новых событий. Из этого состояния ее может вывести своими действиями пользователь, манипулируя мышью или что-то нажимая на клавиатуре. События не обязательно должны происходить с нашей программой: вспомните, например, случай перехода из одного окна в другое, когда могут перерисовываться все окна. Последним событием в жизни нашей программы является ее закрытие. Итак, мы видим, что налицо изменение самой логики программирования, поэтому создание визуальных приложений требует хорошего понимания сути обработки событий.

^ 17. Пакеты AutoCAD.

Известный пакет AutoCAD компании Autodesk пользуется у специалистов по САПР заслуженным авторитетом. Это высокопроизводительное ПО с Windows-интерфейсом позволяет одинаково хорошо решать машиностроительные и архитектурные задачи, а также предлагает превосходную межплатформную поддержку. Его считают идеальной системой, подходящей для широкого класса приложений.

Системы автоматизированного проектирования, конструирования и разработки технологической документации с использованием ПЭВМ являются важнейшими современными средствами информатизации конструкторской и технологической деятельности. Среди этих средств, относящихся к сфере НИТ одно из виднейших мест занимает Автокад (AUTOCAD). Автокад является мощным инструментальным средством, обеспечивающим автоматизацию графических работ на базе персональных ЭВМ. Причем данное средство предоставляет пользователю возможности, которые ранее могли быть реализованы только на больших и дорогих вычислительных системах. С помощью Автокада может быть построен любой рисунок, если только его можно нарисовать вручную. Другими словами, Автокад способен выполнять практически любые виды графических работ. При этом обеспечиваются высокая скорость и простота создания рисунка и его модификаций, что в свою очередь позволяет существенно сократить время, необходимое для выполнения подобных процессов, по сравнению с черчением вручную. В связи с этим система находит самое широкое применение и используется для таких целей, как:•выполнение архитектурно-строительных чертежей; •проектирование интерьера и планировка помещений; •изготовление технологических схем и организационных диаграмм; •изготовление чертежей для электронных, химических, строительных, машиностроительных и аэрокосмических приложений; •изготовление топографических и морских карт; •проектирование судов; •графическое и другое представление математических функций; •выполнение театральных декораций; •запись партитуры музыкальных произведений; •изготовление технических иллюстраций и схем, торговых марок и фирменных знаков, поздравительных открыток, а также для других художественно-графических работ.

Однако возможности Автокада не ограничиваются созданием статических рисунков. При наличии пакетов AutoDesc Renderman, 3D Studio, Autodesk Animator и Animator Pro, предназначенных для раскрашивания и "оживления" неподвижного рисунка, Автокад становится могучим средством для создания киноэффекта и демонстрации взаимодействия объектов. Автокад позволяет создать нечто большее, чем обычный рисунок. Логически связанные фрагменты рисунка можно разместить на выделенных слоях или сгруппировать в составные объекты и рассматривать их как единое целое. Автокад "помнит" положение, размер и цвет построенных объектов и записывает эти сведения во внутреннюю базу данных для последующего их поиска, анализа и обработки.

Реализация некоторых возможностей Автокада зависит от характеристик конкретной системы компьютера или монитора, поэтому руководство может содержать информацию, относящуюся к конкретному типу компьютера. Кроме того, в нем описываются способы оптимизации работы Автокада.

Руководство по прилагаемым программам, содержащее описание прилагаемых к Автокаду программ на языке Автолисп и Системы разработки приложений Автокада (СРП). Они позволяют решать такие задачи, как рисование двойных отрезков, создание стандартной конфигурации видовых экранов, быстрое перемещение объектов в трехмерном пространстве и использование геометрического калькулятора для вычисления векторных, вещественных и целочисленных выражений.

На некоторых ПЭВМ Автокад использует 2 монитора: один для вывода текста и подсказок на ввод команд, а другой для работы в графическом режиме. При такой конфигурации в правой части экрана графического монитора могут располагаться зона экранного меню команд, а в нижней части строки подсказок.

Для повышения эффективности работы Автокада рекомендуется включить в систему устройство указания типа мышь или цифровой планшет. Эти устройства обеспечивают мгновенный ввод точек и команд. Мышь управляет перемещением перекрестья по графическому экрану, а также обеспечивает выбор пунктов меню. Если у мыши несколько кнопок, то за каждой из них можно закрепить какую-либо часто используемую команду Автокада. Устройство указания планшета может перемещаться только по его поверхности, не выходя за границы рабочей области. Цифровой планшет можно откалибровать по выполненному на бумаге рисунку, что позволяет использовать Автокад для оцифровки имеющихся рисунков и чертежей. Рабочую область планшета можно разделить на несколько (до четырех) непересекающихся областей планшетного меню, в которых могут быть расположены необходимые команды.

В основу структуры Автокада был положен принцип открытой архитектуры, позволяющий адаптировать и развивать многие функции Автокада применительно к конкретным задачам и требованиям. Это позволяет создавать собственные экранные, планшетные, кнопочные, падающие и графические меню для автоматизации часто выполняемых действий; •пакетные файлы для автоматизации выполнения длинных последовательностей команд; •шрифты; •типы линий; •образцы штриховок; •библиотеки символов и фрагментов рисунков; •образцы штриховок формата PostScript; •рисунки-прототипы с заданными значениями параметров по умолчанию. Открытая архитектура системы позволяет пользователю "вылепить" из Автокада то, что требуется. Официальный дилер может также предоставить прикладные программы, разработанные третьими сторонами, для адаптации системы к требованиям заказчика. Дело здесь в том, что одного пакета AutoCAD может оказаться недостаточно для высокопроизводительного автоматизированного проектирования и для повышения производительности этого процесса приходится покупать дополнительные приложения других фирм.

Имеются и широко используются семейства типовых решений на базе AutoCAD для различных областей проектирования, в том числе в областях строительства, архитектуры, электроники, экономических оценок в проектировании, управления инфраструктурой и другие.

^ 18. Технология выбора языка программирования

На самом деле прогноз перспектив языковых средств на российском рынке можно сделать довольно просто. При всех особенностях национальной разработки ПО мы довольно четко следуем в фарватере этой отрасли в США. Поэтому краткосрочный прогноз на два-три года выглядит так — надо посмотреть, что происходит на американском рынке сегодня. Это особенно хорошо видно на примере Visual Basic: еще относитльено недавно в нашей стране о нем даже и говорить-то в профессиональной среде было не очень принято. А сегодня он стал полноправным инструментом для отечественных профессионалов (сошлюсь в данном случае на трехлетний опыт участия в конференциях DevCon).

Именно поэтому представляется довольно странным, что дискуссия о языках почему-то свелась к дилемме "Visual C++ или Delphi". А как же VB, превосходящий по популярности в мире все остальные средства именно в профессиональной сфере? А где набирающая силу Java? (см. таблицу) Не говоря уже о том, что использование различных инструментов в одном проекте является довольно заурядным явлением: одного для разработки пользовательского интерфейса, второго — для создания расчетных модулей, третьего — для обеспечения доступа к базам данных и т.д. Так было и двадцать лет назад, но сегодня это стало особенно актуально в условиях компонентной модели создания приложений. И можно привести немало примеров проектов, в реализации которых на вопрос "или/или" дается ответ — "и то, и другое".

Говоря об инструментах разработки, было бы также полезно выделить две их стороны: язык программирования и сама среда разработки (интерфейс, набор дополнительных расширений, качество компилятора и пр.). В этом плане представляется, что актуальность составляющей "язык" в последние годы постоянно снижается хотя бы потому, что при сохранении особенностей синтаксиса в целом идет выравнивание функциональных возможностей языков.

Если оставить в стороне все же довольно узкие области программирования, наподобие разработки драйверов, создания инструментов для графической обработки и пр., и посмотреть на характерный код массовых законченных приложений, то мы увидим в них в основном весьма примитивные языковые конструкции типа операторов присвоения и условных переходов. Проблемы разработки уже давно переместились в целом из области написания кодов в сферу умения использовать средства макропрограммирования. В результате проблема переносимости программного кода выглядит сегодня совершенно по-иному, чем ранее. Например, VB гораздо ближе к Delphi, чем к своим DOS-овским собратьям.

Решающее значение сейчас имеют возможности самой среды разработки, которые зачастую совсем не связаны с используемым в ней языком. Например, отсутствие до недавнего времени в VB настоящего компилятора и классов, а также другие ограничения связаны не с особенностями языка Бейсик, а с позиционированием данного инструмента в общей стратегии Microsoft в области средств разработки. Поэтому, видимо, имеет смысл вести речь не столько о языках программирования, сколько о конкретных инструментах. Обратите внимание — в статье Владимира Биллига говорится именно о Delphi и Visual С++, а не о Паскале и Си++.

Вместе с тем, при выборе профессионального инструмента зачастую решающее значение даже не его качество само по себе. Важно наличие общей инфраструктуры, обеспечивающей его жизнеспособность и перспективы его развития в будущем.

Например, практически по единодушному признанию специалистов, сегодня Delhpi является одним из лучших и элегантных средств разработки. Но лидерство VB на рынке определяется его массовостью, которая породила невиданный ранее рынок различных дополнений и расширений для него, в результате чего он становится фактически стандартом макроязыка для широкого круга бизнес-приложений. На принятие решений при серьезных разработках существенное влияние оказывают сейчас слухи о неясных перспективах самой Borland. Разработчики со стажем хорошо помнят о существенном уроне, понесенном пользователям фирмы в результате прекращения поддержки и развития ею своего Turbo-Basic в 1988 г. (а это было одно из ведущих Бейсик-средств той поры). Да, эта система не погибла совсем, под названием PowerBasic она жива и развивается до сих пор, но в качестве конкурента для VB даже не упоминается уже лет пять.

^ О перспективах языков программирования

Разумеется, главным вопросом при выборе средства разработки является принципиальная возможность реализации на нем поставленной задачи. Но если сравнивать системы одного класса (например, имеющие компиляторы), то мы увидим, что очень трудно найти задачи, недоступные для кой-то из них.

Далее можно выделить еще два важных аспекта: затраты на разработку (время обучения, скорость разработки, наличие дополнительных готовых средств и пр.) и эффективность конечного продукта (объем памяти, скорость выполнения и пр.). В последние годы заметна совершенно отчетливая тенденция к повышению веса именно первой проблемы. Опять же ссылаясь на опыт США, можно констатировать, что именно этот фактор сыграл решающее значение в успехе QuickBasic в конце 80-х годов — скорость его освоения и самой разработки программ была существенно выше, чем у конкурентов (не только Бейсик-средств).

Конечно, есть важные области применения (причем не столько по объему, сколько по приоретету задач), где эффективность кода, наличие изощренных средств программирования являются очень важными. Здесь традиционно сильные позиции занимают Си и Паскаль. Однако нужно отметить, что лидерство Си подкрепляется не только его синтаксическими особенностями, но и его распространенностью на большинстве компьютерных платформ: мэйнфреймы, Unix, ПК (сейчас уже трудно разделить следствие и причину). С точки зрения большинства разработчиков основным доводом в пользу выбора Си являются не достоинства самого языка, а в первую очередь межплатформенная переносимость кода, что было всегда особенно важно в мире Unix-систем с их различиями в аппаратной реализации.

Однако рост сложности синтаксиса языка объективно вступает в противоречие с обеспечением многоплатформенности и именно в этом можно усмотреть основную угрозу для будущего Си. Это особенно хорошо видно на примере его ООП-варианта — Си++, который фактически утратил возможности переносимости кода. В этом и заключается одна из основных причин использования в качестве стандарта проектов базового варианта стандартного Си, даже используя в качестве инструмента Borland C++ или Visual C++. Кроме того, по общему признанию разработчиков язык Си уже давно стал слишком сложным и избыточным. Даже опытные программисты используют в своей работе далеко не все его потенциальные возможности, причем иногда такие ограничения закрепляются на уровне руководящих документов проекта.

В этом плане весьма характерным является появление языка Java. В общественном мнении вокруг него почему-то сложилось несколько одностороннее восприятие, как технологии, ориентированной исключительно на некоторые новые области применения и методы реализации (Internet, апплеты, байт-код и пр.). Но это представляется, по крайней мере, не очень верным. Здесь как раз изначальными являются весьма существенные синтаксические упрощения Си. И заслуга Sun состоит в том, что она первая решительно призвала отказаться от архитектурных излишеств Си, которыми так гордились Си-программисты, но с которыми в душе, как выясняется, многие были давно готовы расстаться.

Областью применения Java являются отнюдь не только специальные области Internet — прошедший в начале июля в Лондоне международный Форум по Java показал, что основной объем разработок смещается в область традиционных прикладных систем. При этом Java представляет прямую конкуренцию не всем существующим языкам программирования, а именно Си/Си++. Собственно, именно так ее анонсировала в свое время Sun и это же подтверждается имеющейся статистикой.

Здесь хотелось бы подчеркнуть, что позиционирование Java в качестве некоторого "суперязыка", который, например, чуть ли не автоматически решает проблемы межплатформенной переносимости, является сегодня, по крайней мере, преждевременным. Может вполне оказаться, что в результате баталий "Sun против Microsoft, а Microsoft — против всех" единый стандарт языка вообще просто развалится на отдельные подмножества...


^ 20. Тип, имя и назначение переменной. Арифметические, строковые и логические выражения.

Использование переменных − основной способ представления информации в процедурном программировании. Любые сложные структуры данных, массивы, указатели, объекты можно рассматривать как разновидности переменных. Величины, значения которых могут изменяться в процессе выполнения программы, называются переменными. Переменные в программе могут быть представлены только именем.

Основные свойства переменных − это его имя, тип, вид и значение.

Для человека имя переменной − это ее обозначение в программе. Формально выбор имени не имеет значения, но каждому программисту можно посоветовать помнить слова капитана Врунгеля: «Как Вы яхту назовете, так она и поплывет». Удачное имя переменной, соответствующее ее сути, способно облегчить понимание программы.

Для компьютера имя − это место в памяти. Каждой переменной отводится определенное место, и в машинной программе, которая получается после трансляции текста на исходном языке, имена заменяются на обращения к соответствующему адресу.

Имена (идентификаторы) служат для обозначения различных объектов и конструкций программы и отличаются от служебных слов программы тем, что выбираются (назначаются) самим программистом по следующему правилу: имя должно состоять из букв и цифр, но первым символом может быть только буква. Длина имени во многих реализациях языка не ограничивается, однако рекомендуется, чтобы она не превышала 6-8 символов.

Выбор имени следует осуществлять исходя из логической или физической сущности обозначаемого объекта, при этом рекомендуется придерживаться следующих правил:

  1. в пределах области определения имя должно быть уникальным (каждому имени должен соответствовать лишь один обозначаемый объект и, наоборот), в противном случае соответствие между именем и обозначаемым объектом будет неоднозначным;

  2. в качестве имен не разрешается использовать служебные слова;

  3. в языке определен некоторый набор заранее предопределенных имен, их называют стандартными; программист может переопределить эти имена (использовать не по стандартному назначению), но делать это не рекомендуется;

  4. длинные имена или имена, состоящие из нескольких слов, следует сокращать;

  5. следует избегать схожих по виду имен (АХ1 и AXI), подобных по написанию символов в пределах одного идентификатора (DO20, где второй символ – буква О, последний – цифра 0);

  6. если в имени нужно использовать цифры, то лучше писать их в конце идентификатора (А32, REG15).

^ Тип переменной определяет множество значений, которые может принимать переменная, и множество операций, в которых она может участвовать. Для компьютера тип − это способ интерпретации содержимого памяти. В современных компьютерах для представления информации используется двоичное кодирование. При этом для кодирования различной информации используются разные принципы, но полученный в итоге двоичный код сам по себе не содержит никаких признаков, которые позволили бы определить его природу и отличить, например, числа от текста. Указывая в программе тип переменной, мы сообщаем компьютеру, как следует преобразовывать информацию в соответствующем месте памяти. В разных системах программирования используются разные способы определения типа переменной: по первой букве имени, по задаваемому значению, с помощью специального суффикса, с помощью прямого указания. В языке Pascal типы переменных объявляются с помощью прямого указания в разделе описания переменных Var.

^ Вид переменной − это информационная роль, которую переменная играет в программе. Чаще всего встречаются такие виды, как локальные и глобальные переменные, входные и выходные параметры. Для компьютера вид − это время жизни переменной, он определяет, в какой момент времени будет выделена память для переменной и когда эту память можно освободить.

Переменная в программе может иметь какое-либо значение. Для человека значение − это информационное содержание, а для компьютера − это код в памяти. Существует три способа задания или изменения значения переменной. Первый из них − ввод значения с помощью средств диалога, которые предоставляются выбранным языком программирования (в Pascal − это оператор Readln). Второй − это чтение из файла и третий − операция присваивания. Эта операция выполняется в два этапа. На первом этапе определяется новое значение переменной (например, путем вычисления некоего выражения), а на втором этапе производится запись значения по адресу, определенному идентификатором. Из описания операции следует, что тип вычисленного значения должен совпадать с объявленным типом переменной, поскольку он определяет размеры выделенной области памяти (совместимость типов). Для обозначения операции присваивания в Pascal используется ":=". В языке Basic и некоторых других языках программирования используется символ "=", т. е. запись операции присваивания внешне выглядит как алгебраическое равенство, но имеет совсем иное содержание. Например, операция присваивания переменной Х значения, которое больше предыдущего на единицу, записывается следующим образом: Х=Х+1. С точки зрения правил записи алгебраических соотношений приведенная строка не имеет смысла. Однако с позиций операции присваивания она означает, что на первом этапе вычисляется сумма "старого" значения Х и единицы, а на втором этапе старое значение Х заменяется новым.

Все имеющиеся типы принято делить на группы. Типы, принадлежащие одной группе, имеют определенное сходство. Прежде всего, выделяют простые и структурные типы. Простые типы, в свою очередь подразделяют на порядковые и вещественные типы.

Порядковые типы называются так потому, что их допустимые значения представляют собой множество, состоящее из конечного числа элементов. В этом множестве есть первый и последний элементы. Кроме того, каждый элемент порядкового типа имеет предшествующий ему и следующий за ним элементы. Так, например, у целого значения 12 есть предшественник (значение 11) и преемник (значение 13). Очевидным исключением являются первый (у него нет предшественника) и последний (нет преемника) элементы.

К порядковым типам относятся целый (целые числа со знаком и без: ShortInt, Integer, LongInt, Byte, Word), логический (Boolean − могут принимать только два значения: True (истина) и False (ложь)) и символьный типы данных (Char − любой символ, каждому символу алфавита соответствует индивидуальный числовой код от 0 до 255).

В отличие от порядковых, вещественные типы представляют вещественные (действительные) числа (числа, имеющие как целую, так и дробную части), а множество вещественных чисел даже из ограниченного диапазона пронумеровать невозможно. Строго говоря, следует учитывать то обстоятельство, что компьютер может оперировать лишь с конечным набором чисел. Это связано с его конечной разрядностью (то есть количеством двоичных разрядов, отводимых под хранение данных). Но для вещественных чисел количество их допустимых значений весьма велико, поэтому не имеет смысла относить их к группе порядковых типов.

В Паскале 5 вещественных типов: Real, Single, Double, Extendent и Comp.

К структурным типам данных относятся массив (Array), множество (Set), файл (File) и запись (Record).

Отдельную группу составляет строковый тип данных, представляющий собой строку символов длиной не более 255 символов.

Кроме того, во многих языках программирования имеется ограниченный тип данных, представляющий собой интервал значений порядкового типа, называемого базовым типом (например var a: 1..25, ch: 'a'..'z'). Переменная ограниченного типа сохраняет все свойства базового типа.

Мы рассмотрели так называемые стандартные типы данных. В языке Pascal реализована возможность определения собственного типа данных − пользовательские типы данных, которые объявляются в разделе описания типов, который открывается словом Type.

Понятие типа есть практически во всех языках программирования. При этом можно выделить два принципиально разных подхода: статические и динамические типы.

В языках со статическими типами тип указывается при описании переменной, он связан с ее именем. Если, например, переменная описана как целая, то в дальнейшем ей нельзя присвоить вещественное или символьное значение. К языкам со статическими типами относятся Паскаль, Си, Бейсик, КуМир.

В языках с динамическими типами тип связывается не с именем, а со значением переменной. В этом случае любой переменной можно присвоить значение любого типа, но текущее значение ограничивает множество допустимых операций. Динамические типы используются в таких языках, как Лого, Перл и др.


^ 23. Массивы: типы и объявление массивов (на примере конкретного языка программирования). Сортировка массивов.

В тех случаях, когда какой-либо объект описывается рядом однотипных значений (например, ежедневное количество осадков на протяжении года), используют не множество переменных простых типов, а структуры данных, в частности, массивы. Вообще структуры данных характеризуются такими свойствами, как упорядоченность (указан ли порядок следования элементов, пронумерованы ли они каким-либо образом), однородность (содержит ли структура величины одного или разных типов), ограниченность (фиксировано ли количество элементов), способ доступа.

Массив − это пронумерованная последовательность величин одинакового типа, обозначаемая одним именем. По указанным выше свойствам массивы относятся к упорядоченным однородным ограниченным структурам данных с произвольным доступом. Величины, составляющие массив, располагаются в последовательных ячейках памяти, обозначаются именем массива и индексом (номером). Каждое из значений, входящих в массив, называется его компонентой (или элементом массива). Элементами массива могут быть величины как простых, так и составных типов.

Массив данных в программе рассматривается как переменная структурированного типа. Массив получает имя, посредством которого можно ссылаться на него как на единое целое, так и на любую из его компонент.

Переменные, представляющие компоненты массивов, называются переменными с индексами, в отличие от простых переменных, представляющих в программе элементарные данные. Чаще всего индекс в обозначении компонент массивов может быть константой, переменной или выражением целого типа (хотя возможны и другие варианты).

Если местоположение элемента в массиве определяет только один его порядковый номер, то такой массив называется линейным (или одномерным). Вообще количество индексов элементов массива определяет размерность массива. По этому признаку массивы делятся на одномерные (линейные), двухмерные (прямоугольные таблицы или матрицы), трехмерные и т.д.

Размер массива определяется количеством его элементов. Размер может быть общим и текущим. Довольно часто память выделяется под весь массив сразу же, но при этом не вся она может быть занята элементами, т.е. текущий размер меньше или равен общему.

Практически все языки программирования высокого уровня требуют явного описания массивов.

Одномерный массив:

  • var A: array[0..99] of integer;

  • А − имя массива

  • Array − служебное слово (в переводе с английского означает "массив", "набор");

  • [0..99] − в квадратных скобках указывается номер первого элемента, затем, после двух точек, номер последнего элемента массива; в этом примере первый элемент имеет номер 0, а последний − номер 99;

  • Of − служебное слово (в переводе с английского означает "из");

  • Integer − тип всех элементов массива.

Таким образом, одномерный массив описывается следующим образом:

  • Array[n1..n2] Of <тип элементов>;

  • где:

  • n1 − номер первого элемента,

  • n2 − номер последнего элемента, в качестве типа элементов может использоваться любой тип данных, кроме файлового.

Можно определить, какой объем оперативной памяти потребуется для хранения элементов массива. Для этого нужно общий размер массива умножить на объем памяти, занимаемой одной величиной базового для массива типа. В нашем примере это 100×2=200 байт.

Для того чтобы обратиться к элементу этого массива, необходимо указать имя массива и в квадратных скобках − номер элемента. Например, первый элемент массива А − А[0], а пятый − А[4].

С использованием массива чаще всего решают такие учебные задачи:

  • поиск значений по заданному признаку;

  • сортировка элементов в порядке возрастания или убывания;

  • изменения элементов массива по определенным правилам;

  • комбинированные задачи.

Базовыми и простейшими способами сортировки массивов являются сортировка выбором, сортировка обменами (иногда ее еще называют "пузырьковой") и сортировка вставками. На этих способах основаны более быстрые методы сортировки. Рассмотрим реализацию одного из этих методов.

При решении практических задач часто приходится иметь дело с различными таблицами данных, математическим эквивалентом которых служат матрицы. Такой способ организации данных, при котором каждый элемент определяется номером строки и номером столбца, на пересечении которых он расположен, называется двухмерным массивом, или прямоугольной таблицей.

При описании массива задается требуемый объем памяти под двухмерный массив, указываются имя массива и в квадратных скобках диапазоны изменения индексов.

  • Var A: array[0..99, 0..99] of integer;

Формирование двухмерного массива можно осуществлять всеми тремя способами, описанными для одномерных массивов, то есть: вводом с клавиатуры, посредством генератора случайных чисел или с помощью файла.

При выполнении инженерных и математических расчетов часто используются переменные более чем с двумя индексами. При решении задач на ЭВМ такие переменные представляются как компоненты соответственно трех-, четырехмерных массивов и т.д.

Однако описание массива в виде многомерной структуры делается лишь из соображений удобства программирования как результат стремления наиболее точно воспроизвести в программе объективно существующие связи между элементами данных решаемой задачи. Что же касается образа массива в памяти ЭВМ, то как одномерные, так и многомерные массивы хранятся в виде линейной последовательности своих компонент, и принципиальной разницы между одномерными и многомерными массивами в памяти ЭВМ нет.

^ 24. Понятие программных сред

Програ́ммное обеспе́чение (произношение обеспече́ние не рекомендуется[1][2][3], точнее, не рекомендовалось[4]) — наряду с аппаратными средствами, важнейшая составляющая информационных технологий, включающая компьютерные программы и данные, предназначенные для решения определённого круга задач и хранящиеся на машинных носителях. Программное обеспечение представляет собой либо данные для использования в других программах, либо алгоритм, реализованный в виде последовательности инструкций для процессора.

Программное обеспечение принято по назначению подразделять на системное и прикладное, а по способу распространения и использования на коммерческое, открытое и свободное. Свободное программное обеспечение может распространяться, устанавливаться и использоваться на любых компьютерах дома, в офисах, школах, вузах, а также коммерческих и государственных учреждениях без ограничений.

В компьютерном сленге часто используется слово софт (от англ. software), которое в этом смысле впервые применил в статье в American Mathematical Monthly математик из Принстонского университета Джон Тьюки (англ. John W. Tukey) в 1958 году. В области вычислительной техники и программирования программное обеспечение — это совокупность всей информации, данных и программ, которые обрабатываются компьютерными системами. В информатике программное обеспечение — это наборы пакетов программ и операционных систем, которые могут устанавливаться на персональных компьютерах, серверах и суперкомпьютерах.

Классификация ПО

Системное ПО

Программные средства защиты

Инструментальное ПО

Прикладное ПО

Офисное приложение

Корпоративная информационная система

Система проектирования и производства

Система логистической поддержки изделий

Система обработки и хранения медицинской информации

Научное ПО

Прочие системы

Клиент для доступа к интернет-сервисам

Мультимедиа



^

25. Программные среды векторной графики. Программные среды Photoshop, Flesh.


Векторные изображения, в отличие от растровых, существуют в виде набора математических формул (графических примитивов), которые описывают отдельные элементы картинки  — линии, прямоугольники, дуги, окружности, эллипсы и т.п. Эти элементы являются дискретными, они не связаны между собой, и размеры их легко изменить без потери качества картинки. Для воспроизведения векторного изображения надо задать параметры картинки на экране (разрешающую способность и размеры), после чего положение каждой точки картинки просто рассчитывается — по формулам, записанным в векторном графическом файле.

Если растровое изображение можно сравнить с фотографией (по мягкости и насыщенности оттенками), то векторное изображение, пожалуй, ближе к гравюре: оно резче и строже в переходах.

Сфера применения векторной графики очень широка: как и растры, она занимает свою "нишу", в которой не знает себе равных.

Во-первых, она играет огромную (едва ли не главную) роль в компьютерной полиграфии. Векторными методами формируются как шрифты "True Type", так и сотни разнообразных картинок (от изображений людей, предметов, сценок до орнаментов и прочих украшений), которые легко масштабировать и использовать в печатных изданиях и видеоматериалах. Достаточно сказать, что известная библиотека рисунков, прилагаемая к редактору MS Word (так называемый "ClipArt"), выполнена именно в векторном виде.

Во-вторых, векторные методы незаменимы в конструкторской и научной деятельности — в системах компьютерного черчения, автоматизированного проектирования, в трехмерной графике и т.п. Векторная графика широко применяется для создания всевозможных схем, диаграмм, графиков и др.

Достоинства:

  • гораздо меньший, чем для растровой графики, объем файлов;

  • возможность свободного масштабирования без потери качества.

Недостатки:

  • нельзя получить изображение фотографического качества (преобразование растровых картинок в векторные вообще трудновыполнимая процедура);

  • некоторые сложные рисунки выводятся на принтеры не совсем так, как изображаются на экране.

Для построения векторных изображений обычно используют профессиональные программы иллюстративной графики, такие, как CorelDraw, Adobe Illustrator или Macromedia Freehand.

Основным объектом векторной графики является линия (неважно какая). В некоторых редакторах ее называют кривой (curve). При этом прямая (line) рассматривается как частный случай кривой. В некоторых программах вместо понятия кривая используется понятие контур (path). По-видимому, понятие контур наиболее адекватно отражает суть, поскольку контур может быть и прямой, и кривой, и фигурой, и ломанной. Каждый контур может иметь две или более опорных точек. В некоторых редакторах их также называют узлами (nodes). Элемент контура, заключенный между двумя опорными точками называется сегментом контура. Если контур имеет более двух опорных точек, то он состоит из нескольких сегментов. Форму контура изменяют перемещением опорных точек, изменением их свойств, добавлением новых опорных точек или удалением части опорных точек контура. Контур может быть открытым или замкнутым. Если последняя опорная точка контура одновременно является и его первой точкой, то контур считается замкнутым. В противном случае он открыт. Свойства открытых и замкнутых контуров отличаются.

Контур является элементарным графическим объектом. Из контуров можно создавать новые объекты или их группы. С несколькими контурами можно выполнить операции группирования, комбинирования и объединения. Эти операции образуют, соответственно: группу объектов, составной контур или новый контур. В операции группирования каждый контур группы сохраняет свои опорные точки и свойства. В операции комбинирования контуры сохраняют свои опорные точки, но свойства составного контура становятся новыми. В операции объединения образуются новые опорные точки и изменяются свойства исходных объектов.

Работа в программе Adobe Illustrator. Основные элементы управления программы (интерфейс) — панель инструментов, строка меню, инструментальные палитры, рабочую область. 13 инструментальных палитр: инфо, линия, каталог, градиент, трансформирование, атрибуты, синтез, выравнивание, слои, символ, абзац, ММ-дизайн, линейка табуляции.

Инструменты редактора разделены на группы: 1 группа — выделение, частичное выделение; вторая группа — перо, текст, эллипс, прямоугольник, карандаш, ножницы; третья группа — поворот, размер, зеркало, наклон; четвертая группа — превращение, диаграмма; последняя группа — дополнительные инструменты управления просмотром линейка, градиент, заливка, пипетка, рука, масштаб.

В программе очень легко освоить приемы создания простейших объектов: прямая линия, окружность и эллипс, многоугольник, звезда, спираль, прямоугольник, контур произвольной формы, градиентная растяжка, изучить способы заливки; приемы работы с текстом, режимы работы с текстом.

Редактор растровой графики Adobe Photoshop

В обширном классе растровых графических редакторов особой популярностью пользуется программа Photoshop компании Adobe. Программа Adobe Photoshop (АР) один из многочисленных пакетов для обработки, изменения, сохранения графических объектов.

Программа Photoshop позволяет работать с палитрой, калибровать, сканировать, импортировать и экспортировать рисунки, выделять области, контуры, редактировать, выбирать цвета, слои, каналы и маски, фильтры, размер изображения и его разрешение, преобразовать изображения. К этому можно добавить возможности цветокоррекции, цветоделения, печать изображения. Редактор предлагает пользователю использовать набор палитр.

^ Палитра «Слои» используется для создания, копирования, объединения и удаления слоев, а также для создания слой-масок. Кроме этого, палитра позволяет управлять отображением отдельных слоев.

^ Палитра «Каналы» используется для создания, дублирования и удаления каналов, для определения их параметров, преобразования в самостоятельные документы, для объединения и формирования совмещенного изображения. Палитра «Каналы» позволяет также управлять отображением отдельных каналов на экране, делая их видимыми или невидимыми.

^ Палитра «Контуры» используется для создания, сохранения и обработки контуров.

Различные кисти, используемые для рисования и редактирования, представлены в палитре «Кисти». По умолчанию предлагаются несколько размеров круглых кистей. Adobe Photoshop сохраняет характеристики кистей для каждого инструмента в отдельности. Каждый инструмент (кроме инструментов «перемещение» и «текст») характеризуется собственным набором параметров, который отображается в палитре «Параметры». Заголовок и содержимое этой палитры меняется в зависимости от выбранного на данный момент инструмента.

^ Палитра «Синтез» отображает цветовые значения текущих цветов переднего и заднего плана. С помощью «ползунков» имеется возможность отредактировать эти цвета в одной из предложенных цветовых систем.

^ Палитра «Каталог» содержит набор доступных для использования цветов. Пользователю предоставляется выбор цвета переднего и заднего плана из имеющихся вариантов, либо возможность создать заказную палитру путем добавления или удаления цветов. Все выбранные наборы цветов сохраняются для последующего использования в других изображениях.

^ Палитра «Дизайн» представляет собой планшет, который используют для произвольного смешивания цветов. Здесь допускается пользоваться любыми рисующими инструментами. Для просмотра содержимого палитры могут применяться инструменты «масштаб» и «рука».

^ Палитра «Инфо» отображает информацию об активном инструменте и о цветовых координатах в активной точке курсора.

Палитра «Команды»

позволяет одним щелчком мыши выбирать наиболее часто используемые команды. Когда палитра «Команды» открыта на экране, щелчок мыши на любой из содержащихся в ней команд приводит к выполнению соответствующей операции или к открытию соответствующего диалогового окна. По умолчанию в программе Adobe Photoshop выбраны несколько команд, за которыми закреплены функциональные клавиши. В программное обеспечение Adobe Photoshop включено несколько специализированных палитр «Команды». Они содержат команды, применяемые для выполнения допечатных задач, коррекции цвета и манипулирования изображениями.


«лассо»

«перемещение»

«масштаб»

«текст»

«градиент»

«пипетка»

«карандаш»

«кисть»

«палец»

«осветлитель/затемнитель/губка»


«область»

«волшебная палочка»

«рука»

«рамка»

«заливка»

«линия»

«ластик»

«аэрограф»

«штамп»

«размытие/резкость»


Рис. 20. Панель инструментов.


На режим работы большинства рисующих и редактирующих инструментов влияют установки, заданные в палитрах «Кисти» и «Параметры».

Инструмент «аэрограф» позволяет окрашивать объекты без резких цветовых переходов. Он создает эффект рисования с помощью аэрозольного баллончика или распылителя. Этот инструмент дает гораздо более мягкие штрихи, чем инструмент «кисть». Чтобы получить более сочный цвет, можно нанести на одну и ту же область несколько штрихов.

Инструмент «кисть» создает в изображении мягкие мазки, границы которых менее жесткие, чем у инструмента «карандаш», но и не такие размытые, как у «аэрографа».

Инструмент «штамп» позволяет воспроизводить точные или модифицированные копии изображения в том же изображении, либо в другом документе. По умолчанию инструмент использует в качестве шаблона для копирования целого изображения.

Инструмент «палец» имитирует смазывание сырой краски пальцем. Этот инструмент «берет» цвет в начале штриха и «протаскивает» его в направлении перемещения курсора.

Инструмент «размытие/резкость» позволяет либо смягчать слишком резкие границы или области в изображении, уменьшая контраст между деталями, либо повышать четкость изображения, делая слишком мягкие границы более резкими.

Инструмент «осветлитель/затемнитель/губка» позволяет осветлять или затемнять отдельные области изображения и изменять насыщенность цветов.

Действие инструментов «осветлитель» и «затемнитель» основано на традиционной фотографической технике уменьшения или увеличения экспозиции на отдельных участках отпечатка. Чтобы ограничить доступ света к определенным участкам изображения, фотограф использует специальные непрозрачные маски (экраны) и увеличивае т или уменьшает время экспонирования.

Инструмент «заливка» перекрашивает все пикселы, смежные с исходным пикселом (т.е. с пикселом, на котором был произведен щелчок мышью) и сопоставимые с ним по цвету. Можно задать режим заливки и степень непрозрачности заполнителя, определить диапазон цветов, которые должны быть подвергнуты заливке, а также выбрать в качестве заполнителя цвет переднего плана или образец. Кроме того, для заливаемой области может быть задано сглаживание границы.

Инструмент «рука» используется для просмотра изображения, не уместившегося целиком в активном окне.

Инструмент «градиент» позволяет выполнять градиентную заливку с плавным переходом от цвета переднего плана к фоновому цвету или к прозрачному состоянию. Если не выделить в изображении никакую область, то инструмент «градиент» выполнит заливку всего изображения.

Инструмент «пипетка» позволяет брать образцы цвета в любых открытых изображениях (в том числе фоновых) и делать этот цвет новым цветом фона или переднего плана. Можно брать образец цвета как из активного изображения, так и из любого другого (не делая его активным).

Инструмент «область» позволяет выделять в изображении фрагменты прямоугольной и овальной формы; границы выделенного фрагмента задаются перемещением мыши.

Инструмент «лассо» позволяет выделять в изображении области произвольной формы путем обвода границ области с помощью мыши.

Инструмент «волшебная палочка» позволяет выделять фрагменты изображения на основе сходства цветов смежных пикселов. Этот инструмент удобен тем, что он позволяет выделять элементы изображения (например, красный цветок) без предварительного очерчивания их границ с помощью инструмента «лассо». При использовании этого инструмента Adobe Photoshop автоматически определяет, укладываются ли смежные пикселы в заданный диапазон цветовых оттенков.

Палитра цветов программы Adobe Photoshop (Color Picker) позволяет выбирать цвета переднего и заднего плана по спектральной шкале или определять координаты цветов с помощью числовых значений. Кроме того, палитра цветов позволяет выбирать готовые цвета, основанные на цветовой модели CMYK, а также выбирать цвета в различных заказных цветовых системах.

Новый документ, созданный в программе Adobe Photoshop, состоит только из фона (заднего плана). Этот фон можно сравнить с холстом, на котором рисуется картина. Фон может быть белым, либо окрашенным в текущий цвет заднего плана.

Можно добавить в документ один или несколько слоев, которые можно сравнить с листами абсолютно прозрачной пленки, сложенными в стопку поверх фона. Если слой не содержит никаких изобразительных элементов, то сквозь него будут видны все остальные слои и задний план. Слои дают возможность редактировать отдельные элементы изображения независимо от других объектов. Можно рисовать, редактировать, вклеивать, маскировать и перемещать содержимое одного слоя, не опасаясь запортить графические элементы, расположенные на других слоях. Все слои в документе имеют одно и то же количество пикселов, одинаковое число каналов и общий цветовой режим.

Adobe Photoshop использует каналы в двух целях: для хранения цветовой информации и для хранения областей. Цветовые каналы создаются автоматически при открытии нового документа. Их количество зависит от цветовой модели, выбранной для описания изображения. Например, любое RGB-изображение имеет три предопределенных канала: красный, зеленый и синий. В документе также имеется совмещенный канал, в котором все цвета отображаются вместе.

Можно создавать в любом документе Adobe Photoshop дополнительные каналы (так называемые альфа-каналы). Альфа-каналы используются для хранения масок и для создания новых изображений с помощью специальных команд, выполняющих вычислительные операции над каналами. В процессе изменения цветов или применения фильтров и других эффектов к целому изображению, маски позволяют изолировать и защитить от модификации отдельные его фрагменты. Математическая обработка дает возможность комбинировать каналы различными методами на основе пересчета цветовых значений пикселов.

Размер файла, содержащего альфа-каналы, напрямую зависит от информации о каждом пикселе в канале. Добавление к изображению нового альфа-канала увеличивает размер файла, причем всегда на величину, равную объему одного канала. Это означает, что добавление альфа-канала к RGB-изображению увеличивает размер файла на одну треть, а в CMYK-изображении на четверть.

Фильтры, встроенные в программу Adobe Photoshop, позволяют применять к изображению различные специальные эффекты. С их помощью можно создавать мозаичные эффекты, случайным образом перераспределять цветовые значения пикселов (добавлять или уменьшать шум), имитировать присутствие различных источников света, произвольно деформировать изображения, а также получать многие другие интересные визуальные эффекты. Кроме того, «Заказной фильтр» позволяет создавать и сохранять собственные уникальные эффекты, а затем применять их в других изображениях.

Программа Adobe Photoshop позволяет изменять графическое разрешение по многим параметрам.


^ 26. Моделирование – как метод познания. Формы представления моделей. Понятие формализации.

Понятие "модель", как и многие другие научные понятия, имеет определенное бытовое содержание. Слово "модель" часто используют для обозначения материальной копии какого-либо предмета, чаще всего транспортного средства: автомобиля, корабля, самолета, повозки и т.д. Эта копия, как правило, сильно уменьшена. Она считается тем лучше, чем больше деталей оригинала в ней воспроизводится, и имеет декоративный характер, поскольку копирования возможности движения, главного свойства объекта, не требуется (вспомним модели кораблей, автомобилей, паровозов, собранные в бутылках). Вторая группа копий – те, что создаются для демонстрации возможности движения. От этих моделей не требуется детального соответствия оригиналу, важно, чтобы они, обладая внешним сходством, двигались в соответствующих условиях (плавали, ездили, летали). Чтобы подчеркнуть отличие научного содержания понятия "модель" от бытового, обратимся к одному из определений:

^ Модель – создаваемое человеком подобие изучаемых объектов.

То есть главное назначение модели – помощь в изучении объектов и явлений окружающего нас мира. С этих позиций игрушки: куклы, изображающие человека и животных, различные конструкторы – являются моделями в гораздо большей степени, чем предметы, примеры которых приведены выше, так как помогают ребенку изучать окружающий мир. Кроме того, как и модели в науке, игрушки выделяют какие-то конкретные черты объекта, опуская или просто обозначая остальные. Например, куклы, изображающие животных средней полосы, покрываются материалом, имитирующим шерсть, так что обозначается факт ее существования вне связи с особенностями волосяного покрова конкретного животного.

Модели всегда проще реальных объектов, но они позволяют выделить главное, не отвлекаясь на детали.

Поскольку в разных условиях главными становятся разные особенности как структуры, так и поведения объекта, модели одного и того же объекта могут быть различными. Например, моделью, изображающей различные выражения лица человека, может быть кукла-колобок.

Таким образом, понятие модели включает в себя представление о неоднозначности изображения объекта.

И, наконец, еще одно существенное различие понятия модели в науке и бытового смысла этого слова. В быту, говоря о модели, обычно имеют в виду другой объект, похожий в каких-то чертах на оригинал. В науке понятие модели включает в себя возможность описания тех или иных характерных особенностей строения или поведения исследуемого объекта вне связи с изготовлением другого объекта.

Завершая обсуждение понятия модели, отметим, что оно является центральным в разделе науки, который называется "Моделирование" и занимается "исследованием объектов познания с помощью построения и изучения моделей реально существующих предметов и явлений (живых и неживых систем, инженерных конструкций, разнообразных процессов – физических, химических, биологических, социальных) и конструируемых объектов (для определения, уточнения их характеристик, рационализации способов их построения и т.п.)". Моделирование начинает широко использоваться в Эпоху Возрождения: Брунеллески, Микеланджело и другие итальянские архитекторы и скульпторы пользовались моделями проектируемых ими сооружений, в теоретических же работах Г. Галилея и Леонардо да Винчи не только используются модели, но и выясняются пределы применимости метода моделирования. И. Ньютон пользуется этим методом уже вполне осознанно. Появление электронных вычислительных машин (Дж. Нейман) и формулирование основных принципов кибернетики (Н. Винер) привели к поистине универсальной значимости моделирования, как в абстрактных областях знания, так и в их приложениях. В настоящее время трудно назвать область науки или ее приложений, где моделирование не имело бы существенного значения.

Модели, используемые в разных науках, весьма многообразны и могут группироваться (классифицироваться) по различным признакам. Наиболее универсальным представляется деление моделей на материальные и информационные.

Материальные модели иначе можно назвать предметными, физическими. Они воспроизводят геометрические, физические, динамические и функциональные характеристики "оригинала". На таких моделях изучаются процессы, происходящие в оригинале – объекте исследования или разработки. Они всегда имеют реальное воплощение.

Как уже указывалось, самые простые примеры материальных моделей – детские игрушки. Другими примерами материальных моделей являются чучела птиц в кабинете биологии, глобус на уроках астрономии, макет многоступенчатой ракеты и еще многое другое. Модель и оригинал могут иметь одинаковую или различную природу. Так хорошо известно, что моделирование ряда механических явлений (колебания и течение жидкостей или газов, распределение упругих напряжений в твердых телах) можно производить с помощью электрических явлений.

Информационные модели нельзя потрогать или увидеть воочию, они не имеют материального воплощения, потому что строятся только на информации. В основе этого метода моделирования лежит информационный подход к изучению окружающей действительности. Можно сказать, что информационная модель – целенаправленно отобранная информация об объекте, которая отражает наиболее существенные для исследователя свойства этого объекта с учетом цели ее создания.

Информационные модели одного и того же объекта могут быть совершенно разными. Например, информационная модель сотрудника для отдела кадров – это личная карточка, содержащая анкетные данные, сведения об образовании, служебной карьере и т.д.; информационная модель сотрудника для больницы – это медицинская карточка, фиксирующая его обращения к врачу, описания его заболеваний, сделанные назначения. Информационная модель городского района для привязки к другим районам – это план или карта.

Очень большое распространение в последние годы получили информационные модели, использующие математическое описание, которое позволяет интенсивно применять вычислительную технику. Математические информационные модели позволяют единообразно описать очень непохожие явления и процессы.

Построению информационной модели предшествует системный анализ, задача которого – выделить существенные части и свойства объекта, связи между ними. Замена реального объекта или процесса его формальным описанием, т.е. его информационной моделью, носит название "формализация". Моделирование любой системы невозможно без предварительной формализации. По сути, формализация – это первый и очень важный этап процесса моделирования.

По степени формализации, строгости описания все многообразие информационных моделей можно условно разделить на образно-знаковые и знаковые модели. По форме представления образно-знаковых моделей среди них можно выделить следующие группы:

  • геометрические модели, отображающие внешний вид оригинала (рисунок, пиктограмма, чертеж, план, карта, объемное изображение);

  • структурные модели, отображающие строение объектов и связи их параметров (таблица, граф, схема, диаграмма);

  • словесные модели, зафиксированные (описанные) средствами естественного языка;

  • алгоритмические модели, описывающие последовательность действий (нумерованный список, пошаговое перечисление, блок-схема).

Знаковые модели можно разделить на следующие группы:

  • математические модели, представленные математическими формулами, отображающими связь различных параметров объекта, системы или процесса;

  • специальные модели, представленные на специальных языках (ноты, химические формулы и т.п.);

  • алгоритмические модели, представляющие процесс в виде программы, записанной на специальном языке, языке программирования).

Построив информационную модель, человек использует ее вместо объекта-оригинала для изучения свойств этого объекта, прогнозирования его поведения и пр. Например, прежде чем строить какое-то сложное сооружение, конструкторы делают его чертежи, проводят расчеты прочности, допустимых нагрузок. Таким образом, вместо реального моста они имеют дело с его модельным описанием в виде чертежей, математических формул.

Содержательное описание процесса обычно самостоятельного значения не имеет, а служит лишь основой для дальнейшей формализации этого процесса – построения формализованной схемы и модели процесса.

Формализованная схема является промежуточным звеном между содержательным описанием и моделью и разрабатывается в тех случаях, когда из-за сложности исследуемого процесса переход от содержательного описания к модели оказывается невозможным.

На этапе построения формализованной схемы должна быть дана точная формулировка задачи исследования с указанием окончательного перечня искомых величин и оцениваемых зависимостей.

На этапе перехода от формализованной схемы к модели необходимо перейти от абстрактной формулировки модели к формулировке, имеющей конкретное математическое или иное наполнение. В этот момент модель предстает перед нами в виде уравнения, системы уравнений, системы неравенств, таблицы и т.д. Для преобразования формализованной схемы в модель необходимо записать в аналитической форме все соотношения, выразить все логические условия. Последним этапом формализации является идентификация модели – определение параметров и структуры модели, обеспечивающей наилучшее совпадение исходных данных объекта и данных, полученных на модели объекта. Можно считать, что модель адекватна реальному процессу, если основные характеристики процесса совпадают с экспериментальными с заданной степенью точности.

Слово "модель" произошло от латинского слова modelium, которое означает: мера, образ, способ и т.д. Его первоначальное значение было связано со строительным искусством, и почти во всех европейских языках оно употреблялось для обозначения образа или прообраза, или вещи, сходной в каком-то отношении с другой вещью.

Модель используется при разработке теории объекта в том случае, когда непосредственное исследование его не представляется возможным вследствие ограниченности современного уровня знания и практики. Данные о непосредственно интересующем исследователя объекте получаются путем исследования другого объекта, который объединяется с первым общностью характеристик, определяющих специфику обоих объектов.

Признаки модели:

  • это мысленно представляемая или материально реализуемая система;

  • она воспроизводит или отображает объект исследования;

  • она способна замещать исследуемый объект;

  • ее изучение дает новую информацию об объекте исследования.

Будем понимать под моделью другой объект (реальный, знаковый или воображаемый), отличный от исходного, который обладает существенными для целей моделирования свойствами и в рамках этих целей полностью заменяет исходный объект.

Моделирование – процесс построения формальной модели реального явления и ее использование в целях исследования моделируемого явления.

Когда модель сформулирована, выбирается метод и инструментальное средство ее исследования. В зависимости от формализованной постановки задачи в качестве такого средства может выступать либо пакет прикладных программ (офисных – типа MS Excel, MS Access и др., специализированных математических – типа MathLab, Mathematica, Maple и др.), либо язык программирования (Паскаль, Си, Фортран и др.). В зависимости от выбранного средства можно использовать или готовый метод решения, реализованный в данном продукте, либо составлять программу для выбранного метода.

Если в качестве средства решения задачи выступает тот или иной язык программирования (впрочем, это актуально и для математических пакетов), следующий этап – разработка алгоритма и составление программы для ЭВМ. Здесь каждый действует по-своему, это творческий и трудноформализуемый процесс. В настоящее время наиболее распространенными являются приемы структурного и объектно-ориентированного программирования. Выбор языка программирования обычно определяется имеющимся опытом программиста, наличием некоторых стандартных подпрограмм и доступных библиотек.

После составления программы решаем с ее помощью простейшую тестовую задачу (желательно с заранее известным ответом) с целью устранения грубых ошибок. Профессиональное тестирование – весьма непростой процесс; в нашем случае приходится пользоваться крайне упрощенными процедурами. Затем следует собственно численный эксперимент и выясняется, соответствует ли модель реальному объекту (процессу). Модель адекватна реальному процессу, если основные характеристики процесса, полученные на ЭВМ, совпадают с экспериментальными с заданной степенью точности. В случае несоответствия модели реальному процессу возвращаемся к одному из предыдущих этапов. Возможные точки возврата указаны на схеме: либо в процессе ранжирования были отброшены какие-то важные факторы или же было взято слишком много незначительных факторов и требуется уточнить модель; либо выбор метода исследования оказался не слишком удачным и нужно использовать более сложный и точный. После внесения тех или иных изменений вновь проходим по части технологической цепочки и делаем это до тех пор, пока не будут получены приемлемые результаты.

Если результаты соответствуют экспериментальным данным или нашим интуитивным представлениям, проводят расчеты по программе, данные накапливаются и соответствующим образом обрабатываются. Чаще удобной для восприятия формой представления результатов являются не таблицы значений, а графики, диаграммы. Иногда численные значения пытаются заменить аналитически заданной функцией, вид которой определяет экспериментатор. Обработанные данные в конечном итоге попадают в отчет о проделанном эксперименте.


^ 27. Системный подход в моделировании. Информационные модели и их типы. Табличные, иерархические и сетевые информационные модели.

Отличается от классического (индуктивного подхода) который рассматривает систему путем перехода от частного к общему и синтезирует констатирует систему путем слияния ее компонент, разрабатываемых отдельно.

В отличие от этого системный подход предполагает последовательный переход от общего к частному, когда в основе рассмотрения лежит цель, причем исследуемый объект выделяется из окружающей среды (стремление достичь некоторой цели).

Система S – целенаправленное множество взаимосвязанных элементов любой системы.

Внешняя среда Е – множество существующих вне системы элементов любой природы, оказывающих влияние на систему или нахождение под ее взаимодействием.

^ Системный подход – это элемент учения об общих законах развития природы и одно из выражений диалектического учения.

Поскольку невозможно смоделировать реально функционирующую систему (систему – оригинал, или первую систему), создается модель (система – модель, или вторая система) под поставленную проблему.

Цель возникает из задач моделирования, это позволяет определить, какие элементы войдут в создаваемую модель М.

Для модели сложного объекта разобщенность различных компонент системы недопустима, так как это приводит к значительным затратам ресурсов при реализации модели на базе номенклатуры программно-технических средств.

С усложнением объекта исследователь смотрит на моделируемую систему с позиции того, что она будет частью какой-то другой системы.

Пример: Ставится задача проектирования АСУ предприятия.

Таким образом, в основе лежит рассмотрение системы как интегрированного целого, причем это рассмотрение при разработке начинается с формирования цели функционирования.





Рис. 3.3. Процесс синтеза модели на базе системного подхода: Д – исходные данные (из анализа внешней системы); Т –исходные требования; Ц – цели; П – подсистемы; Э – элементы; В – выбор составляющих подсистемы; КВ – критерии выбора


Процесс синтеза модели М на базе системного подхода представлен на рисунке 3.3.

На основе исходных данных Д, известных из анализа внешней системы тех ограничений, которые накладываются на систему сверху, либо исходя из возможностей реализации и на основе цели функционирования формулируются исходные требования Т к модели системы S. На базе этих требований формируются некоторые подсистемы П, элементы Э, и осуществляется наиболее сложный этап синтеза – выбор В составляющих системы, для чего используются специальные критерии выбора КВ.

Необходимо обеспечивать максимально эффективную модель системы.

Эффективность обычно определяется как некоторая разность между какими-то показателями цельности результатов, полученных в итоге эксплуатации модели, и теми затратами, которые были вложены в ее разработку и создание.

^ Информационное моделирование. Основные типы информационных моделей (табличные, иерархические, сетевые).

Информационная модель — модель объекта, представленная в виде информации, описывающей существенные для данного рассмотрения параметры и переменные величины объекта, связи между ними, входы и выходы объекта и позволяющая путём подачи на модель информации об изменениях входных величин моделировать возможные состояния объекта. Информационные модели нельзя потрогать или увидеть, они не имеют материального воплощения, потому что строятся только на информации. Информационная модель – совокупность информации, характеризующая существенные свойства и состояния объекта, процесса, явления, а также взаимосвязь с внешним миром.

^ Информационная модель - формальная модель ограниченного набора фактов, понятий или инструкций, предназначенная для удовлетворения конкретному требованию

Табличные модели. Одним из наиболее часто используемых типов информационных моделей является таблица, которая состоит из строк и столбцов.

Построим, например, табличную информационную модель, отражающую стоимость отдельных устройств компьютера . Пусть в первом столбце таблицы содержится перечень объектов (устройств), входящих в состав компьютера, а во втором — их цена. С помощью таблиц создаются информационные модели в различных предметных областях. Широко известно табличное представление математических функций, статистических данных, расписаний поездов и самолетов, уроков и т. д

Табличные информационные модели проще всего формировать и исследовать на компьютере посредством электронных таблиц и систем управления базами данных

Иерархические модели. Нас окружает множество различных объектов, каждый из которых обладает определенными свойствами. Однако некоторые группы объектов имеют одинаковые общие свойства, которые отличают их от объектов других групп.

Группа объектов, обладающих одинаковыми общими свойствами, называется классом объектов. Внутри класса могут быть выделены подклассы, объекты которых обладают некоторыми особенными свойствами, в свою очередь, подклассы можно делить на еще более мелкие группы и т. д. Такой процесс называется процессом классификации

При классификации объектов часто применяются информационные модели, которые имеют иерархическую (древовидную) структуру. В иерархической информационной модели объекты распределены по уровням, причем элементы нижнего уровня входят в состав одного из элементов более высокого уровня. Например, весь животный мир рассматривается как иерархическая система (тип, класс, отряд, семейство, род, вид), для информатики характерна иерархическая файловая система и т. д.

Сетевые информационные модели. Сетевые информационные модели применяются для отражения систем со сложной структурой, в которых связь между элементами имеет произвольный характер.


^ 28. Основные этапы разработки и исследования математических и физических моделей.

Моделирование – исследование объектов путем построения и изучения их моделей.

Почему не исследовать сам оригинал, зачем создавать модель?

  1. Оригинала может не существовать в настоящем: это объект прошлого или настоящего. На основании известных фактов, методом гипотез и аналогий можно построить модель событий или природных катаклизмов далекого прошлого, прогнозировать будущее (теории вымирания динозавров, зарождения жизни на земле; теоретическая модель "ядерной зимы", которая наступит на нашей планете в случае ядерной войны и т.д.).

  2. Оригинал может иметь много свойств и взаимосвязей. На модели, являющейся упрощенным представлением объекта, можно изучать некоторые интересующие исследователя свойства, не учитывая других.

  3. Часто модель является абстрактным обобщением реально существующих объектов (манекенщица демонстрирует новый фасон одежды: она представляет не какого-то реального человека с его особенностями, а некоторый обобщенный идеальный образ, стандарт).

  4. Оригинал может быть недоступен исследователю по каким-либо причинам: атом водорода, рельеф лунной поверхности и т.д.

Объектом моделирования может быть материальный объект (наглядные пособия, чертежи, копии объектов и т.д.), явление (модели магнитных и электрических явлений и т.д.), процесс (стадия развития чего-либо, смена состояний, ход и т.д.), система (если объект рассматривается как система, то строится и исследуется модель системы: жилой массив, например).

Моделирование является одним из ключевых видов деятельности человека и всегда в той или иной форме предшествует другим ее видам.

Использование компьютера для исследования информационных моделей различных объектов и систем позволяет изучить их изменения в зависимости от значения тех или иных параметров. Процесс разработки моделей и их исследования на компьютере можно разделить на несколько этапов.

В решении любой содержательной задачи с использованием компьютера можно выделить рад этапов (см. рисунок).




^ На первом этапе исследования объекта или процесса осуществляется постановка задачи. Постановка задачи, как правило начинается с ее описания. При этом подробно описывается исходный объект, условия, в которых он находится, и желаемый результат, иначе говоря, отправной и конечный пункты моделирования. Важным моментом на этапе постановки задачи является определение цели моделирования. От выбранной цели зависит, какие характеристики исследуемого объекта считать существенными, а какие отбросить. В соответствии с поставленной целью может быть подобран инструментарий, определены методы решения задачи, формы отображения результатов. На этапе формализации задачи требуется определить, с помощью какого формального языка, каких формул, уравнений, неравенств и прочее фиксировать формальные соотношения между начальными и конечными значениями свойств объектов, а также какие ограничения накладываются на допустимые значения этих свойств.

^ На втором этапе осуществляется разработка модели, создается формализованная модель, то есть описательная информационная модель записывается с помощью какого-либо формального языка. В такой модели с помощью формул, уравнений, неравенств и пр. фиксируются формальные соотношения между начальными и конечными значениями свойств объектов, а также накладываются ограничения на допустимые значения этих свойств.

Однако далеко не всегда удается найти формулы, явно выражающие искомые величины через исходные данные. В таких случаях используются приближенные математические методы, позволяющие получать результаты с заданной точностью.

Далее необходимо формализованную информационную модель преобразовать в компьютерную модель, то есть выразить ее на понятном для компьютера языке.

Компьютерная модель – это модель, реализованная средствами программной среды.

Существуют два принципиально различных пути построения компьютерной модели:

  1. построение алгоритма решения задачи и его кодирование на одном из языков программирования;

  2. построение компьютерной модели с использованием одного из приложений (электронных таблиц, СУБД и пр.).

В процессе создания компьютерной модели полезно разработать удобный графический интерфейс, который позволит визуализировать формальную модель, а также реализовать интерактивный диалог человека с компьютером на этапе исследования модели.

^ Третий этап исследования информационной модели состоит в проведении компьютерного эксперимента.

План эксперимента должен четко отражать последовательность работы с моделью. Первым пунктом плана всегда является тестирование модели. Тестирование – процесс проверки правильности построения модели. Тест – набор исходных данных, позволяющий определить правильность построения модели. После тестирования, когда у вас появилась уверенность в правильности построенной модели, можно переходить непосредственно к проведению исследования.

Если компьютерная модель существует в виде программы на одном из языков программирования, ее нужно запустить на выполнение и получить результаты.

Если компьютерная модель исследуется в приложении, например в электронных таблицах, можно провести сортировку или поиск данных, построить диаграмму или график и так далее.

^ Четвертый этап состоит в анализе полученных результатов и корректировке исследуемой модели. В случае различия результатов, полученных при исследовании информационной модели, с измеряемыми параметрами реальных объектов можно сделать вывод, что на предыдущих этапах построения модели были допущены ошибки или неточности. Например, при построении описательной качественной модели могут быть неправильно отобраны существенные свойства объектов, в процессе формализации могут быть допущены ошибки в формулах и так далее. В этих случаях необходимо провести корректировку, причем уточнение модели может проводиться многократно, пока анализ результатов не покажет их соответствие изучаемому объекту.
^

31. Приближенное решение уравнений


Рассмотрим особенности непрерывно-детерминированного подхода на примере использования в качестве математических моделей дифференциальных уравнений. Дифференциальными уравнениями называются такие уравнения, в которых неизвестными будут функции одной или нескольких переменных, причем в уравнение входят не только функции, но и их производные различных порядков. Если неизвестные – функции многих переменных, то уравнения называются уравнениями частных производных, в противном случае при рассмотрении функции только одной независимой переменной уравнения называются обыкновенными дифференциальными уравнениями.

Обычно в таких математических моделях в качестве независимой переменной, от которой зависят неизвестные искомые функции, служит время . Тогда математическое соотношение для детерминированных систем в общем виде будет:

, (4.1)


где и n – мерные векторы; – вектор-функция, которая определена на некотором – мерном множестве и является непрерывной.

Так как математические схемы такого вида отражают динамику изучаемой системы, т. е. ее поведение во времени, то они называются D-схе­мами (англ. Dynamic).

В простейшем случае обыкновенное дифференциальное уравнение имеет вид


, (4.2)


Наиболее важно для системотехники приложение D-схем в качестве математического аппарата теории автоматического управления. Для иллюстрации особенностей построения и применения D-схем рассмотрим простейший пример формализации процесса процесса функционирования двух элементарных систем различной физической природы: механической Sм (колебания маятника рис. 4.1, а и электрической рис. 4.1, б )

Процесс малых колебаний маятника описывается обыкновенным дифференциальным уравнением


, (4.3)

где – масса и длинна подвеса маятника; – ускорение свободного падения, – угол отклонения маятника в момент времени .



Рис. 4.1. Элементарные системы


Из этого уравнения свободного колебания маятника можно найти оценки интересующих характеристик. Например, период колебания маятника


, (4.4)


Аналогично, процессы в электрическом колебательном контуре описываются обыкновенным дифференциальным уравнением.


, (4.5)


где – индуктивность и емкость конденсатора; – заряд конденсатора в момент времени .

Из этого уравнения можно получить различные оценки характеристик процесса в колебательном контуре. Например, период характеристических колебаний


. (4.6)


Очевидно, что, введя обозначения получим обыкновенное дифференциальное уравнение второго порядка, описывающее поведение этой замкнутой системы:


, (4.7)


где – параметры системы; – состояние системы в момент времени .

Таким образом, поведение этих двух объектов может быть исследовано на основе общей математической модели. Кроме того, необходимо отметить, что поведение одной из систем должно быть проанализировано с помощью другой. Например, поведение маятника (системы Sм) может быть изучено с помощью электрического колебательного контура (системы Sк).

Если изучаемая система S, т. е. маятник или контур, взаимодействует с внешней средой E, то появляется выходное воздействие x(t) (внешняя сила для маятника и источник энергии для контура) и непрерывно – детерминированная модель такой системы будет иметь вид


. (4.8)


С точки зрения общей схемы математической модели является входным (управляющим) воздействием, а состояние системы S в данном случае можно рассматривать как выходную характеристику, т. е. полагать, что выходная переменная совпадает с состоянием системы в данный момент времени .

^ 32. Вероятностные модели

Статистическое и эконометрическое модели́рование — исследование объектов познания на их статистических моделях; построение и изучение моделей реально существующих предметов, процессов или явлений (например: экономических процессов в эконометрике) с целью получения объяснений этих явлений, а также для предсказания явлений или показателей, интересующих исследователя.

Оценка параметров таких моделей производится с помощью статистическиx методов. Например: метод максимального правдоподобия, метод наименьших квадратов, метод моментов .

Примером эконометрической модели может послужить функция потребления Кейнса:

Y = b_1 + b_2×X

где Y — расходы, X — доход, b_1 и b_2 — параметры уравнения (parameters), u — стохастическая ошибка (disterbance, error term).

Виды статистических и эконометрических моделей

Линейная регрессия (OLS)

Регрессии на бинальные переменные

Авторегрессионная модель

Система одновременных уравнений (SEM)

Модель линейной вероятности (LPM)

Логит модель (Logit)

Пробит модель (Probit)

и др.

^ Имитационное моделирование — это метод, позволяющий строить модели, описывающие процессы так, как они проходили бы в действительности. Такую модель можно «проиграть» во времени как для одного испытания, так и заданного их множества. При этом результаты будут определяться случайным характером процессов. По этим данным можно получить достаточно устойчивую статистику.

Имитационное моделирование — это метод исследования, при котором изучаемая система заменяется моделью с достаточной точностью описывающей реальную систему и с ней проводятся эксперименты с целью получения информации об этой системе. Экспериментирование с моделью называют имитацией (имитация — это постижение сути явления, не прибегая к экспериментам на реальном объекте).

Имитационное моделирование — это частный случай математического моделирования. Существует класс объектов, для которых по различным причинам не разработаны аналитические модели, либо не разработаны методы решения полученной модели. В этом случае математическая модель заменяется имитатором или имитационной моделью.

Имитационная модель — логико-математическое описание объекта, которое может быть использовано для экспериментирования на компьютере в целях проектирования, анализа и оценки функционирования объекта.

Применение имитационного моделирования

К имитационному моделированию прибегают, когда:

  • дорого или невозможно экспериментировать на реальном объекте;

  • невозможно построить аналитическую модель: в системе есть время, причинные связи, последствие, нелинейности, стохастические (случайные) переменные;

  • необходимо сымитировать поведение системы во времени.

Цель имитационного моделирования состоит в воспроизведении поведения исследуемой системы на основе результатов анализа наиболее существенных взаимосвязей между ее элементами или другими словами — разработке симулятора (английский термин — simulation modeling) исследуемой предметной области для проведения различных экспериментов.

Имитационное моделирование позволяет имитировать поведение системы, во времени. Причём плюсом является то, что временем в модели можно управлять: замедлять в случае с быстропротекающими процессами и ускорять для моделирования систем с медленной изменчивостью. Можно имитировать поведение тех объектов, реальные эксперименты с которыми дороги, невозможны или опасны.

Имитация, как метод решения нетривиальных задач, получила начальное развитие в связи с созданием ЭВМ в 1950х — 1960х годах.

Можно выделить две разновидности имитации:

  • Метод Монте-Карло (метод статистических испытаний);

  • Метод имитационного моделирования (статистическое моделирование).

Виды имитационного моделирования

  • Агентное моделирование — относительно новое (1990е-2000е гг.) направление в имитационном моделировании, которое используется для исследования децентрализованных систем, динамика функционирования которых определяется не глобальными правилами и законами (как в других парадигмах моделирования), а наоборот. Когда эти глобальные правила и законы являются результатом индивидуальной активности членов группы. Цель агентных моделей — получить представление об этих глобальных правилах, общем поведении системы, исходя из предположений об индивидуальном, частном поведении ее отдельных активных объектов и взаимодействии этих объектов в системе. Агент — некая сущность, обладающая активностью, автономным поведением, может принимать решения в соответствии с некоторым набором правил, взаимодействовать с окружением, а также самостоятельно изменяться.

  • Дискретно-событийное моделирование — подход к моделированию, предлагающий абстрагироваться от непрерывной природы событий и рассматривать только основные события моделируемой системы, такие как: «ожидание», «обработка заказа», «движение с грузом», «разгрузка» и другие. Дискретно-событийное моделирование наиболее развито и имеет огромную сферу приложений — от логистики и систем массового обслуживания до транспортных и производственных систем. Этот вид моделирования наиболее подходит для моделирования производственных процессов. Основан Джеффри Гордоном в 1960х годах.

  • Системная динамика — парадигма моделирования, где для исследуемой системы строятся графические диаграммы причинных связей и глобальных влияний одних параметров на другие во времени, а затем созданная на основе этих диаграмм модель имитируется на компьютере. По сути, такой вид моделирования более всех других парадигм помогает понять суть происходящего выявления причинно-следственных связей между объектами и явлениями. С помощью системной динамики строят модели бизнес-процессов, развития города, модели производства, динамики популяции, экологии и развития эпидемии. Метод основан Форрестером в 1950 годах.

Области применения

  • Бизнес процессы

  • Боевые действия

  • Динамика населения

  • Дорожное движение

  • ИТ-инфраструктура

  • Математическое моделирование исторических процессов

  • Логистика

  • Пешеходная динамика

  • Производство

  • Рынок и конкуренция

  • Сервисные центры

  • Цепочки поставок

  • Уличное движение

  • Управление проектами

  • Экономика здравоохранения

  • Экосистемы



^ 33. Геоинформационные модели

Геоинформационное моделирование базируется на создании многослойных электронных карт, в которых опорный слой описывает географию определенной территории, а каждый из остальных — один из аспектов состояния этой территории. На географическую карту могут быть выведены различные слои объектов: города, дороги, аэропорты и др.

Широкое распространение получили интерактивные географические карты (мира, различных частей света, России, Москвы и других городов) в Интернете. Такие карты обычно реализуются с использованием векторной графики и поэтому дают возможность пользователю выбирать нужный ему масштаб. Карты связаны с базами данных, которые хранят всю необходимую информацию об объектах, изображенных на картах.

Геоинформационные модели позволяют с помощью географических карт представлять статистическую информацию о различных регионах. Хранящаяся в базах данных информация о количестве населения, развитии промышленности, загрязнении окружающей среды и др. может быть связана с географическими картами и отображена на них. Отображение информации может производиться различными способами: закрашиванием регионов различными цветами, построением диаграмм и так далее.

Например, на сайте http://maps.yandex.ru/ можно сначала выбрать карту (например, Москвы), а затем включить отображение условных обозначений (гостиницы, театры, музеи…).

Во время работы с картой можно менять масштаб (некоторые регионы можно отобразить с точностью до дома).

^ 34. Оптимизационное моделирование в экономике

Управление эффективностью организации (английские термины CPM, BPM, EPM)- концепция управления эффективностью бизнеса, охватывающая весь спектр задач в области стратегического и финансового управления компанией, включает в себя такие управленческие технологии как моделирование стратегии, карты сбалансированных показателей, процессно-ориентированное планирование и функционально-стоимостной анализ, бюджетирование и бизнес-планирование, консолидированная управленческая отчетность и анализ.

О терминах

В литературе можно встретить несколько англоязычных терминов, означающих одно и то же:


* CPM (Corporate Performance Management)

* BPM (Business Performance Management)

* EPM (Enterprise Performance Management)


Впервые понятие BPM было предложено международной аналитической компанией IDC. Ее поддержала исследовательская фирма META Group. В свою очередь, Gartner Group предложила альтернативную аббревиатуру — СРМ (Corporate Performance Management, управление эффективностью корпорации). Распространение получил также акроним EРМ (Enterprise Performance Management, управление эффективностью предприятия).


Цикл управления эффективностью

CPM – это цикл управления с обратной связью, подразумевающий «движение» информации «сверху-вниз» и «снизу-вверх»

СВЕРХУ-ВНИЗ: руководство начинает с определения стратегии, которую необходимо транслировать в некие исполняемые понятия (фаза планирования), которые в свою очередь, необходимо снова перевести в понятия операционной среды: какие действия необходимо предпринимать, как часто, и т.д. Это делается через процесс бюджетирования. Таким образом, бюджет является «операционализацией» стратегии.

СНИЗУ-ВВЕРХ: После исполнения руководству необходимо видеть результаты. Результаты необходимо преобразовать, чтобы оценить реальные затраты и прибыльность, и, в завершении, поместить в эти результаты в контекст стратегии с тем, чтобы их можно было интерпретировать в терминах достижения поставленных целей.

Три уровня CPM Таким образом, выделяют три функционально различных уровня управления эффективностью

Уровни управления эффективностью

Уровни по нисходящей ветви цикла:

* Моделирование стратегии и коммуникация

o Определение целей деятельности (карта стратегии) и ключевых показателей эффективности функционирования организации (финансовых и нефинансовых показателей)

o Моделирование бизнеса (карта процессов), выявление факторов прибыльности, имеющихся ресурсов и ограничений

o Декомпозиция задач верхнего уровня в целевые уровни нижестоящих звеньев

o Целевые установки: стратегические цели, выраженные в конкретных числах

* Процессно-ориентированное планирование

o Определение способов достижения целей: формирование сценариев деятельности, расчёт объёмов необходимых ресурсов (материальных, кадровых, финансовых), расчёт плановой себестоимости и накладных издержек

o Выравнивание операционного и финансового баланса ресурсов

o Учёт использования ресурсов (нехватка / избыток), выявление ‘узких мест’, не позволяющих наращивать обороты

o Подключение аналитических модулей для решения задач формирования прогнозов, оптимизационных задач

* Бюджетирование

o Планирование конкретных шагов по их достижению: документооборот бюджетных форм, ведение классификаторов аналитики, описание финансовой структуры и принципов взаимодействия, исторические тренды, анализ отклонений

o Организационные функции (процесс согласования бюджетов) и функции формирования свода бюджетов по отдельным подразделениям, бизнес-единицам, сегментам

o Версионность бюджетов, сценарный анализ


Уровни по восходящей ветви цикла: *Консолидация, отчётность и анализ

*

o Сбор фактических данных, формирование регулярной отчётности для внешних и внутренних пользователей, трансформация отчётности в различные стандарты

o Мониторинг: отслеживание исполнения бюджета, фиксирование отклонений и выяснение их причин

o Детальный анализ финансовых результатов и состояния баланса, сегментная отчётность, отчётность по центрам ответственности

* Функционально-стоимостной анализ

o Разнесение затрат с помощью функционально-стоимостного анализа по центрам ответственности, перенос затрат на основные и обеспечивающие процессы, формирование затрат по продуктам, по категориям клиентов, каналам продаж

o Анализ прибыльности в разрезе продуктов и услуг, филиалов, центров ответственности

o Анализ трансфертных операций, обслуживающих затрат и взаиморасчётов

o Выявление неэффективных процессов, сравнение затратных показателей с историческими и эталонными

* Карты балльных оценок и обратная связь

o Представление фактических результатов деятельности в сжатом, агрегированном виде, необходимом для сравнения запланированных целевых значений ключевых показателей эффективности с реально достигнутыми

o Расчёт ключевых показателей эффективности, нормализация значений, расчёт сводных

^

35. Информационная модель управления объектов


Управляемый объект - это представление OSI о ресурсе в целях управления. Ресурс может быть описан как управляемый объект. Конкретный управляемый объект - это экземпляр (instance) некоторого класса управляемых объектов. Модель управления OSI широко использует объектно-ориентированный подход. Класс управляемых объектов - это набор свойств, которые могут быть обязательными или условными. С помощью описания одного класса управляемых объектов, например коммутаторов, можно создать другой класс управляемых объектов, например коммутаторов, поддерживающих технику VLAN, унаследовав все свойства класса коммутаторов, но добавив новые атрибуты.

Для управления ресурсами менеджер и агент должны быть осведомлены о деталях этих ресурсов. Детализация представления управляемых объектов, которые требуются для выполнения функций управления, хранится в репозитории, известном как Management Information Base (MIB). Базы MIB OSI хранят не только описания классов управляемых объектов, но и характеристики сети и ее элементов. Базы MIB содержат характеристики каждой части управляемого оборудования и ресурсов. MIB также включает описание действий, которые могут выполняться на основе собранных данных или же вызываемые внешними командами. Базы MIB позволяют внешним системам опрашивать, изменять, создавать и удалять управляемые объекты (реальные ресурсы сети при этом, естественно, продолжают работать). Протокол CMIP и локальные интерфейсы управления обеспечивают доступ к этим возможностям.

MIB - это концептуальная модель, и она не имеет никакой связи со способом физического или логического хранения данных в ресурсе. Стандарты не определяют аспекты собственно хранения данных. Протоколы OSI определяют синтаксис информации, хранящейся в MIB, и семантику обмена данными


^ 37. Формы текстовых файлов. Формирование документов. Гипертекст

Технология гипертекста структурирует текст документа, выделяя в нем слова-ссылки. При активизации ссылки (например, с помощью мыши) происходит переход на заданный в ссылке фрагмент текста. Любой текст можно преобразовать в гипертекст, выделив в нем слова-ссылки и зафиксировав для каждой ссылки точный адрес (метку) перехода.

Технология гипертекста, перенесенная в компыотерные сети, позволила создать “Всемирную паутину” в сети, Интернет. При активизации ссылки может произойти переход не только на любой фрагмент данного документа, но и на любой другой документ, находящийся на компьютере, подключенном к всемирной компьютерной сети Интернет. Активизируя ссылку в этом новом документе, можно' перейти на следующий документ, находящийся на другом континенте и т. д. Используя такие гиперссылки, можно путешествовать по “Всемирной паутине”.

Во “Всемирной паутине” основным и универсальным средством создания гипертекстовых документов стал язык HTML (Hyper Text Markup Language). Последняя версия текстового редактора Word (Word 97) позволяет теперь сохранять документы в формате НТМ, т. е. в формате гипертекста.

Ссылки в таких документах могут обеспечивать переход не только на определенные фрагменты текста, но и на графические файлы, аудио- и видеоклипы. Можно сказать, что с помощью языка HTIVIL можно реализовать технологию гипермедиа.

Для просмотра документов формата НТМ необходимы специальные программы-браузеры (Internet Explorer, Netscape Navigator). При инсталля13;ии

последней версии Internet Explorer 4.0 на компьютере с операционной системой Windows 95 этот браузер становится стандартным интерфейсом операционной системы.

Современные компьютерные справочники и энциклопедии являются документами, созданными с использованием технологии гипертекста. Большинство таких справочников и энциклопедий являются мультимедийными, т. е. реализованными с использованием технологии гипермедиа.

^ 38. Технология обработки текстовой информации. Создание и редактирование документов

Текстовые редакторы (процессоры) относятся к программному обеспечению общего назначения, они предназначены для создания, редактирования, форматирования, сохранения во внешней памяти и печати текстовых документов. Обычно текстовыми редакторами принято называть программы, выполняющие простейшие операции по редактированию текста, а процессорами – программы, обладающие расширенными по сравнению с редакторами средствами для компьютерной обработки текста. Современные текстовые процессоры по своим функциональным возможностям приближаются к издательским системам – пакетам программ, предназначенным для верстки газет, журналов, книг.

Основные функции текстовых процессоров:

  • создание документов;

  • редактирование документов (перемещение по тексту, вставка и замена символов, выделение, удаление, перемещение и копирование фрагментов, поиск и замена фрагментов текста, отмена команд; вставка фрагментов других документов или целых документов и т.д.);

  • сохранение документов во внешней памяти (на дисках) и чтение из внешней памяти в оперативную;

  • форматирование документов, т.е. выполнение преобразований, изменяющих форму документа (оформление отдельных символов и абзацев, страниц, документа в целом – изменение длины строки, межстрочного расстояния, выравнивания текста, изменение шрифта, его размера, применение различного начертания шрифтов и т.д.);

  • печать документов (или их некоторой части);

  • составление оглавлений и указателей в документе;

  • создание и форматирование таблиц;

  • внедрение в документ рисунков, формул и др.;

  • проверка пунктуации и орфографии.

Основными элементами текстового документа являются:

  • слово – произвольная последовательность букв и цифр, ограниченная с двух сторон служебными символами. В качестве служебных символов могут выступать пробел, запятая, скобки и т.д.;

  • строка – произвольная последовательность символов между левой и правой границами абзаца;

  • предложение – произвольная последовательность слов, завершающаяся точкой;

  • абзац – в литературе часть текста, представляющая собой смысловое единство, окончание которой служит естественной паузой для перехода к новой мысли, и обычно выделяемая отступом в первой строке. В документе, оформляемом с помощью компьютера, абзац обычно завершается специальным символом конца абзаца (в DOS и Windows это "возврат каретки" – символ с кодом 13). Допускаются пустые абзацы;

  • страницу составляют строки и абзацы, таблицы и внедренные в документ объекты;

  • наиболее крупной единицей является собственно документ, где все составляющие его абзацы определенным образом структурированы, снабжены при необходимости заголовками, выстроена иерархия структурных разделов.

Обычно текстовые процессоры предусматривают две основные операции изменения формата документа:

  • форматирование произвольной последовательности символов (от одного до любого количества, чаще всего эта последовательность предварительно выделяется);

  • форматирование абзацев.

При форматировании символов можно изменить:

  • шрифт;

  • начертание шрифта (полужирный, курсив, подчеркнутый);

  • размер шрифта;

  • межсимвольный интервал;

  • применить к символам эффекты (нижний индекс, верхний индекс, малые строчные буквы и т.д.).

При форматировании абзацев можно изменить:

  • способ выравнивания строк абзаца (влево, вправо по центру, по ширине);

  • отступ в красной строке абзаца;

  • ширину и положение абзаца на странице;

  • межстрочное расстояние (интерлиньяж) и расстояние между соседними абзацами;

  • создать специальные абзацы (маркированные или нумерованные списки и т.д.).

Наиболее распространенные форматы текстовых файлов, поддерживаемые современными текстовыми процессорами (типа MS Word):

  • текстовый (TXT). Сохраняет текст без форматирования, в текст вставляются только управляющие символы конца абзаца. Обычно этот формат применяют для хранения документов, которые должны быть прочитаны приложениями, работающими в разных операционных системах (Windows, MacOS, Unix и т.д.), для подготовки таких файлов используется текстовый редактор Блокнот;

  • Rich Text Format (RTF). Универсальный формат, который сохраняет все форматирование. Преобразует управляющие коды в текстовые команды, которые могут быть прочитаны и интерпретированы многими приложениями (в т.ч. и в разных ОС). В связи с этим информационный объем файла при этом достаточно велик по сравнению с другими форматами;

  • текст DOS (TXT). Текст в кодировке ASCII, отформатированный в ОС DOS;

  • документ Word (DOC). Оригинальный формат документов MS Word;

  • документ HTML (HTML). Формат, используемый для хранения web-страниц. Содержит коды разметки языка гипертекста. Для подготовки к публикации в Интернете Web-страниц и Web-сайтов используются специализированные приложения: Microsoft FrontPage, Dream Viewer и др.

Для подготовки печатной продукции, выпускаемой большими тиражами (книги, журналы, газеты и др.) используются мощные программы обработки текста – настольные издательские системы. Они предназначены в первую очередь для верстки издания, способны выполнять ряд функций, недоступных текстовому процессору. Наиболее широко используются следующие программы: Adobe PageMaker, Microsoft Publisher, Quark XPress.


^ 41. Технология обработки числовых данных. Электронные калькуляторы и электронные таблицы (Excel).

Широкое распространение стандартных программ решения типовых задач, которые тем или иным способом встраиваются в прикладное обеспечение, еще более отдаляет пользователя от понимания тех сложных вычислительных процессов, которые протекают в недрах компьютера. В итоге весь этот "вычислительный комфорт" часто порождает полное нежелание (а порой и неумение) учитывать применимость тех или иных методов к решаемой задаче и тем более их оптимальность, а также обращать внимание на достоверность полученных результатов. А о том, сколько знаков в выданном компьютером ответе являются правильными, вообще задумываются не многие: "Машина не может ошибаться!" – единодушно (и в чем-то даже правильно) в один голос заявляют и школьник, и бухгалтер, и экономист, добросовестно используя все выведенные на экран цифры числа. Тем не менее, установить количество отображаемых знаков после занятой в современной электронной таблице несоизмеримо проще, чем понять, сколько именно нужно их оставить. Как метко подмечено в учебнике по вычислительным методам:

  • "Фактор использования ЭВМ не упрощает, а в некотором смысле даже усложняет решение вопросов оценки точности полученных результатов (ввиду резкого возрастания количества выполняемых операций). Суть возникающих здесь проблем подмечена в известном принципе Питера: "ЭВМ многократно увеличивает некомпетентность вычислителя". Из этого остроумного замечания следует, что, используя для решения задачи ЭВМ, вычислитель не столько должен полагаться на могущество вычислительной техники, сколько помнить о необходимости понимания того, что в конечном итоге он получает на выходе".

Вывод из нашего введения очевиден: гигантский рост возможностей компьютеров в обработке числовой информации ни в коем случае не отменяет, а в некоторых случаях даже усиливает важность осознанного выбора подходящих методов и технологий решения тех или иных возникающих на практике вычислительных задач.

С этой точки зрения рассматриваемый вопрос билета достаточно важен и имеет большое значение. К сожалению, аспекту выбора наиболее подходящей технологии решения задачи в учебной литературе сейчас не уделяется должною внимания (скорее наоборот, часто берется единственная технология, например, электронные таблицы, и все мыслимые задачи – начиная от моделирования цифровых микросхем и кончая построением графиков функций – решаются на ее основе).

В то же время современное программное обеспечение, имеющее своей целью реализацию на компьютере всевозможных расчетов, необычайно разнообразно. Для организации вычислений с помощью ЭВМ существует большое количество программ, которые различаются идеологией построения, набором возможностей, степенью автоматизации расчетов, трудозатратами на организацию вычислительного процесса, а также возможностями представления результатов (например, в графическом виде). Конечно, круг программных средств и технологий обработки числовой информации не ограничивается калькуляторами и электронными таблицами, как это указано в формулировке билета. Любой школьник знает, что вычислительные задачи можно эффективно решать с помощью языков программирования. Некоторые даже имели опыт работы с системами аналитических преобразований математических выражений (Maple, Математикой или им подобными), которые могут, прежде чем подставлять конкретные числовые значения, решить задачу в общем виде; часто полученных формул уже без всяких дополнительных расчетов бывает достаточно, чтобы получить ответ.

Таким образом, при решении задач, связанных с обработкой числовой информации, компьютер предоставляет нам целый ряд типов программного обеспечения (ПО). Мы можем, в частности:

  1. использовать программу-калькулятор;

  2. применять интерактивный режим языка программирования (например, Бейсика);

  3. разработать и реализовать программу решения задачи на языке программирования;

  4. воспользоваться электронной таблицей;

  5. написать программу-макрос для электронной таблицы;

  6. привлечь на помощь аналитическую систему.

Список, разумеется, не претендует на полноту, и, вполне возможно, читатели могут его продолжить. Отметим также, что последовательность методов решения вычислительных задач, приведенная выше, выбрана достаточно произвольно.

Возможности различного программного обеспечения для обработки числовых данных различны. Прежде всего они касаются степени автоматизации расчетов (например, макросы в состоянии заменить большое количество "ручных" операций), повторяемости тех или иных действий (повторение расчета по хранящимся формулам, наличие программы и т.д.), простоты их реализации (красиво оформленную таблицу в Excel получить проще, чем при традиционных методах программирования).

Можно сформулировать следующие рекомендации по выбору методов решения расчетных задач:

  • Однократные вычисления по 1-2 небольшим формулам быстрее и проще всего выполнить, запустив программу-калькулятор.

  • Аналогичная, но чуть более сложная ситуация: формулы длинные или требуется повторить расчеты несколько раз – калькулятор потребует чрезмерного внимания, могут возникнуть ошибки, поэтому лучше всего подойдет непосредственный режим вычислений в системе программирования.

  • Обработка серии данных по одинаковым формулам (результаты эксперимента или финансовые расчеты) с возможностью наглядного представления данных (таблицы, графики) представляет собой типичную задачу для электронных таблиц.

  • Такие же задачи, но с усложнением обработки (например, не просто найти корреляцию, т.е. уровень взаимосвязи между двумя столбцами, но проанализировать наличие связи "каждого с каждым") гораздо легче решить с добавлением к обычному режиму электронной таблицы макросов.

Вычисления с большим количеством условий и циклов традиционно требуют использования языка программирования. Для некоторых типовых задач можно не писать программу самому, а воспользоваться уже готовой, например, из книги по численным методам, слегка адаптируя ее к своей задаче.



Вычислительные задачи, связанные с исследованием функциональных зависимостей от многочисленных параметров, требующие высококачественной графики, особенно трехмерной, удобнее решать в математических системах, способных выполнять аналитические преобразования.

Разумеется, спектр практических задач существенно богаче, поэтому данные рекомендации носят примерный характер.


^ 44. Технологии хранения, поиска и сортировки информации.

Базы данных используются буквально во всех сферах человеческой деятельности – в науке, производстве, торговле, медицине, криминалистике, искусстве и т.п.

Что такое база данных (БД)? В широком смысле слова можно сказать, что база данных – это совокупность систематизированных сведений об объектах окружающего нас мира по какой-либо области знаний, своеобразная информационная модель этой области. Например: БД по сплавам металлов, БД о работниках предприятия, БД в системе продажи билетов, БД документов в той или иной области, БД по видеофильмам – и многие другие.

Обратите внимание на то, что в определении отсутствует упоминание о компьютере. И это не ошибка – хранение систематизированных данных в виде различных картотек использовалось до появления самых первых вычислительных машин. Вспомните, например, каталог в библиотеке – традиционные небольшие ящички, заполненные карточками со сведениями о книгах и месте их хранения. Во многих библиотеках они сохранились до сих пор, хотя постепенно их содержимое переносится в обширную память компьютеров. Переход к компьютерному хранению информации дает много преимуществ: практически неограниченный объем данных в сочетании с оперативным доступом к ним, возможность логического контроля вводимой информации, контроль целостности и непротиворечивости информации в базе, регулирование уровня доступа к данным для различных категорий пользователей и, наконец, самое главное – замена механического извлечения отдельных сведений мощными методами обработки запросов человека и автоматическое составление произвольных справок и отчетов. С появлением компьютерных сетей отпала необходимость хранения данных в одной машине и даже в одной стране, возникли так называемые распределенные БД. "Вершиной" объединения компьютерных данных может служить Всемирная информационная сеть Интернет.

Тем не менее, отдельно взятой БД для реализации всех перечисленных возможностей недостаточно. Помимо собственно данных, требуется специальное программное обеспечение, которое с ними работает. Такое универсальное ПО принято называть системами управления базами данных, или сокращенно СУБД. Именно наличие СУБД превращает огромный объем хранимых в компьютерной памяти сведений в мощную справочную систему, способную производить поиск и отбор необходимой нам информации.

Роль и место СУБД в процессах компьютерной обработки данных иллюстрирует следующая схема.

Собственно СУБД, управляющая доступом к данным в базе, является универсальным программным обеспечением. Поэтому для адаптации к конкретной области и учета ее конкретных особенностей необходима возможность "подстройки" программного обеспечения. С этой целью большинство СУБД обладают встроенными средствами подобного рода, т.е. фактически собственным языком программирования. Заметим, что в более ранних разновидностях СУБД, например dBASE и родственных ей (FoxPro, Clipper), это было заметно наиболее отчетливо. В современном программном обеспечении, таком, как MS Access, Paradox, Clarion, создание различных форм и отчетов во многом автоматизировано, но тем не менее встроенные языковые средства по-прежнему сохраняются.

Весь изображенный на рисунке комплекс программных и аппаратных средств, предназначенных для хранения, изменения и обработки информации, а также обеспечивающих взаимодействие с пользователем, в литературе принято называть информационной системой.

Сформулируем теперь более четко те функции, которые выполняет современная система управления базами данных.

  • Ввод информации в БД и обеспечение его логического контроля. Под логическим контролем здесь понимается проверка на допустимость вводимых данных: нельзя, например, вводить дату рождения 31 июня 1057 года.

  • Исправление информации (также с контролем правильности ввода).

  • Удаление устаревшей информации.

  • Контроль целостности и непротиворечивости данных. Под термином "целостность" обычно понимают то, что данные, хранящиеся в разных частях базы данных, не противоречат друг другу, например, дата поступления в школу явно не может быть позже даты ее окончания.

  • Защита данных от разрушения. Помимо контроля за целостностью, который только что обсуждался, СУБД должна иметь средства защиты данных от выключения электропитании, сбоев оборудования и других аварийных ситуаций, а также возможности последующего восстановления информации. Особую актуальность данный пункт приобретает в сложных многопользовательских системах.

  • Поиск информации с необходимыми свойствами. Одна из наиболее важных в практическом отношении задач, ради которой ставятся все остальные.

  • Автоматическое упорядочивание информации в соответствии с требованиями человека. Сюда относится сортировка данных, распределение их между несколькими базами и другие подобные процедуры.

  • Обеспечение коллективного доступа к данным. В современных информационных системах возможен параллельный доступ к одним и тем же данным нескольких пользователей, поэтому СУБД должны поддерживать такой режим.

  • Зашита от несанкционированного доступа. Не только ввод новой информации, но даже ее просмотр должны быть разрешены только тем пользователям, у которых есть на это права. Причем речь идет не только о сохранении военной или коммерческой тайны. Например, казалось бы, такой безобидный факт, извлеченный из БД, как неоднократная покупка человеком определенного лекарства в аптеке, в принципе может привести к тому, что при приеме на работу будет взят другой претендент.

  • Удобный и интуитивно понятный пользователю интерфейс.

Наконец, говоря о СУБД, нельзя обойти стороной еще один общий вопрос, связанный с организацией в них данных. Начнем с того, что, помимо собственно данных, в любой базе имеется информация о ее строении, которую чаще всего называют структурой. В простейшем случае структура просто указывает тип информации и объем требуемой для нее памяти. Сведения о структуре позволяют СУБД легко рассчитывать местоположение требуемых данных на внешнем носителе и, следовательно, быстро получить к ним доступ.

Связанные между собой данные, например сведения об одном человеке или объекте, объединяются в БД в единую конструкцию, которая называется запись. При этом части, образующие запись, принято называть полями, или реже – элементами данных. Примерами полей могут служить фамилия, номер паспорта, семейное положение, наличие или отсутствие детей и т.д.

Характер связи между записями в БД определяет три основных типа организации баз данных: иерархический, сетевой и реляционный.



В иерархической базе данных записи образуют особую структуру, называемую деревом (см. рисунок). При таком способе организации каждая запись может принадлежать только одному родителю (более правильный термин – "владелец отношения"). В качестве примеров такого рода отношений можно привести следующие: организация – [основная работа] – работник, банк – [вклад] – сберкнижка, футбольная команда – [хозяин поля] – матч и т.п.

Как следует из описанного выше, любой компонент дерева однозначно определяется путем, по которому мы можем его достигнуть, начиная с главного (верхнего) элемента. Отметим, что типичными примерами иерархического способа организации являются хорошо известная система вложенных каталогов в операционной системе, или так называемое генеалогическое дерево, представляющее собой графическое представление родословной.

В сетевой базе данных связи разрешено устанавливать произвольным образом, без всяких ограничений, поэтому запись может быть найдена значительно быстрее (по наиболее короткому пути). Такая модель лучше всего соответствует реальной жизни: один и тот же человек является одновременно и работником, и клиентом банка, и покупателем, т.е. запись с информацией о нем образует довольно густую сеть сложных связей. В определенном смысле наличие подобных связей моделирует реальные связи между объектами внешнего мира. Трудность состоит в том, что указанную организацию БД, к сожалению, сложно реализовать.

Хотя описанные выше способы являются более универсальными, на практике распространен самый простой тип организации данных – реляционный. Слово "реляционный" происходит от английского "relation", что значит отношение. Строгое определение отношения достаточно математизировано, поэтому на практике обычно пользуются следствием из него: поскольку отношения удобно представлять в виде таблиц, то говорят, что реляционные базы – это базы с табличной формой организации. В качестве примера рассмотрим следующий фрагмент базы:



Персонаж

Профессия

Особые приметы

Герой

1.

Буратино

деревянный человечек

длинный нос

да

2.

Папа Карло

шарманщик

 

да

3.

Карабас-Барабас

директор кукольного театра

борода до пола

нет

4.

Дуремар

фармацевт

характерный запах тины

нет

Отметим еще одну важную особенность реляционной модели данных. Поскольку в отличие от иерархической и сетевой организации баз в реляционных БД отсутствует понятие ассоциативных связей между парами записей, приходится их специальным образом моделировать. Для этой цели в записях создаются дополнительные поля, в которых ставится ссылка на требуемую запись, например, поля с названием организации и ведомства на следующем рисунке:

Ф.И.О.

год рождения

наименование организации

 

 




наименование организации

ведомство

адрес

телефон

директор




ведомство

адрес

телефон

 

 
1   2   3   4   5   6   7   8



Скачать файл (1803 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru