МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

Сила воли ведет к действию, а позитивные действия формируют позитивное отношение


Как определить диапазон голоса - ваш вокал


Игровые автоматы с быстрым выводом


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


Целительная привычка


Как самому избавиться от обидчивости


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


Тренинг уверенности в себе


Вкуснейший "Салат из свеклы с чесноком"


Натюрморт и его изобразительные возможности


Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д.


Как научиться брать на себя ответственность


Зачем нужны границы в отношениях с детьми?


Световозвращающие элементы на детской одежде


Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия


Как слышать голос Бога


Классификация ожирения по ИМТ (ВОЗ)


Глава 3. Завет мужчины с женщиной


Оси и плоскости тела человека


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


Отёска стен и прирубка косяков Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу.


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

Задания для выполнения на занятиях





2.4.1. Задание 1

2.4.1.1. Условие задания

Составить графическую схему алгоритма и написать программу вычисления функции y=f(x) в соответствии с видом функции, приведенном в табл. 6.1. В программе предусмотреть вывод

значения аргумента функции x;

вычисленного значения функции y;

номер формулы, по которой производилось вычисление функции (1, 2 или 3).

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

Таблица 6.1

 

Функция

 

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

Написать программу вычисления выражения

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

 

2.4.1.3. Текст программы задания 1

/ *Лабораторная работа № 6 */

/* Разветвляющийся вычислительный процесс */

/* Задание № 1 */

/* Вариант № 30 */

/*Автор: Иванова А.А. студентка гр. ИНФО-101*/

#include<conio.h>

#include<math.h>

#include<iostream.h>

int main()

{

double x, y, s;

cout << "Vvedite x: ";

cin >> x;

cout << "Vvedite y: ";

cin >> y;

double f_xy = fabs(x*y);

if (f_xy > 10){s = fabs(cos(x)) + log(y); // |xy| >10

cout << "1 vetv. Result = " << s << endl;

}

else if (f_xy>3 && f_xy<=10){ s = exp(2*x+y); //3<|xy|<=10

cout << "2 vetv. Result = " << s << endl;

}

else {s = sqrt(fabs(x)) + 2*tan(y); // иначе

cout << "3 vetv. Result = " << s << endl;

}

getch();

return 0;

}

 

2.4.1.4. Тестирование программы задания 1

Вариант 1

Вариант 2

Вариант 3

 

 

2.4.2. Задание 2

2.4.2.1. Условие задания

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

Таблица 6.2

 

Область Область
 

 

2.4.2.2. Пример решения задачи (вариант 30)

2.4.2.2.1. Разработка алгоритма решения.

Первым шагом алгоритма должен быть ввод координат точки: x и y. Для большего удобства при анализе результатов можно вывести введенные значения на экран. Исследование изображения на рисунке-задании дает нам основание утверждать, что целевая область образуется пересечением: прямой с коэффициентом -1 и смещением +1 и окружности с центром в начале координат и радиусом 1, как показано на рисунке ниже

 

Уравнение этой прямой: y=-x+1

Уравнение окружности: x2+y2=1

Для проверки попадания точки в заданную область нужно проверить условия того, что:

1). Точка лежит выше прямой или на ней, т.е.: y>=-x+1

2). Точка лежит внутри окружности или на ней, т.е.: x2+y2<=1

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

Схема алгоритма приведена на рисунке ниже.

 

2.4.2.2.2. Определение переменных программы

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



 

2.4.2.2.3. Разработка текста программы

Текст программы начинается с включения фала:

#include <stdio.h>

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

Далее идет заголовок и открытие главной функции:

int main(void) {

и объявление переменных, определенных в пункте 2.4.2.2.2.

 

double x, y;

 

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

printf("Введите координату x >");

scanf("%lf",&x);

printf("Введите координату y >");

scanf("%lf",&y);

 

Введенные значения координат выводятся на экран:

printf("x=%6.3lf; y=%6.3lf\n",x,y);

 

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

if ( (y>=1-x)&& (x*x+y*y<=1) )

 

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

printf("Точка попадает в область\n");

 

В противном случае выводится сообщение про попадание:

else printf("Точка не попадает в область\n");

 

2.4.2.2.4.Полный текст программы приведен ниже.

/****************************************************/

/* Лабораторная работа № 6 */

/* Разветвляющийся вычислительный процесс */

/* Задание № 2 */

/* Вариант № 30. */

/* Автор: Иванова А.А. студентка гр. ИНФО-101 */

/****************************************************/

#include<conio.h>

#include<math.h>

#include<iostream.h>

#include<stdio.h>

#include <stdio.h>

int main()

{

double x, y; /* Координаты точки */

/* Ввод координат */

cout << "Введите координату x >";

cin >> x;

cout << "Введите координату y >";

cin >> y;

/* Вывод только что введенных значений */

cout << "Исходные данные: ";

cout << "x = " << x << " y = " << y << endl;

 

/* проверка условий */

if ( (y>=1-x) && (x*x+y*y<=1) ) cout << "Точка попадает в область\n";

else cout << "Точка не попадает в область\n";

 

getch();

return 0;

}

 

2.4.2.2.5. Отладка программы

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

1) точка лежит ниже области - (0.4, 0.4);

