Вход

Применение теории Паттернов и их компьютерных реализаций в моделировании экономических систем

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 285464
Дата создания 05 октября 2014
Страниц 32
Мы сможем обработать ваш заказ (!) 25 апреля в 14:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
1 600руб.
КУПИТЬ

Описание

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

Содержание

Введение 3
Глава 1. Теория паттернов У. Гренандера как предшественница единой теории модульных систем 5
1.1. Особенности теории паттернов и паттерновых сетей 5
1.2. Идеи и принципы построения теории модулей на основе теории паттернов 13
Глава 2. Характеристика использования теории паттернов и их компьютерных реализаций в современной экономике 17
2.1. Современные компьютерные реализации, построенные на основе теории паттернов 17
2.2. Применение теории паттернов и их компьютерных реализаций в современной экономике 22
Заключение 30
Список литературы 32


Введение

Современные информационные технологии представляют собой компьютерную обработку информации по заранее отработанным алгоритмам, хранение больших объемов информации на различных носителях, а также передачу информации на любые расстояния в минимальные сроки.
Суть информационных технологий, которые вследствие всеобщей компьютеризации вышли на новый уровень, - передача, хранение, обработка и восприятие информации. Разработка информационных технологий - это очень затратная отрасль, которая требует высокой подготовки специалистов и наукоемкой техники, однако их реализация нередко сравнима в революционными преобразованиями.
На данный момент информационные технологии в экономике, их изучение и разработка считается актуальнейшей задачей для специалистов, поскольку без новейших информационных технол огий экономика и отдельно взятых компаний, и целого государства будет оставаться среди отстающих.
Безусловно, информационная экономика изменила многие аспекты экономической реальности, включая и функцию денег, которые из всеобщего эквивалента трудозатрат превратились в средство расчета. Как известно, виртуальные банки и системы оплаты – результат развития информационных технологий.
Помимо всего прочего, следует отметить также образовательную составляющую, связанную с применением информационных технологий в экономике. Для того чтобы эти технологии работали, их нужно уметь использовать с максимальной отдачей. Вследствие этого большинство управленцев концентрируют свое внимание на обучении персонала мониторингу новейших разработок в сфере информационных технологий в экономике.
Достигнутые результаты обусловлены применением теории паттернов и их компьютерных реализаций. Данная теория была разработана во второй половине ХХ века У. Гренадером. Впоследствии теория подверглась некоторым изменениям, но они принесли огромную пользу, так как помогли сформировать единую теорию модульных систем.
Исходя из этого, в самом общем виде информационные технологии в экономике можно определить как совокупность действий над экономической информацией при помощи компьютерной техники с применением теории паттернов для получения оптимального конечного результата.
Следовательно, целью исследования является рассмотрение особенностей теории паттернов и их компьютерных реализаций в современном мире. Согласно поставленной цели, были определены следующие задачи:
1. Охарактеризовать теорию паттернов и паттерновые сети.
2. Раскрыть суть идей и принципов теории модульных систем, основанной на концепциях теории паттернов.
3. Описать основные виды компьютерных реализаций теории паттернов.
4. Привести примеры применения теории паттернов и их компьютерных реализаций в экономике.
Объект исследования – теория паттернов и их компьютерные реализации.
Предмет исследования – использование теории паттернов и их компьютерных реализаций в информационных технологиях, применяемых в современной экономике.
Методологией исследования выступают труды отечественных и зарубежных исследователей. В работе были использованы учебные пособия по информационным технологиям, экономике, научные статьи, автореферат диссертации, электронные ресурсы.

Фрагмент работы для ознакомления

