ПОНЯТИЕ МАССИВА. СПОСОБЫ СОЗДАНИЯ МАССИВОВ — КиберПедия


Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

ПОНЯТИЕ МАССИВА. СПОСОБЫ СОЗДАНИЯ МАССИВОВ



ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

ЮРГИНСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ

 

Утверждаю

Зам. директора ЮТИ ТПУ по УР

_________________ В. Л. Бибик

«____»_______________2012 г.

 

ЧИСЛЕННЫЕ МЕТОДЫ

Методические указания к выполнению лабораторной работы №3-4

«Матричная алгебра в системе MATHCAD» по курсу «Численные методы»

для студентов, обучающихся по направлению 230700 «Прикладная информатика,

всех форм обучения

 

Составитель: С.В.Соколова

 

Издательство

Юргинского технологического института (филиала)

Томского политехнического университета

УДК 519.6

ББК 22.193

Ч67

ч67 Численные методы.: методические указания к выполнению лабораторной работы №3-4 «Матричная алгебра в системе MATHCAD» по курсу «Численные методы» для студентов, обучающихся по направлению 230700 «Прикладная информатика», всех форм обучения / сост.С.В. Соколова. – Юрга: Изд-во Юргинского технологического института (филиала) Томского политехнического университета, 2012 – 32 с.

 

УДК 519.6

ББК 22.193

 

Методические указания рассмотрены и рекомендованы
к изданию методическим семинаром кафедры
естественно-научного образования ЮТИ ТПУ

« 29 » ноября 2012 г.

 

 

Зав. кафедрой ЕНО

кандидат педагогических наук __________Е.В. Полицинский

 

Председатель учебно-методической

комиссии __________Е.П. Теслева

 

Рецензент

Доктор физико-математических наук, профессор ЮТИ ТПУ

М.Р.Черкасов

 

 

© ФГБОУ ВПО НИ ТПУ Юргинский

технологический институт (филиал), 2012
©Соколова С.В., составление, 2012

 

СОДЕРЖАНИЕ

Предисловие 4

1. Понятие массива. Способы создания массивов 5

2. Способы отображения массивов 10

3. Операторы для работы с векторами и матрицами 11

4. Функции для работы с векторами и матрицами 14

5.Примеры применения матричной алгебры в экономике 17

6. Порядок выполнения лабораторной работы 19

7. Пример выполнения задания 26

8. Контрольное задание 28

9. Контрольные вопросы 29

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

 


ПРЕДИСЛОВИЕ

 

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

Программа MathCad рассматривает широкий спектр задач, таких как:

­ подготовка научно-технической документации, которая включает в себя текст, формулы в обычном для специалистов виде;



­ вычисление результатов математических операций с числовыми константами, переменными и размерными физическими величинами;

­ операции с векторами и матрицами;

­ решение уравнений и систем уравнений (неравенств);

­ построение двумерных и трехмерных графиков;

­ тождественные преобразования выражений (в том числе их упрощение);

­ аналитическое решение уравнений и систем;

­ дифференцирование и интегрирование (аналитическое и численное);

­ решение дифференциальных уравнений;

­ анализ данных.

В данных методических указаниях приведены краткие теоретические сведения, указания и рекомендации, примеры и индивидуальные задания для работы в пакете Mathcad. Объекты программы MathCad: формулы и текстовые блоки, - располагаются в документе MathCad, который называется рабочий лист. В процессе выполнения расчетов формулы обрабатываются постепенно, слева направо и сверху вниз.

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

1) курсор в виде крестика используется, если этот курсор определяет местоположение следующего объекта;

2) угловой курсор используется при введении формул. Этот курсор указывает на текущий элемент выражения;

3) текстовый курсор (I-образная вертикальная черточка) используется при введении текста.

ЛАБОРАТОРНАЯ РАБОТА №3-4

 

«МАТРИЧНАЯ АЛГЕБРА В системе Mathcad»

 