2) точка лежит на нижней границе области - (0.5, 0.5);

3) точка лежит внутри области - (0.7, 0.6);

4) точка лежит на верхней границе области - (0.707, 0.707);

5) точка лежит выше области - (0.8, 0.8);

6) точка лежит на правом краю области - (1.0, 0.0);

7) точка лежит на левом краю области - (0.0, 1.0);

 

2.4.2.2.6. Результаты работы программы

Ниже приведены результаты работы программы для входных данных по п.2.4.2.2.5:

x=0.400; y=0.400

Точка не попадает в область

 

x= 0.500; y= 0.500

Точка попадает в область

 

x= 0.700; y= 0.600

Точка попадает в область

 

x= 0.707; y= 0.707

Точка попадает в область

 

x= 0.800; y= 0.800

Точка не попадает в область

 

x= 0.100; y= 0.000

Точка попадает в область

 

x= 0.000; y= 1.000

Точка попадает в область

 

5.6. Выводы

 

2.4.3. Задание 3

2.4.3.1. Условие задания

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

Таблица 6.3

Описание задачи
Дан номер месяца (1 — январь, 2 — февраль, ...). Вывести название соответствующего времени года ("зима", "весна" и т.д.).
  Дан номер месяца (1 — январь, 2 — февраль, ...). Вывести число дней в этом месяце для невисокосного года.
  Дано целое число в диапазоне 0 – 9. Вывести строку — название соответствующей цифры на русском языке (0 — "ноль", 1 — "один", 2 — "два", ...).
