Вконтакте Facebook Twitter Лента RSS

Раздел программирования ориентированный на разработку. Цели программирования. Промышленная база данных реального времени

Этап I. Идентификация

Наименование параметра Значение
Тема статьи: Этап I. Идентификация
Рубрика (тематическая категория) Программирование

Этап 6. Опытная эксплуатация

Этап 5. Тестирование

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

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

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

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

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

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

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

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

· общие характеристики задачи;

· подзадачи, выделяемые внутри данной задачи;

· ключевые понятия (объекты), характеристики и отношения;

· входные (выходные) данные;

· предположительный вид решения;

· знания, релœевантные решаемой задаче;

· примеры (тесты) решения задачи.

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

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

1. Какие задачи предлагается решать экспертной системе?

2. Как эти задачи бывают охарактеризованы и определœены?

3. На какие подзадачи разбивается каждая задача, какие данные они используют?

4. Какие ситуации препятствуют решению?

5. Как эти препятствия будут влиять на экспертную систему?

6. Ряд других вопросов.

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

При разработке экспертной системы типичными ресурсами являются :

· источники знаний,

· время разработки,

· вычислительные средства (возможности ЭВМ и программного инструментария)

· и объём финансирования.

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

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

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

На первом этапе инженер по знаниям должен ответить на основной вопрос : ʼʼПодходят ли методы инженерии знаний для решения предложенной задачи?ʼʼ. Для положительного ответа на данный вопрос крайне важно, чтобы задача относилась к достаточно узкой, специальной области знаний и не требовала для своего решения использования того, что принято называть здравым смыслом, поскольку методы искусственного интеллекта не дают возможности формализовать это понятие. Вместе с тем, качество экспертной системы зависит в конечном счете от уровня сложности решаемой задачи и ясности ее формулировки. Задача не должна быть ни чересчур легкой, ни чересчур трудной. Обычно число связанных понятий, релœевантных проблеме, должно составлять несколько сотен. Говоря другими словами, назначение экспертной системы в том, чтобы решать некоторую задачу из данной области, а не в том, чтобы быть экспертом в этой области.

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