Как известно, паттерн выступает в качестве высококачественного решения часто встречающейся проблемы в процессе проектирования в конкретной предметной области. На сегодняшний день на основе теории паттернов создано огромное количество компьютерных реализаций.
Охарактеризуем два самых важных паттерна в программировании на сегодняшний день: Model-​View-​Controller (MVC) и Delegate.
Паттерном MVC пронизан весь интерфейс сети Интернет.
Отметим, что данный подход к программированию возник еще в языке Smalltalk, а несколько позднее появился в Java. Вероятно, «такая идеология создания приложений оказалась довольно удачной»1, и на сегодняшний день она постепенно приобретает все больше и больше сторонников.
Суть идеи данного паттерна сводится к тому, что в программе должны присутствовать три,слабо связанных между собой, функциональных блока.
Первый блок называется Model, который «отвечает за само поведение приложения (его бизнес логику)»2. В нем имеется алгоритм задачи, которую необходимо решить, а также основной поток вычислений программы.
Например, если задачей ставиться описать функциональность обычного дорожного светофора, то в данном блоке будут находиться процедуры, которые задают последовательность переключения его цветов. Помимо всего прочего, нельзя забывать и о том, что одна большая задача, как правило, подразделяется на несколько других, отдельных подзадач. Так, чтобы включить на светофоре необходимый свет, для начала следует убедится в наличии электричества, и только потом «подать его на конкретную лампочку, не забыв погасить при этом другие, возможно горящие, лампы»1. Разумеется, вся эта функциональность входит в модель светофора и помещается в указанный блок приложения.
Второй блок под названием View отвечает за отображение информации пользователю. Сюда можно отнести все функции, которые будут ответственны за визуальные формы отображения информации. В нашем примере тут будут расположены не только сами лампочки светофора, а также и столб, на котором он висит.
Третий блок называется Controller, который «служит для сбора пользовательского ввода, а также информирования блока»2 Model о том, что необходимо решить ту или иную задачу, а блока View предупредить о том, что определенную информацию следует вовремя отобразить. «В нашем примере со светофором в понятие контроллера входят такие вещи как таймер», который задает период, во время которого горит тот или иной свет. Кроме автоматического таймера в систему может включаться и ручной блок управления светофором, прикрепленный к отдельному столбу.
Отметим достоинства паттерна MVC.
Огромным преимуществом этого паттерна считается то, что Model (то есть само приложение как таковое) находится в слабой взаимосвязи с блоком View и с блоком Controller. При такой системе ему абсолютно безразлично, «откуда именно получать команды или каким образов их выводить»3. Помимо всего прочего, в больших проектах представляется возможным поручить разработку кода Model, View и Controller разным группам разработчиков. Им, в свою очередь, не нужно будет вникать в задачи друг друга для того, чтобы на совместной основе решать общую задачу.
Однако у паттерна MVC имеются и недостатки.
Так, значительно хуже в MVC-паттерне обстоит дело с блоками View и Controller. Ввиду своей жесткой привязки к первому блоку Model, они, как правило, хуже поддаются абстрагированию. В самом деле, пульт от дорожного светофора является бессмысленной вещью «как без самого светофора, так и без логики его переключения»1. Как результат, коробка светофора при отсутствие логики ее переключения, не принесет никакой пользы.
Кроме этого, реализация блока Model осуществляется отдельно, по всем соответствующим правилам, а вот блоки View и Controller любой программист соединяет вместе.
Охарактеризуем второй паттерн под названием Delegate
Зачастую одна часть системы знает, когда произойдет событие (системная часть контроллера из MVC знает, когда пользователь нажал на кнопку), но другая часть, в свою очередь, - «в курсе, что с этим делать (конкретный обработчик событий в вашем коде)»2. К примеру, нужно написать слово на экране. В такой ситуации «класс, который в курсе, когда что-​то произойдет, дает возможность сохранить объект и селектор в специальные поля». В случае свершения сообщения он сразу смотрит, есть ли в этих полях что-​то. В том случае, если есть, он передает сообщение по указанному адресу.
В современной OS X имеются два главных шаблона использования делегатов. В первом случае происходит установка и объекта делегата и селектора, объект традиционно называется target, а селектор action. Другой вариант использования предполагает установку лишь поля delegate. В данном случае реализуемые методы следует называть «строго определенным образом, а зачастую, вообще, класс должен реализовывать определенный протокол»1.
Приведем примеры этого паттерна.
Делегат возникает сразу после создания приложения в виде AppDelegate. Этот класс может реализовывать различные методы. Его нужно указывать в процессе конструирования UIApplication, где и осуществляется связывание его с приложением, после чего приложение посылает делегату сообщения в разные моменты времени, при старте приложения или завершении его работы.
Более простые компоненты, главным образом, довольствуются вариантом установки target и action. Отметим, что MVC также появляется при формировании простейшего проекта. В ходе создания View-​based приложения формируется наследник UIViewController. Это как раз часть MVC второго блока. Вид традиционно «рисуется в интерфейс-​билдере и привязывается к контроллеру при помощи биндинга (binding, «протягивание» мышкой в Interface Builder)»2. Модель в простом случае не выделяется. К примеру, если у пользователя кнопка или статический текст, то моделью будет просто строка, которая прописывается при создании компонента.
В более сложном случае, например, в том же UITable, DataSource является не просто делегатом, а делегатом модели списка. Следовательно, разработчиками ОС написана стандартная модель, а пользователям предоставляют возможность заполнить ее данными, использовав при этом различные методы.
Стоит упомянуть и о современных паттернах проектирования. Перечислим основные:
Фабричный метод (Factory method);
Одиночка (Singleton);
Итератор (Iterator);
Адаптер или обертка (Adapter \ wrapper);
Прототип (Prototype);
Компоновщик (Composite).
Назначение фабричного паттерна заключается в том, что он определяет интерфейс для создания объектов; предоставляет подклассам операции-зацепки (hooks); объединяет параллельные иерархии.
Для паттерна одиночка характерно то, что он гарантирует, что у класса имеется лишь один экземпляр, предоставляя при этом к нему глобальную точку доступа.
Итератор, в свою очередь, «предоставляет способ последовательного доступа ко всем элементам составного объекта, не раскрывая его внутреннего строения»1. Адаптер занимается тем, что преобразует интерфейс одного класса в интерфейс другого.
Паттерн под названием прототип задает виды формируемых объектов при помощи экземпляра-прототипа и создает новые объекты посредством копирования данного прототипа. Паттерн компоновщик «компонует объекты в древовидные структуры для представления иерархии часть-целое»2.
Представляется важным перечислить модели паттерн-ориентированного параллельного программирования на платформе NET, реализованные в Spring PPI:
Singleton;
Singleton выступает в качестве базового, элементарного паттерна, «который инкапсулирует в себе выполнение одного удаленного метода на кластере»3. Учитывая тот факт, что паттерн Singleton описывает один удаленный метод, то чтобы определить его, следует указать три главных составляющих: «объект, метод которого будет вызываться удаленно; имя метода вышеуказанного объекта; набор аргументов, которые необходимо передать методу»4.
Pipeline;
Паттерн Pipeline используется в том случае, когда «задача может быть разделена на последовательность задач, связанных зависимостью при использовании данных»1.
Master-Slave;
Данный паттерн реализует отношение между удаленными методами «главный-подчиненный».
Divide and Conquer;
Паттерн переводится как «Разделяй и властвуй». В Spring PPI он может описывать сложную древовидную иерархию задач (Singleton’ов).
Repository;
Этот паттерн занимается описанием логики работы процессов (удаленных методов) с общей памятью.
Следовательно, на основе теории паттернов было создано огромное количество его компьютерных реализаций, который находят широкое применение в информационных технологиях.
2.2. Применение теории паттернов и их компьютерных реализаций в современной экономике
На сегодняшний день основными проблемами экономической науки считаются рациональное ведение хозяйства, оптимальное распределение ограниченных ресурсов, исследование экономических механизмов управления, эффективная разработка методов экономических расчетов. По сути, эти проблемы являются задачами, которые могут успешно решаться в рамках математических наук. «Количественные и качественные методы математики являются наилучшим вспомогательным аппаратом для получения ответов на основные вопросы экономики»2. Кроме того, при наличии математической модели можно избавиться от необходимости дорогостоящих экспериментов, сопровождаемых, как правило, многократными пробами и ошибками.
Главная цель моделирования экономических систем заключается в применении методов математики для наиболее эффективного решения задач, возникающих в сфере экономики, с использованием современной вычислительной техники, с помощью различных теорий, например, теории паттернов.
Учитывая тот факт, что экономико-математические задачи достаточно сложны по своей структуре, обладают большой размерностью, то для их решения следует использовать всем известные алгоритмы и компьютерные программы. Также важно разрабатывать математическую модель экономической системы и реализовывать ее с помощью компьютеров, компьютерных сетей и информационных технологий в форме «программы, которая находится в среде общего и специального программного обеспечения и взаимодействует с этой средой»1. Помимо всего прочего, благодаря высокому быстродействию современных компьютеров представляется возможным «ускорить выполнение типовых массовых расчетов, повысить точность и сократить трудоемкость»2, проводить разные эксперименты, изучая поведение модели экономической системы при различных изменениях некоторых условий.
К объектам исследования моделирования экономических систем относятся любые экономические объекты, вследствие чего моделирование экономических систем актуально для специалистов по управлению экономическими объектами, в частности, для тех, кто связан с созданием автоматизированных систем управления экономическими объектами.
Следует подчеркнуть, что важным начальным этапом при работе с паттернами считается адекватное моделирование рассматриваемой предметной области.
Паттерн, в общем случае, включает в себя четыре элемента, необходимые для последующего моделирования:
Имя – однозначное определение паттерна, которое говорит о его назначении;
Задача – условия применения паттерна;
Решение – абстрактное описание решения задачи и модель решения в виде набора связанных классов;
Результат – ожидаемые последствия применения паттерна.
В современной экономике паттерны могут применяться для моделирования сложного поведения общественных и экономических систем. Рассмотрим данный процесс подробнее.
В дискретно-событийных имитационных моделях (дискретная теория паттернов) разнообразие поведения модели достигается путем «использования условного выбора в коде программы»1. Тем не менее, если необходимо моделировать сложное поведение, как, например, процессы развития систем, то соответствующий подход вызывает некоторые сложности. Это обусловлено тем, что в процессе развития, система проходит несколько стадий, которые могут кардинально изменить процессы, протекающие в системе, как в экономической, так и в общественной.
Исследователями было предложено одно из решений данной проблемы, которое основывается на использовании паттерна State.
«Для описания объектных моделей систем удобно использовать специальный профиль UML, предназначенный для объектно-ориентированного имитационного моделирования»2. В данном формальном языке осуществляется введение двойственной семантики – предметной и вычислительной. Учеными рассматривается субпрофиль для моделирования активных систем, которое излагается на таком компьютерном языке реализации, как Smalltalk и C++; примеры кода приводятся на языке C++.
Так, дана модельная задача «грузовые перевозки». Пусть в пункте Shop осуществляется погрузка товаров в грузовой автомобиль. Товары доставляются в пункт Home, где автомобиль разгружается. Объект Shop находится в двух состояниях: «Погрузка» и «Простой». Объект Home также находится в двух состояниях – «Простой» и «Разгрузка». Вся система в целом находится в одном из двух состояниях: «Погрузка», «Простой» или «Простой», «Разгрузка».
Подчеркнем, что «в профиле каждой программной сущности назначается предметная семантика, для этого используется механизм помеченных значений с меткой Concept»1. Впоследствии предполагается, что концепты совпадают с именами классов. Так, класс TransportNetwork моделирует контекст модели; он определяет системную динамику – свойства и методы класса CargoTransportation. Экземпляр класса CargoTransportation моделирует изучаемую систему. Экземпляр класса MotorVehicle моделирует грузовой автомобиль. В композицию класса CargoTransportation входит динамический список из двух элементов класса SCell; экземпляры этого класса моделируют Shop и Home.
Указатель на экземпляр класса MotorVehicle хранится в поле prestoredObjects. Процессы, инкапсулированные в объектах классов TransportNetwork, CargoTransportation, SCell и MotorVehicle, считаются параллельными. Синхронизация между ячейками Shop, Home и объектом класса MotorVehicle осуществляется путем обмена сообщениями. Выполнение методов load и unload зависит от того, в какой ячейке находится объект класса MotorVehicle и определяется в процедуре business метода exist класса CargoTransportation. «Выбор поведения можно осуществить путем проверки значения поля title и условия prestoredObjects == NULL»2.
Можно рассмотреть альтернативный способ описания активности модели, используя для создания композиции паттерн State.
Класс SCell, моделирующий ячейку пространства, выступает в роли контекста паттерна и имеет поле state класса Episode. «Класс Episode {Concept = Эпизод} объявлен другом класса SCell, что дает ему привилегированный доступ к приватным полям и процедурам SCel»3. Это позволяет манипулировать с объектами, входящими в композицию класса SCell, а также вызывать процедуру ChangeState(Episode), которая изменяет поле state. Подклассы Episode реализуют поведение в конкретных ячейках пространства. Каждая процедура exist подклассов Episode заканчивается переходом в следующее состояние.
Зачастую хорошим приближением является циклическая смена состояний, как в рассмотренном примере. Тем не менее, в некоторых задачах важно обеспечить уникальность эпизодов, тогда можно воспользоваться другим паттерном, а именно, паттерном Singleton.
Рассмотренная выше программная конструкция была реализована как на C++, так и на Smalltalk . Паттерн State по-разному реализуется на этих языках, однако диаграмма классов будет в обоих случаях одинаковой.
Таким образом, при помощи паттернов в сфере информационных технологий можно моделировать сложное поведение экономических систем.
Кроме этого, в современной экономике использование теории паттернов встречается в области трейдинга (торговля).
Как правило, чем больше трейдер присутствует на рынке, тем больше он убеждается в его гармоничности. Главное то, что не имеет никакого значения тот факт, какими инструментами приходится оперировать, какие временные интервалы используются или какой стиль трейдинга предпочитает тот или иной человек. «Понимание закономерностей движения рыночных котировок приходит от осознания четких взаимосвязей»1, складывающихся в процессе взаимодействия спроса и предложения.
Рассмотрим пример паттерна AB=CD.
Безусловно, в упрощенном виде «любая графическая конфигурация может вытекать из неспособности рынка сформировать новый экстремум»2 (модель 1-2-3), или же из успешного тестирования ранее образованного максимума (минимума — модель AB=CD). Разумеется, есть исключения в виде двойных вершин-оснований, но их удельный вес, главным образом, незначителен.
Паттерн AB=CD детально описывается в учебниках по техническому анализу, а рекомендации по его использованию в торговле сводятся, как правило, «к измерению коррекционного движения для того, чтобы впоследствии оценить перспективы роста (снижения)»1:
Коррекция AB - Цель CD
38,2% - 224%
50% - 200%
61,8% - 161,8%
70,7% - 141,4%
78,6% - 127,2%
Понимая и зная данные закономерности, можно спрогнозировать уровень вероятного разворота, то есть определить достаточно сильную поддержку (сопротивление). Однако «не факт, что рынок не сможет ее преодолеть, но достаточно высокая вероятность неудачного теста, все же, присутствует»2.
Позднее исследователи формируют новую конфигурацию – модель 1-2-3, «которая является основой для целой серии паттернов гармоничной торговли»3. В зависимости от расположения коррекционного экстремума цель последней волны может быть определена на основании следующих данных:
Паттерн - Коррекция XA - Цель CD
Garlley 61,8% - 78,6%
Butterfly 78,6% - 127,2% или 161,8%