Дано целое число в диапазоне 1 – 5. Вывести строку — словесное описание соответствующей оценки (1 — "плохо", 2 — "неудовлетворительно", 3 — "удовлетворительно", 4 — "хорошо", 5 — "отлично").
Арифметические действия над числами пронумерованы следующим образом: 1 — сложение, 2 — вычитание, 3 — умножение, 4 — деление. Дан номер действия и два числа A и B (В не равно нулю). Выполнить над числами указанное действие и вывести результат.
Единицы длины пронумерованы следующим образом: 1 — дециметр, 2 — километр, 3 — метр, 4 — миллиметр, 5 — сантиметр. Дан номер единицы длины и длина отрезка L в этих единицах (вещественное число). Вывести длину данного отрезка в метрах.
Единицы массы пронумерованы следующим образом: 1 — килограмм, 2 — миллиграмм, 3 — грамм, 4 — тонна, 5 — центнер. Дан номер единицы массы и масса тела M в этих единицах (вещественное число). Вывести массу данного тела в килограммах.
Робот может перемещаться в четырех направлениях ("С" — север, "З" — запад, "Ю" — юг, "В" — восток) и принимать три цифровые команды: 0 — продолжать движение, 1 — поворот налево, –1 — поворот направо. Дан символ C — исходное направление робота и число N — посланная ему команда. Вывести направление робота после выполнения полученной команды.
Локатор ориентирован на одну из сторон света ("С" — север, "З" — запад, "Ю" — юг, "В" — восток) и может принимать три цифровые команды: 1 — поворот налево, –1 — поворот направо, 2 — поворот на 180 градусов. Дан символ C — исходная ориентация локатора и числа N1 и N2 — две посланные ему команды. Вывести ориентацию локатора после выполнения данных команд.
Элементы окружности пронумерованы следующим образом: 1 — радиус (R), 2 — диаметр (D), 3 — длина (L), 4 — площадь круга (S). Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данной окружности (в том же порядке). В качестве значения Pi использовать 3.14.
Стоимость проезда в транспорте зависит от расстояния, которое проезжает пассажир, и тарифа за 1 км пути, который устанавливается в зависимости от дальности: если расстояние <10 км, то стоимость проезда 1 км равна а1 руб. если расстояние 10≤ и <100 км, то стоимость проезда 1 км равна а2 руб. если расстояние ≥100 км, то стоимость проезда 1 км равна а3 руб. . Определить стоимость билета для пассажиров, едущих на расстояние В.
Имеются данные о выработке продукции за день по плану (П) и фактически (Ф). Определить величину выпуска продукции (З), зачитываемую в счет выполнения плана по формуле:  
Избыток (I>0) или недостаток рабочих (I<0) некоторого предприятия определяется по формуле: где Ф - среднемесячная численность рабочих (фактически); П - среднемесячная численность рабочих (по плану); х- процент выполнения плана по выпуску продукции. Определить, испытывает ли предприятие недостаток в рабочей силе.
Шоферу, работающему на уборке и вывозке зерна, оплачивают по установленным расценкам Р (руб.) за перевезенное зерно. Если при этом количество тонн перевезенного зерна больше установленной нормы, то оплата за все перевезенное зерно производится по повышенным расценкам Р1 (руб.). Кроме того, в этом случае начисляется по С кг зерна на каждый рубль оплаты за перевезенное зерно. Рассчитать величину оплаты за перевезенное зерно для заданных нормы перевозки (т), фактически перевезенного зерна (т) значений Р, Р1 и С .
Предприятие выпускает продукцию, соответствующую стандарту (в исходном документе отмечается буквой С) и со знаком качества (в исходном документе отмечается буквой К). Определить сумму выручки от реализации М единиц продукции с учетом ее качества при условии, что предприятию оплачивают по А руб. за каждое изделие, соответствующее стандарту, а за единицу изделия со знаком качества платится надбавка К % к А. Вся продаваемая партия относится к одному виду качества.
Решить предыдущую задачу, добавив условие, что в исходном документе может фиксироваться продукция, не соответствующая стандарту (в исходном документе отмечается буквой Я). При оплате таких изделий делается скидка в размере Р % от А.
Телефонные разговоры с тремя населенными пунктами стоят С1, С2, С3 руб./мин., соответственно. Какую сумму насчитает компьютер за разговор длительностью t минут с заданным населенным пунктом?
Периметр цветочной клумбы вычисляется по формуле L = 2πa , если клумба имеет форму круга с радиусом a, по – формуле L = 8a/3, если клумба имеет форму прямоугольника со сторонами, равными a и a/3. Если клумба имеет форму равностороннего треугольника со стороной, равной a, то ее периметр вычисляется по формуле L= 3a. Вычислить периметр цветочной клумбы заданной формы.
Оплата работ зависит от типа выполненной работы и насчитывается по формуле где x – объем выполненной работы. Для работ типа A налог составляет 10%, для В – 5%, для С – 20%. Ввести тип работ. Вывести насчитанную сумму, сумму налога и к выдаче.
Известно, что 1 фут = 0.3048 м = 12 дюймов. Для расстояния, равного P м, вычислить расстояние в футах или дюймах для заданной меры (фут или дюйм).
Время (t) на пробег автомобиля от автопредприятия до пункта первой погрузки или места подачи (нулевой пробег), ч. определяется по формуле: t = L / V, где L - пробег автомобиля от автопредприятия до пункта первой погрузки или места подачи (нулевой пробег), км; V – расчетная норма скорости пробега автомобиля (км/ч), принимающая следующие значения в зависимости от типа дорог: 49 км/ч для дорог с усовершенствованным покрытием, 37 км/ч для дорог с твердым покрытием, 28 км/ч для естественных грунтовых дорог. Рассчитать время пробега автомобиля на расстояние L по дороге заданного типа.
Себестоимость строительно-монтажных работ определяется по формуле: С = М + З + А + Н, где М – стоимость используемых материалов, конструкций, электроэнергии и т.п.; З – расходы на оплату труда, А – расходы на содержание строительных машин и механизмов; Н – накладные расходы. На строительно-монтажные работы, выполняемые хозяйственным способом, к нормам накладных расходов применяется понижающий коэффициент 0,506. На внутренние санитарно-технические работы, выполняемые в сельских районах, к нормам накладных расходов применяется коэффициент 1,15. При реконструкции действующих предприятий к нормам накладных расходов применяется коэффициент 1,1. Рассчитать себестоимость строительно-монтажных работ заданного типа.
Расчет прибыли (П) организации в условиях инфляции производится по формуле: П = Нотч * ПН где Потч – прибыль отчетного года; НН – индекс инфляции, равный (1+m)12 (m – коэффициент уровня инфляции в месяц, 12 – количество месяцев в году). Если планируемые уровни инфляции на сырье m и на отпускную цену готовой продукции n не совпадают, то расчет прибыли выполняется по формуле: где В – объем реализации продукции в отчетном году (млн р.); НДС – налог на добавленную себестоимость (млн р.); Н – единый платеж в республиканский и местные целевые бюджетные фонды (млн р.); З – себестоимость этой продукции (млн р.); Рассчитать планируемую прибыль организации.
Размеры возмещения суточных расходов при длительных служебных командировках по Республике Беларусь составляют Р тыс. руб/сутки. Возмещение длительных и однодневных командировок находится в пропорции 2:1. Рассчитать размер возмещения суточных по командировке, длящейся n суток.
Житель РБ Беларусь решил подключиться к сети VELCOM на один из тарифных планов: "Корпоративный" или "Социальный". Известно, что его исходящие разговоры составят m часов в месяц, из которых n часов составят разговоры в стационарной сети, k часов в сетях БелСел, МТС, БеСТ и t часов в рамках закрытой абонентской группы (корпорации), т.е. m=n+k+t. Тарифы за одну минуту исходящих соединений тарифных планов "Корпоративный" и " Социальный " приведены в таблице:
Стационарная сеть БелСел, МТС, БеСТ Внутри корпорации
Корпоративный Социальный Корпоративный Социальный
220 руб. 290 руб. 255 руб. 290 руб. 28 руб.
Кроме того, тарифный план "Корпоративный" предоставляет 2,5 часа бесплатных разговоров, а тарифный план "Социальный " только один час бесплатных разговоров. Абонентская плата составляет 5250 руб. и 4500 руб. для "Корпоративного" и "Социального" планов, соответственно. На какой тарифный план компании VELCOM выгоднее подключиться?
Для заданных значений зарплаты и стажа рабочего некоторого предприятия определить надбавку к зарплате за стаж работы и сумму к выдаче (Зарплата + Надбавка). Надбавка составляет 40%, 25% или 15% от оклада, если стаж работы свыше 15, 10 или 5 лет, соответственно.

 

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

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