Этап I. Идентификация - понятие и виды. Классификация и особенности категории "Этап I. Идентификация" 2017, 2018.

  • - III. Радиорелейные средства связи

    II. Беспроводные средства связи I. Проводные средства связи Ø Городскую телефонную связь Ø Прямая телефонная связь (селекторная)Ø Радиотелефонная связь («Алтай») Ø Индуктивная связь (ЭКВ связь «Дистон», «Нальмэс») Ø... .


  • - Расход материалов на 1 км дороги с асфальтобетоном покрытием IV типа

    Таблица 15 Таблица 14 Таблица 13 Таблица 12 Таблица 11 Дороги Движения по сложным процентам в различные годы эксплуатации Величины коэффициентов m, K0, K0m при росте интенсивности Таблица... .


  • - III. Время 90 минут.

    Занятие №5 Тормозная система Тема №8 Механизмы управления По устройству автомобильной техники Проведения группового занятия План – конспект Преподаватель цикла ПОПОН подполковник Федотов С.А. "____"...

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

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

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

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

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

    Структурный подход к построению модели предметной области предполагает выделение следующих когнитивных элементов знаний: 1. Понятия. 2. Взаимосвязи. 3. Метапонятия. 4. Семантические отношения.

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

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

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

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

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

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

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

    При использовании метода "составления списка элементарных действий" эксперту дается задание составить такой список при решении задачи в произвольном порядке.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Этап формализации

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

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

    Этап выполнения

    Цель этого этапа - создание одного или нескольких прототипов ЭС, решающих требуемые задачи. Затем на данном этапе по результатам тестирования и опытной эксплуатации создается конечный продукт, пригодный для промышленного использования. Разработка прототипа состоит в программировании его компонентов или выборе их из известных инструментальных средств и наполнении базы знаний.

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

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

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

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

    Если ЭС-2 успешно прошла этап тестирования, то она может классифицироваться как промышленная экспертная система.

    Этап тестирования

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

    Различают следующие источники неудач в работе системы: тестовые примеры, ввод-вывод, правила вывода, управляющие стратегии.

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

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

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

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

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

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

    Этап опытной эксплуатации

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

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

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

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

    Идентификация и анализ рисков предполагает проведение качествен-ного, а затем и количественного изучения рисков, с которыми сталкивается фирма.

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

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

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


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

    Можно предложить множество критериев для выделения этапов про-цесса идентификации и анализа рисков. Наиболее распространенным яв-ляется степень подробности исследования риска.

    В соответствии с ней можно выделить следующие этапы:

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

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

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

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


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

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

    Задача каждого программиста - создать хорошую программу, т.е. программу, которая:

    А) надежна, т.е. зависит только от своих действий;

    Б) универсальна, т.е. ее можно легко изменить, когда нужна переделка;

    В) совместима, т.е. ее можно перенести с одного компьютера на другой с минимальными изменениями;

    Г) удобочитаема, т.е. хорошо понимаема пользователем;

    Д) эффективна, т.е. реализует наиболее эффективный способ решения задачи.

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


  • ^ Области языков программирования. Научные приложения.
  • Первые цифровые компьютеры, появившиеся в 1940-х годах, использовались и фактически изобретались для научных целей. Обычно научные приложения имеют дело с простыми структурами данных и значительным количеством арифметических вычислений, выполняемых над числами с плавающей точкой. Наиболее часто употребляемыми структурами данных являются массивы и матрицы; из управляющих структур чаще других используются циклы со счетчиком и условные операторы. Первым языком, созданным для научных приложений, был язык FORTRAN. Язык ALGOL и большинство его потомков также предназначались для подобных целей. Однако для научных приложений особо важна эффективность, а ни один из созданных языков не оказался лучше языка FORTRAN. Также Matlab, R.

    Требования: 1. Высокая скорость работы. 2. Поддержка различный математических типов 3. Векторные и матричные вычисления. 4. Большое кол-во математических функций.


  • Области языков программирования. Коммерческие приложения.
  • Использование компьютеров в области коммерции началось в 1950-х годах. Первым удачным языком высокого уровня для коммерческих целей был COBOL,появившийся в 1960 году и по сегодняшний день являющийся в этой области самым широко используемым языком. Деловые языки программирования отличаются возможностями генерации подробных отчетов, точными способами описания и хранения десятичных чисел и символьных данных, а также возможностью определять арифметические действия с десятичными числами.

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

    Также RPG. Требования: 1. Поддержка обработки текста 2. Подд. Формирования отчётов 3. Точное описание числовых типов


  • Области языков программирования. Искусственный интеллект.
  • Искусственный интеллект (ИИ) - обширная область применения компьютеров, отличающаяся использованием символьных, а не числовых вычислений. Под символьными вычислениями подразумевается манипулирование не с числами, а с символами. Кроме того, символьные вычисления удобнее производить с использованием связных списков данных, а не массивов. Символьные вычисления иногда требуют большей гибкости, чем другие области программирования. Например, в некоторых приложениях искусственного интеллекта очень удобно иметь возможность создавать и реализовывать фрагменты программы в процессе ее выполнения. Первым широко используемым языком программирования, созданным для применения в области искусственного интеллекта, был язык функционального программирования LISP, появившийся в 1959 году. Большинство программ в этой области были написаны именно на языке LISP или на одном из родственных языков. Однако в начале 1970-х годов возник альтернативный подход к решению этих задач - язык логического программирования Prolog (1997). Требования: 1. Неалгоритмический способ решения 2. Оперирование с символьными данными

  • Области языков программирования. Системное программирование.
  • Операционные системы и все инструменты программной поддержки компьютерных систем называются системным программным обеспечением (system software). Оно используется практически повсеместно и, следовательно, должно эффективно функционировать. В связи с этим языки программирования, применяемые в этой области, должны обеспечивать быстрое выполнение программ. Более того, они должны иметь низкоуровневые свойства, позволяющие писать программы, осуществляющие взаимодействие с внешними устройствами. PL/S, BLISS- находящийся всего на один уровень выше языка ассемблера; Extended ALGOL. Некоторые характерные черты языка С способствуют его использованию в системном программировании. Он низкоуровневый, эффективно функционирует и не обременяет пользователя большим количеством ограничений. Тем не менее, некоторые считают язык С слишком опасным для использования в больших и важных системах программного обеспечения. Требование – скорость.

  • ^ Области языков программирования. Языки сценариев.
  • Языки подготовки сценариев развивались постепенно в течение последних 25 лет. Программы на этих языках представляют собой исполняемые файлы, называемые сценариями, которые содержат перечень команд. Первым из таких языков был язык sh (сокр. от англ. shell - оболочка), первоначально состоявший из небольшого набора команд, интерпретируемых как вызовы системных подпрограмм, выполнявших служебные функции, например, управление файлами и их простую фильтрацию. Одни из наиболее мощных и широко известных языков подготовки сценариев - ksh, awk, tcl. Разработанный Ларри Уоллом (Larry Wall) язык Perl сначала представлял собой комбинацию языков sh и awk. После этого он получил значительное развитие и сейчас является мощным, хотя и несколько примитивным, языком программирования.

    Требование: 1. Обработка текстовых данных 2. Широкая возможность интеграции программ.


  • Области языков программирования. Web-программирование.
  • Веб-программирование - раздел программирования, ориентированный на разработку веб-приложений (программ, обеспечивающих функционирование динамических сайтов Всемирной паутины). Языки веб-программирования - это языки, которые в основном предназначены для работы с веб-технологиями. Языки веб-программирования можно условно разделить на две пересекающиеся группы: клиентские(JavaScript и VBScript)и серверные(PHP, SQL, Perl, JAVA).

    Веб-программирование это:

    Простой способ обновления и пополнения информации на сайте.

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

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

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

    Требования: безопасность и обработка текстовой информации.


  • ^ Уровни языков программирования. Машинные языки (история возникновения, отличительные особенности, пример языков). Вычислительные машины, служат для одной цели - для переработки информации, которая в них поступает. Переработку информации машина может произвести только тогда, когда четко изложена задача - что машина должна делать, и точно дан метод ее решения - как машина должна поступать. Она требует однозначности, конкретности, точности. И задачи переводят с человеческого языка на машинный.
  • МАШИННЫЙ ЯЗЫК - язык программирования для представления программ в форме, допускающей их непосредственную реализацию аппаратными средствами конкретной ЭВМ. Программа на машинном языке представляет собой последовательность машинных команд. Символами машинного языка являются двоичные цифры (0,1). Машинный код можно рассматривать как примитивный язык программирования или как самый низкий уровень представления скомпилированных или ассемблированных компьютерных программ. Хотя вполне возможно создавать программы прямо в машинном коде, сейчас это делается редко в силу громоздкости кода. Эффективность решения различных задач на ЦВМ в значительной степени зависит от того, насколько М. я. приспособлен для реализации заданных алгоритмов.

    Особенности:

    Для каждого процессора свой машинный язык

    Выполняется непосредственно машиной

    Минимальная (плохая) читаемость кода

    Программисты почти не используют

    ^ 9. Уровни языков программирования. Языки ассемблера(история возникновения, отличительные особенности, пример языков).

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

    Чтобы упростить общение человека с компьютером, были разработаны языки программирования типа Ассемблер, в которых переменные величины стали изображаться символическими именами, а числовые коды операций были заменены на словесные обозначения, которые легче запомнить. Язык программирования приблизился к человеческому языку, но удалился от языка машинных команд. Поэтому чтобы компьютер мог работать на языке Ассемблера, понадобился транслятор – программа, переводящая текст программы на Ассемблере в эквивалентные машинные команды. Языки типа Ассемблер являются машино-ориентированными, потому что они настроены на структуру машинных команд конкретного компьютера. Разные компьютеры с разными типами процессоров имеют разный Ассемблер.Особенности:

    Набор команд языков ассемблера соответствует набору команд процессора

    Более удобен для восприятия и кодирования

    Компилируются/транслируются в машинный код.

    ^ 10. Уровни языков программирования. Языки высокого уровня(история возникновения, отличительные особенности, пример языков).

    Язык высокого уровня - язык программирования, понятия и структура которого удобны для восприятия человеком.

    Языки высокого уровня отражают потребности программиста, но не возможности системы обработки данных. Программисты всеми силами пытались изобрести язык программирования, который по своей структуре будет схож с человеческим языком. Так появились языки программирования С, BASIC, Pascal, COBOL, FORTRAN и др. Эти языки обладали более простым кодом, поэтому создавать программы на них было легче и быстрее. Особенности:

    Более понятны человеку

    1 команда на языке высокого уровня – несколько машинных команд

    Требуется перевести в машинный код

    Проще писать сложную программу

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

    Компиляция - трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду (абсолютный код, объектный модуль, иногда на язык ассемблера). Язык, на котором представлена входная программа, называется исходным языком, а сама программа - исходным кодом. Выходной язык называется целевым языком или объектным кодом. Большинство компиляторов переводит программу с некоторого высокоуровневого языка программирования в машинный код, который может быть непосредственно выполнен процессором. Результат компиляции - исполнимый модуль - обладает максимальной возможной производительностью, однако привязан к определённой операционной системе и процессору (и не будет работать на других). Для каждой целевой машины (IBM, Apple, Sun и т. д.) и каждой операционной системы или семейства операционных систем, работающих на целевой машине, требуется написание своего компилятора.


    Критерий

    Компиляция

    Смешанная реализация

    Интерпретация

    Скорость исполнения

    наивысшая

    средняя

    низкая


    плохая

    отличная

    отличная


    низкое

    среднее

    высокое


    неудобно

    терпимо

    очень удобно

    Примеры

    Pascal, c, c++

    Java, VB

    Python, VBA, PHP

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

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

    Алгоритм работы простого интерпретатора


    • прочитать инструкцию;

    • проанализировать инструкцию и определить соответствующие действия;

    • выполнить соответствующие действия;

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

    Критерий

    Компиляция

    Смешанная реализация

    Интерпретация

    Скорость исполнения

    наивысшая

    средняя

    низкая

    Переносимость (кросс-платформеность)

    плохая

    отличная

    отличная

    Использование ресурсов (оперативная память, жесткий диск)

    низкое

    среднее

    высокое

    Удобство разработки и сопровождения (поиск ошибок)

    неудобно

    терпимо

    очень удобно

    Примеры

    Pascal, c, c++

    Java, VB

    Python, VBA, PHP

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

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


    Критерий

    Компиляция

    Смешанная реализация

    Интерпретация

    Скорость исполнения

    наивысшая

    средняя

    низкая

    Переносимость (кросс-платформеность)

    плохая

    отличная

    отличная

    Использование ресурсов (оперативная память, жесткий диск)

    низкое

    среднее

    высокое

    Удобство разработки и сопровождения (поиск ошибок)

    неудобно

    терпимо

    очень удобно

    Примеры

    Pascal, c, c++

    Java, VB

    Python, VBA, PHP

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

    Траснляция – перевод текста программы с одного языка на другой.

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

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

    3.Семантический анализ. Дерево разбора обрабатывается с целью установления его семантики (смысла) - например, привязка идентификаторов к их декларациям, типам, проверка совместимости, определение типов выражений и т. д. Результат обычно называется «промежуточным представлением/кодом», и может быть дополненным деревом разбора, новым деревом, абстрактным набором команд или чем-то ещё, удобным для дальнейшей обработки.

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

    5.Генерация кода. Из промежуточного представления порождается код на целевом языке.

    ^ 15. Критерии качества программ:

    Количественные:

    1)Размер программы;

    А) В исходном коде LOC(~30,50);

    Б) В откомпилированном виде;

    Потребляемые ресурсы;

    Время выполнения;

    Качественные:

    Корректность (программа должна выполнять поставленную задачу);

    Удобство;

    Читабельность (Читаемость кода);

    Сопровождение (расширяемость);

    Переносимость;

    Надежность;

    16. Алгоритм:

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

    Основные свойства алгоритмов следующие:

    1. Понятность для исполнителя - исполнитель алгоритма должен понимать, как его выполнять. Иными словами, имея алгоритм и произвольный вариант исходных данных, исполнитель должен знать, как надо действовать для выполнения этого алгоритма.

    2. Дискретность (прерывность, раздельность) - алгоpитм должен пpедставлять процесс решения задачи как последовательное выполнение пpостых (или pанее определённых) шагов (этапов).

    3. Опpеделенность - каждое пpавило алгоpитма должно быть четким, однозначным и не оставлять места для пpоизвола. Благодаpя этому свойству выполнение алгоpитма носит механический хаpактеp и не тpебует никаких дополнительных указаний или сведений о pешаемой задаче.

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

    5. Массовость означает, что алгоpитм pешения задачи pазpабатывается в общем виде, т.е. он должен быть пpименим для некотоpого класса задач, pазличающихся лишь исходными данными. Пpи этом исходные данные могут выбиpаться из некотоpой области, котоpая называется областью пpименимости алгоpитма.

    ^ 17. Способы записи алгоритма. Блок-схемы.

    Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным.

    При графическом представлении алгоритм изображается в виде последовательности

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

    Выполнению одного или нескольких действий.

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

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

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

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

    ^ 18. Способы записи алгоритма. Псевдокод.

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

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

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

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

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

    ^ 19. Способы записи алгоритма. Сравнение различных подходов:

    Графический способ представления алгоритмов является более компактным и наглядным по сравнению со псевдокодом. При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков. Графическое описание алгоритма, называется блок-схемой. Этот способ имеет ряд преимуществ благодаря наглядности, обеспечивающей, в частности, высокую «читаемость» алгоритма и явное отображение управления в нем. В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура, представленная в виде блочного символа. Блочные символы соединяются линиями переходов, определяющими очередность выполнения действий. В таблице №1 приведены обозначения, наиболее часто используемые в блок-схемах. Сначала определим понятие блок-схемы. Блок-схема - это ориентированный граф, указывающий порядок исполнения команд алгоритма. Вершины такого графа могут быть одного из трех типов: функциональная вершина (F), имеющая один вход и один выход; предикатная вершина (Р), имеющая один вход и два выхода, в этом случае функция Р передает управление по одной из ветвей в зависимости от значения Р (t, т. е. true, означает «истина»,f, т. е. false, - «ложь»); объединяющая вершина (вершина «слияния») (U), обеспечивающая передачу управления от одного из двух входов к выходу. Иногда вместо t пишут «да» (либо знак «+»), вместо f - «нет» (либо знак «-»). Из данных элементарных блок-схем можно построить четыре блок-схемы, имеющих особое значение для практики алгоритмизации: композиция, или следование альтернатива, или ветвление; итерация, или цикл, с предусловием или постусловием. Блок-схема альтернатива может иметь и сокращенную форму, в которой отсутствует ветвь F2. Развитием блок-схемы типа альтернатива является блок-схема выбор.

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

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

    Языки веб-программирования делятся на две группы

    · Клиентские языки

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

    · Серверные языки

    Когда пользователь дает запрос на какую-либо страницу (переходит на неё по ссылке или вводит адрес в адресной строке своего браузера), то вызванная страница сначала обрабатывается на сервере, то есть выполняются все программы, связанные со страницей, и только потом возвращается к посетителю по сети в виде файла. Этот файл может иметь расширения: HTML, PHP, ASP, ASPX, Perl, SSI, XML, DHTML, XHTML.

    Работа программ уже полностью зависима от сервера, на котором расположен сайт, и от того, какая версия того или иного языка поддерживается. К серверным языкам программирования можно отнести: PHP, Perl, Python, Ruby, любой.NET язык программирования (технология ASP.NET), Java, Groovy.

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

    1.1 HTML. Создание и редактирование документов

    HTML (HyperText Markup Language) - язык разметки гипертекста - предназначен для создания Web-страниц. Под гипертекстом в этом случае понимается текст, связанный с другими текстами указателями-ссылками.

    HTML представляет собой достаточно простой набор кодов, которые описывают структуру документа. HTML позволяет выделить в тексте отдельные логические части (заголовки, абзацы, списки и т.д.), поместить на Web-страницу подготовленную фотографию или картинку, организовать на странице ссылки для связи с другими документами. HTML не задает конкретные и точные атрибуты форматирования документа. Конкретный вид документа окончательно определяет только программа-броузер на компьютере пользователя Интернета. HTML также не является языком программирования, но web-страницы могут включать в себя встроенные программы-скрипты на языках Javascript и Visual Basic Script и программы-апплеты на языке Java.

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

    content="text/html; charset=UTF-8"

    http-equiv="content-type">

    Вывод простого текста

    Пишем Код - Вершим историю. (c) Sergey Gurov

    Результат показан на рисунке №1.

    Рисунок 1. Простейшая html страница

    Основные теги THML используемые при создании web-страниц:

    - Указывает программе просмотра страниц что это HTML документ.

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

    - Определяет видимую часть документа.

    - Помещает название документа в оглавление программы просмотра страниц

    - Создает самый большой заголовок

    - Выделение цитат курсивом

    Создает ненумерованный список

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

      , а каждый пункт списка начинается с тега
    • , к примеру создадим маркированный список известных языков программирования:

      Маркированный список

    • Delphi
    • GLSL – Шейдерный язык
    • Результат показан на рисунке №2.

      Рисунок №2. Маркированный лист

      Форматирование html страницы, а именно ее элементов производится благодаря тегам форматирования, к примеру:

      Hello World Создает жирый текст “Hello Word”

      Hello Space Создает наклонный текст “Hello Space”

      Результат показан на рисунке №3.

      Рисунок №3. Форматирование текста

      Форматирование текста можно комбинировать, к примеру в этой строке кода:

      Hello World - Говорится, что текст будет наклонным и жирным одновременно.

      Для вставки графических элементов служит тэг .

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

      Простой пример использования графического изображения при создании web-страницы:

      Результат показан на рисунке №4.

      Рисунок №4. Форматирование текста

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

      1.2 Использование фреймов и форм

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

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

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

      Дескриптор служит для определения структуры и содержимого конкретного фрейма.

      Приведем простейший пример с использованием фрейма:

      Пример работы с фреймами

      Результат показан на рисунке №5.

      Рисунок №5. Использование фрейма

      Использование Форм при создании html страницы.

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

      Простой пример применения форм при создании html страницы:

      Тег FORM

      Какой язык программирования вы используете чаще всего?

      Delphi

      C++

      Пишу шейдеры на GLSL

      Результат показан на рисунке №6.

      Рисунок №6. Использование формы

      Гиперссылка может связывать страницы как в пределах одного сайта, так и указывать на любую страницу в Интернете. При построении ссылки на чужие страницы всегда надо пользоваться абсолютным адресом страницы (http://www.site.com/page.html). Если создается ссылка на страницу в пределах сайта, то предпочтительнее использовать относительный URL (page.html, catalog/page.html).

      При помощи атрибута TARGET можно загрузить страницу в новом окне браузера. Этот атрибут предназначен для задания наименования окна. Имя окна используется в служебных целях. Чтобы открыть страницу в новом окне надо использовать константу _blank.

    © 2024 Про уют в доме. Счетчики газа. Система отопления. Водоснабжение. Система вентиляции