Цель работы: Изучить способы создания и отображения массивов. Научиться проводить операции с массивами, применять векторные и матричные функции при работе в пакете Mathcad.

Способы создания массивов

1-й способ. Использование специальной панели Insert Matrix (Вставка матрицы) (рисунок 1).

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

1.1воспользоваться командой Matrices... (Матрицы...) пункта главного меню Insert (Вставка);

1.2нажать комбинацию клавиш Ctrl + M;

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

 

Рис. 1 Панель математических инструментов и палитра для работы с векторами и матрицами



 

Любое из этих действий вызывает появление диалогового окна (рисунок 2), в котором надо указать размеры матрицы, т. е. количество ее строк m (Rows) и столбцов n (Columns). Для векторов один из этих параметров должен быть равен 1. При m = 1 получим вектор-строку, а при n = 1 – вектор-столбец. Матрица является двумерным массивом с числом элементов m×n.

 

Рис. 2 Диалоговое окно вставки шаблона матрицы

 

На месте курсора появится шаблон, в знакоместа которого вводятся значения элементов массива:

Переход к следующему знакоместу производится нажатием клавиши Tab или с помощью клавиш управления курсором.

Добавлять строки и столбцы в уже существующий массив можно так:

1) установить курсор на элементе, после которого требуется вставить пустую строку (столбец);

2) вызвать диалоговое окно Insert Matrix, где указать количество добавляемых строк или столбцов, нажать клавишу OK:

В результате указанных действий образуется объект

3) заполнить пустующие знакоместа данными.

Аналогичным образом можно удалять строки и столбцы массивов (кнопка диалогового окна Insert Matrix).

 

2-й способ. Прямое присваивание значений некоторым элементам массива путем ввода их элементов – индексированных переменных.

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

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

 

Клавиши Отображаемое выражение Созданные массивы
V[2:5
M[2,1:5

 

3-й способ. Использование ранжированной переменной.

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

1) определяется системная переменная ORIGIN;

2) задается ранжированная переменная (переменные) для нумерации элементов;

3) индексированной переменной присваиваются значения элементов массива через запятую или в виде явной формулы.

Пример 1. Задать произвольную матрицу 2×3.

Решение.

 

 

Пример 2. Создать вектор из 5 элементов, значения которых определяются по формуле , где i – индексы элементов вектора.

Решение.

 

Пример 3. Создать матрицу 2×2, состоящую из случайных чисел, равномерно распределенных на интервале от -1 до 1.

Решение.

Зададим ранжированные переменные для нумерации строк и столбцов матрицы (ORIGIN = 1):

Для создания матрицы применим соответствующую формулу:

 

4-й способ. Использование таблиц ввода.

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

Задать таблицу ввода можно, задействовав последовательность команд главного меню Insert / Data / Table (Вставка / Данные / Таблица) или выбрав из контекстного меню рабочего листа Insert / Table (Вставка / Таблица). В некоторых версиях Mathcad следует выполнить Insert / Component… / Input Table (Вставка / Компонент… / Input Table). В результате получится шаблон:

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

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

 

5-й способ. Использование встроенных функций.

5.1Встроенная функция позволяет создать матрицу размерности m×n, каждый i-й, j-й элемент которой есть функция двух переменных , где и .

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

Решение.

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

Векторные функции

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

· last(v) – возвращает индекс последнего элемента вектора v;

· length(v) – возвращает длину вектора v.

К следующему разделу можно отнести

· diag(v) – создает диагональную матрицу, элементы главной диагонали которой формируются из элементов вектора v.

Функции сортировки массивов

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

· sort(v) – сортировка элементов вектора в порядке возрастания;

· reverse(v) – перестановка элементов вектора в обратном порядке;

· csort(M, n) – перестановка строк матрицы M таким образом, чтобы отсортированным оказался n-й столбец;

· rsort(M, m) – перестановка столбцов матрицы M таким образом, чтобы отсортированной оказалась m-я строка.