Решение. Возможные значения номера дней недели (обозначим их через n) – это числа 1-7. При вводе числа 1 программа должна выводить названия "Понедельник ", "Вторник ", …, "Воскресенье", при вводе числа 2 – названия "Вторник ", …, "Воскресенье". И т.д. При вводе числа 7 – только название "Воскресенье". При вводе любого другого числа – сообщение "Неправильно введен номер дня недели". Реализация выбора из такого множества вариантов может быть осуществлена с помощью оператора switch (k). Ниже приведен текст программы с оператором switch(k), в котором только после последнего case есть оператор break;, по которому и происходит выход из switch и переход на следующий оператор программы (fflush(stdin);) для k=1-7. Если k ¹ 1-7, то выполнится оператор puts ("Неправильно введен номер дня недели");, стоящий после default, затем следующий оператор программы (fflush(stdin);).

2.4.3.3. Текст программы задания 3

/* Лабораторная работа № 6 */

/* Разветвляющийся вычислительный процесс */

/* Задание № 3 */

/* Оператор выбор switch */

/* Вариант № 30 */

/*Автор: Иванова А.А. студентка гр. ИНФО-101*/

#include <math.h>

#include<iostream.h>

int main()

{

int k; // Номер дня недели

cout << "Введите номер дня недели ";

cin >> k;

cout << "До конца недели:\n";

switch (k)

{

case 1: cout << "Понедельник ";

case 2: cout << "Вторник ";

case 3: cout << "Среда ";

case 4: cout << "Четверг ";

case 5: cout << "Пятница ";

case 6: cout << "Суббота ";

case 7: cout << "Воскресенье \n";

break;

default: cout << "Неправильно введен номер дня недели";

}

fflush(stdin);

getchar();

return(0);

}

 

2.4.3.3. Тестирование

 

и

 

 

и

 

2.4.4. Задание 4

2.4.4.1. Условие задания

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

Таблица 6.4

 