Список литературы

1. Балтин, Д.Б. Модели паттерн-ориентированного параллельного программирования на платформе NET: автореф. дисс. – ДонНту, 2007.
2. Гамма, Э., Хелм, Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования / Под ред. Э. Гамма. - СПб: Питер, 2001. - 368 с.
3. Гренандер, У. Лекции по теории образов / Под ред. Ю. Журавлева. - М.: Мир, 1979–1983.
4. Гурьянов, В.И. Специальный UML-профиль для моделирования сложных систем // Информационные технологии моделирования и управления. – 2010. - № 3 (62). – С. 356-362.
5. Гурьянов, В.И. Моделирование сложного поведения общественных и экономических систем // Информационные технологии моделирования и управления. – Воронеж: Научная книга, 2012.
6. Демиденко, Д. Паттерны гармонического трейдинга // Журнал для трейдеров, форекс аналитика, обучение - ForTrader.Ru. – 2012.
7. Иванов, Г. Этюды в тональности // Компьютерная газета AZ. – 2010.
8. Информационные системы в экономике: учебник / Под ред. Г.А. Титоренко. - 2-е изд., перераб. и доп. - М.: Юнити-Дана, 2009. - 463 с.
9. Информационные системы и технологии в экономике и управлении: учебник / Под ред. проф. В.В. Трофимова. – 3-е изд., перераб. и доп. – М.: Юрайт-Издат, 2009. – 521 с.
10. Информационные системы в экономике: Учеб. пособие / Под ред. Д.В. Чистова. - М.: ИНФРА-М, 2012. - 234 с.
11. Исаев, Г.Н. Информационные системы в экономике: учебник / Г.Н. Исаев. – М.: Инфра-М, 2010. – 462 с.
12. Карминский, А.М., Черников, Б.В. Применение информационных систем в экономике: учебное пособие / А.М. Карминский, Б.В. Черников. - 2-е изд-е, перераб. и доп. - М.: ИНФРА-М, 2012. - 320 с.
13. Кремер, Н.Ш. Исследование операций в экономике / Н.Ш. Кремер. - 3-е изд., пер. и доп. - М.: Юрайт, 2013. - 438 с.
14. Маслюк, Л.Л. Неотраженное-2004 // Компьютерра. – 2004. - № 48.
15. Маторин, С.И., Михелев, М.В. Формализация многоагентных систем с помощью теории паттернов // Вестник НТУ. – 2008. - № 49. – С. 96-99.
16. Михеева, Е.В. Информационные технологии в профессиональной деятельности экономиста и бухгалтера: учеб. пособие / Е.В. Михеева. -5-е изд., стер. - М.: Академия, 2009. – 208 с.
17. Фримен, Е.Т.., Фримен Е., Бейтс Б., Сьерра К. Паттерны проектирования / Е.Т. Фримен, Е. Фримен, Б. Бейтс, К. Сьерра. – СПб.: Питер, 2011. – 656 с.
18. Шуткин, Л.В. Идеи и принципы теории модулей // Химия и жизнь. – 2005.
19. Шуткин, Л.В. Парадигма модульного мышления // Химия и жизнь. – 2006. - № 3.
20. Шуткин, Л.В. Парадигма модульного мышления в компьютерной науке и практике / Л.В. Шуткин. – М.: НТИ, 2007. – 44 с.
Электронные ресурсы:
21. Бабаев, А. Про стандартные паттерны в программировании: [Электронный ресурс] // ООО Инру. – 2010. URL: http://touchdev.ru/documents/762 (дата обращения 17.01.2014).
22. Дубина, О. Обзор паттернов проектирования: [Электронный ресурс] // CIT Forum. – 2007. URL: http://citforum.ck.ua/SE/project/pattern (дата обращения 17.01.2014).
23. Моделирование экономических систем: [Электронный ресурс] // Основы менеджмента. – 2010. URL: http://bmanager.ru/articles/modelirovanie-ekonomicheskix-sistem.html (дата обращения 17.01.2014).
24. Паттерны - основные понятия и базовые примеры паттернов: [Электронный ресурс] // Softtodon.com. – 2010. URL: http://softodon.com/article-757-patterni-osnovnie-ponyatiya-i-bazovie-primeri-patternov.html (дата обращения 17.01.2014).
25. Технологии разработки программных обеспечений компьютерных информационных систем: курс лекций: [Электронный ресурс] // ВНИИПВТИ. – 2009. URL: http://pvti.ru/lect1-lecture7.htm (дата обращения 17.01.2014).

Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00491
© Рефератбанк, 2002 - 2024