ПРИМЕРЫ ПРИМЕНЕНИЯ МАТРИЧНОЙ АЛГЕБРЫ В ЭКОНОМИКЕ

 

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

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

Например, при межотраслевом анализе структура системы в целом может быть представлена матрицей A технологических коэффициентов «затраты - выпуск» всех ее секторов. Предельно упрощая, введем в рассмотрение вектор U − общий выпуск продукции и K − конечный спрос в секторах. Уравнение межотраслевого баланса в матричной форме имеет вид

,

откуда путем матричных преобразований получаем решение

.

Пусть составлена матрица технологических коэффициентов и вектор потребности в конечном продукте:

.

Тогда общий выпуск продукции

.

 

КОНТРОЛЬНОЕ ЗАДАНИЕ

1 Задать произвольную матрицу M размером 5×4 и вектор v размером 5×1, элементы которого определяются по формуле , где x – произвольное число.

2 Объединить массивы M и v в матрицу A размерностью 5×5. Вывести M в виде таблицы, A – в матричном виде, v отсортировать по убыванию и вывести в виде таблицы вывода ранжированной переменной.

3 Найти максимальный элемент матрицы A, сумму диагональных элементов, определитель матрицы A.

4 Подсчитать сумму элементов матрицы А.

5 Инвертировать матрицу A. В полученном массиве определить максимальные элементы в четных столбцах.

6 В матрице A-1 определить произведение положительных элементов.

7 Записать матрицу А в файл данных и просмотреть его в Блокноте.

 

Приблизительная оценка выполнения контрольного задания (время выполнения 20 минут):

Номера заданий Оценка
1−7 9-10
1−5, 7
1−4, 7 6-7
1, 2, 4, 5
1, 2, 4

 

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

1 Что такое массив?

2 Что такое матрица? Что такое вектор в Mathcad? Какие бывают векторы в Mathcad?

3 Что такое ORIGIN и как она задается?

4 Перечислить способы создания массивов.

5 Как добавить строку или столбец в уже существующий массив?

6 Указать способы вывода и отображения массивов.

7 Перечислить операции для работы с массивами.

8 Перечислить и определить векторные функции.

9 Перечислить и определить функции для создания массивов.

10 Перечислить и определить функции, возвращающие специальные характеристики массивов.

11 Перечислить и определить функции сортировки массивов.

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

 

 

СПИСОК ЛИТЕРАТУРЫ

1. Голдобина, Т. А. MathCad для экономистов / Учеб.-метод. пособие по дисциплине "Компьютерные информационные технологии". – Гомель : БелГУТ, 2007. – 107 с.

2. Дьяконов И.И. Использование системы MathCad .– Киев: Диалектика, 1999.– 386 с.

3. Кирьянов Д.А. Самоучитель MathCad 11.– Санкт-Петербург: БВХ- Петербург, 2003.– 540 с.

4. Симанович С.В. Информатика. Базовый курс. – Санкт-Петербург: Питер, 2004.– 640с.

5. Гурский Д.А., Турбина Е.А. MathCad для студентов и школьников. Популярный самоучитель.– Санкт-Петербург: БВХ- Петербург, 2005.– 40 с.

6. Гурский Д.А., Турбина Е.А. Вычисления MathCad 12 – Санкт-Петербург: Питер, 2006.– 546с.

 

 

 

Учебное издание

 

ЧИСЛЕННЫЕ МЕТОДЫ

 

 

Методические указания к выполнению лабораторной работы

№3-4 по курсу «Численные методы» для студентов, обучающихся

по направлению 230700 «Прикладная информатика»,

всех форм обучения

 

 

Составитель:

СОКОЛОВА Светлана Васильевна

 

Печатается в редакции составителя

 

 

ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

ЮРГИНСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ

 

Утверждаю

Зам. директора ЮТИ ТПУ по УР

_________________ В. Л. Бибик

«____»_______________2012 г.

 

ЧИСЛЕННЫЕ МЕТОДЫ

Методические указания к выполнению лабораторной работы №3-4