Описание задачи
Определить в какой четверти или на какой оси координатной плоскости находится точка с координатами х, у.
Даны два числа неравных друг другу. Меньшее из них заменить их полусуммой, большее - их удвоенным произведением.
Даны три целых положительных числа. Если все они четные, каждое число уменьшить в два раза, если хотя бы одно из них четное, увеличить каждое число на 20% , если четных чисел нет, оставить числа без изменения.
Даны три целых числа. Найти минимальное из них и прибавить минимальное значение к числам, отличным от минимального.
Даны три целых числа. Определить, могут ли они быть сторонами треугольника. Если могут, то определить какой это треугольник: равнобедренный, равносторонний или разносторонний.
Даны два угла (в градусах). Определить существует ли треугольник с такими углами. Если да, то будет ли он прямоугольным.
Даны три числа. Если одно из них положительное, то найти площадь квадрата со стороной, равной значению положительного числа. В противном случае вывести соответствующее сообщение.
Даны числа a, b. Если b=0, то найти min (a, b), если b<0, то найти max (a, b), в противном случае каждое число уменьшить на 20%.
Даны два целых числа неравных друг другу. Большее из них увеличить на 50%, меньшее заменить суммой заданных чисел.
Даны числа a, b, c, d. Найти min { max (a, b), max (c, d)}.
Даны два целых числа a, b. Найти вещественные корни уравнения ax2+b=0 или вывести сообщение об их отсутствии.
Даны числа a, b, c, d. Если a>b>c>d, то каждое число заменить наибольшим из всех чисел, если a<b<c<d, то каждое число заменить его квадратом, в противном случае оставить числа без изменения.
Даны числа a, b, c. Если все они равны нулю, вывести об этом сообщение, если среди чисел нет нулей, найти и вывести их произведение, в противном случае нули заменить суммой двух других чисел.
Даны числа a, b, c. Вычислить max (a+b+c, abc)*min (a, b, c)
Определить, где находится точка с координатами х, у: на окружности радиуса r, внутри круга радиуса r или вне его.
Даны числа a, b, c, d. Если ни одно из чисел a, b, c не равно d, то найти max(d-a, d-b, d-c).
Даны три целых числа a, b, c. Найти вещественные корни уравнения ax2+bx+c=0 или вывести сообщение об их отсутствии.
Определить правильность даты, заданной тремя целыми числами (день, месяц, год).
Даны три числа. Найти сумму минимального и максимального среди них.
Даны числа a, b, c, d. Найти max {min(a, b), min(c, d)}.
Даны три целых положительных числа. Если все они нечетные, каждое число увеличить в два раза, если хотя бы одно из них нечетное, оставить числа без изменения, если нечетных чисел нет, увеличить каждое число на 50% .
Даны два целых числа неравных друг другу. Большее из них уменьшить на 30%, меньшее заменить произведением заданных чисел.
Даны три числа. Если все они отрицательные, каждое число увеличить на 40%, если хотя бы одно из них отрицательное, уменьшить каждое число в два раза, если отрицательных чисел нет, оставить их без изменения.
Даны три числа a, b, c. Если все они положительны, вычислить площадь треугольника со сторонами a, b и c. Если среди них есть хотя бы одно отрицательное число, найти сумму чисел.
Даны числа a, b, c. Вычислить min(a+b+c, abc)* max (a, b, c)
Даны числа a, b, c, d. Если a<b<c<d, то каждое число заменить наименьшим, если a>b>c>d, то каждое число уменьшить на 40%, в противном случае оставить числа без изменения.
Даны числа a, b. Если a<0, то найти max (a, b), если a=0, то найти min (a, b), в противном случае каждое число увеличить на 50%.
Даны числа a, b, c. Если среди них нет положительных чисел, вывести об этом сообщение, если все они положительные, найти и вывести их сумму, в противном случае положительные числа уменьшить на 20%.
Даны числа a, b, c, d. Если ни одно из чисел a, b, c не равно d, то найти min(a-d, b-d, c-d).
Даны числа a, b, c. Найти произведение минимального и максимального из них.

 

2.4.4.2. Пример выполнения задания 4 для варианта № 30

Даны числа a, b, c. Найти произведение минимального и максимального из них.

2.4.3.3. Текст программы задания 4

/* Лабораторная работа № 6 */

/* Разветвляющийся вычислительный процесс */

/* Задание № 4 */

/* Вложеный условный оператор if */

/* Вариант № 30 */

/*Автор: Иванова А.А. студентка гр. ИНФО-101*/

#include<iostream.h>

#include<conio.h>

int main()

{

float a, b, c, min, max, proizv;

cout << "Введите через пробел три числа a, b, c и нажмите Enter ";

cin >> a >> b >> c;

max = c;

if (a>b && a > c) max=a;

else {if(a<= b && b > c) max =b;}

min = c;

if (a<b && a < c) min=a;

else {if(a>= b && b < c) min =b;}

proizv = max*min;

cout << "Были введены: a = " << a << " b = " << b << " c = " << c << endl;

cout << "Результаты расчетов: max = " << max << " min = " << min << " proizv = " << proizv << endl;

getch();

return(0);

}





©2015 www.megapredmet.ru Все права принадлежат авторам размещенных материалов.