«Матричная алгебра в системе MATHCAD» по курсу «Численные методы»

для студентов, обучающихся по направлению 230700 «Прикладная информатика,

всех форм обучения

 

Составитель: С.В.Соколова

 

Издательство

Юргинского технологического института (филиала)

Томского политехнического университета

УДК 519.6

ББК 22.193

Ч67

ч67 Численные методы.: методические указания к выполнению лабораторной работы №3-4 «Матричная алгебра в системе MATHCAD» по курсу «Численные методы» для студентов, обучающихся по направлению 230700 «Прикладная информатика», всех форм обучения / сост.С.В. Соколова. – Юрга: Изд-во Юргинского технологического института (филиала) Томского политехнического университета, 2012 – 32 с.

 

УДК 519.6

ББК 22.193

 

Методические указания рассмотрены и рекомендованы
к изданию методическим семинаром кафедры
естественно-научного образования ЮТИ ТПУ

« 29 » ноября 2012 г.

 

 

Зав. кафедрой ЕНО

кандидат педагогических наук __________Е.В. Полицинский

 

Председатель учебно-методической

комиссии __________Е.П. Теслева

 

Рецензент

Доктор физико-математических наук, профессор ЮТИ ТПУ

М.Р.Черкасов

 

 

© ФГБОУ ВПО НИ ТПУ Юргинский

технологический институт (филиал), 2012
©Соколова С.В., составление, 2012

 

СОДЕРЖАНИЕ

Предисловие 4

1. Понятие массива. Способы создания массивов 5

2. Способы отображения массивов 10

3. Операторы для работы с векторами и матрицами 11

4. Функции для работы с векторами и матрицами 14

5.Примеры применения матричной алгебры в экономике 17

6. Порядок выполнения лабораторной работы 19

7. Пример выполнения задания 26

8. Контрольное задание 28

9. Контрольные вопросы 29

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

 


ПРЕДИСЛОВИЕ

 

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

Программа MathCad рассматривает широкий спектр задач, таких как:

­ подготовка научно-технической документации, которая включает в себя текст, формулы в обычном для специалистов виде;

­ вычисление результатов математических операций с числовыми константами, переменными и размерными физическими величинами;

­ операции с векторами и матрицами;

­ решение уравнений и систем уравнений (неравенств);

­ построение двумерных и трехмерных графиков;

­ тождественные преобразования выражений (в том числе их упрощение);

­ аналитическое решение уравнений и систем;

­ дифференцирование и интегрирование (аналитическое и численное);

­ решение дифференциальных уравнений;

­ анализ данных.

В данных методических указаниях приведены краткие теоретические сведения, указания и рекомендации, примеры и индивидуальные задания для работы в пакете Mathcad. Объекты программы MathCad: формулы и текстовые блоки, - располагаются в документе MathCad, который называется рабочий лист. В процессе выполнения расчетов формулы обрабатываются постепенно, слева направо и сверху вниз.

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

1) курсор в виде крестика используется, если этот курсор определяет местоположение следующего объекта;

2) угловой курсор используется при введении формул. Этот курсор указывает на текущий элемент выражения;

3) текстовый курсор (I-образная вертикальная черточка) используется при введении текста.

ЛАБОРАТОРНАЯ РАБОТА №3-4

 

«МАТРИЧНАЯ АЛГЕБРА В системе Mathcad»

 

Цель работы: Изучить способы создания и отображения массивов. Научиться проводить операции с массивами, применять векторные и матричные функции при работе в пакете Mathcad.

ПОНЯТИЕ МАССИВА. СПОСОБЫ СОЗДАНИЯ МАССИВОВ

Массив в пакете Mathcad − это совокупность конечного числа упорядоченных пронумерованных элементов, которая может иметь уникальное имя.

Используются, в основном, одномерные (векторы) и двумерные (матрицы) массивы, которые в общем случае могут содержать числовые, символьные и строковые данные. Векторы могут быть двух типов: векторы-строки (матрицы 1×n) и векторы-столбцы (матрицы m×1), например:

– вектор-столбец; – вектор-строка.

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

Порядковый номер элемента называется индексом. Местоположение элемента в массиве задается одним индексом для вектора и двумя – для матрицы. Нижняя граница индексации (другими словами, номер первого элемента массива) определяется значением системной переменной ORIGIN. По умолчанию ORIGIN = 0 и может принимать только целые значения. Изменение значения этой системной переменной осуществляется:

1) последовательностью команд Math / Options… / Built-In Variables / Array Origin (ORIGIN) (Математика / Параметры / Встроенные переменные / Начальный индекс массивов);

2) переопределением ORIGIN в документе как локальной (глобальной) переменной, например:

ORIGIN:=1

Способы создания массивов

1-й способ. Использование специальной панели Insert Matrix (Вставка матрицы) (рисунок 1).

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

1.1воспользоваться командой Matrices... (Матрицы...) пункта главного меню Insert (Вставка);

1.2нажать комбинацию клавиш Ctrl + M;

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

 

Рис. 1 Панель математических инструментов и палитра для работы с векторами и матрицами

 

Любое из этих действий вызывает появление диалогового окна (рисунок 2), в котором надо указать размеры матрицы, т. е. количество ее строк m (Rows) и столбцов n (Columns). Для векторов один из этих параметров должен быть равен 1. При m = 1 получим вектор-строку, а при n = 1 – вектор-столбец. Матрица является двумерным массивом с числом элементов m×n.

 

Рис. 2 Диалоговое окно вставки шаблона матрицы

 

На месте курсора появится шаблон, в знакоместа которого вводятся значения элементов массива:

Переход к следующему знакоместу производится нажатием клавиши Tab или с помощью клавиш управления курсором.

Добавлять строки и столбцы в уже существующий массив можно так:

1) установить курсор на элементе, после которого требуется вставить пустую строку (столбец);

2) вызвать диалоговое окно Insert Matrix, где указать количество добавляемых строк или столбцов, нажать клавишу OK:

В результате указанных действий образуется объект

3) заполнить пустующие знакоместа данными.

Аналогичным образом можно удалять строки и столбцы массивов (кнопка диалогового окна Insert Matrix).

 

2-й способ. Прямое присваивание значений некоторым элементам массива путем ввода их элементов – индексированных переменных.

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

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

 

Клавиши Отображаемое выражение Созданные массивы
V[2:5
M[2,1:5

 

3-й способ. Использование ранжированной переменной.

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

1) определяется системная переменная ORIGIN;

2) задается ранжированная переменная (переменные) для нумерации элементов;

3) индексированной переменной присваиваются значения элементов массива через запятую или в виде явной формулы.

Пример 1. Задать произвольную матрицу 2×3.

Решение.

 

 

Пример 2. Создать вектор из 5 элементов, значения которых определяются по формуле , где i – индексы элементов вектора.

Решение.

 

Пример 3. Создать матрицу 2×2, состоящую из случайных чисел, равномерно распределенных на интервале от -1 до 1.

Решение.

Зададим ранжированные переменные для нумерации строк и столбцов матрицы (ORIGIN = 1):

Для создания матрицы применим соответствующую формулу:

 

4-й способ. Использование таблиц ввода.

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

Задать таблицу ввода можно, задействовав последовательность команд главного меню Insert / Data / Table (Вставка / Данные / Таблица) или выбрав из контекстного меню рабочего листа Insert / Table (Вставка / Таблица). В некоторых версиях Mathcad следует выполнить Insert / Component… / Input Table (Вставка / Компонент… / Input Table). В результате получится шаблон:

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

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

 

5-й способ. Использование встроенных функций.

5.1Встроенная функция позволяет создать матрицу размерности m×n, каждый i-й, j-й элемент которой есть функция двух переменных , где и .

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

Решение.

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






Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

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

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

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





© cyberpedia.su 2017-2020 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.05 с.