Сетевой график
Сетевая задача
Ранний срок наступления события: поздний срок наступления события, резервы времени событий
Решить онлайн
Примеры решений Теория игр Задача о назначениях Поток сети Сетевой график онлайн Задача коммивояжера Системы МО Транспортная задача Симплекс-метод Двойственная задача

Модели сетевого планирования и управления

Поиск более эффективных способов планирования сложных процессов привели к необходимости использования моделей сетевого планирования и управления (СПУ). СПУ основано на моделировании процесса с помощью сетевого графика (сетевой модели). Сетевая модель и её основные элементы.
Сетевая модель представляет план выполнения некоторого комплекса работ.
Главными элементами сетевого графика является события и работа.
События – это завершение, какого либо процесса, отражающий отдельный этап выполнения проекта. На сетевом графике событие изображается кружком. Временные параметры сетевых графиков, коэффициенты напряжённости работы, анализ и оптимизация сетевого графика
ЗАДАЧА
Пусть для некоторого комплекса работ установлены оценки для каждой работы на уровне нормативных продолжительностей и срочного режима, а также даны стоимости. Информация представлена в таблице.
Таблица 1.

Нормативный режим

Срочный режим
Продолжительность, дни Стоимость, м/р Продолжительность, дни Стоимость, м/р
(1,2) 3 6 2 11
(1,3) 5 8 3 12
(1,4) 4 7 8 9
(2,5) 10 25 8 30
(3,5) 8 20 6 24
(3,6) 15 26 12 30
(4,6) 13 24 10 30
(5,7) 3 15 6 25
(6,7) 4 10 3 15

Построить график данного комплекса работ.
Требуется рассчитать:

Решение:
Рассчитаем временные характеристики для нормативного режима.
К временным характеристикам относятся ранние и поздние сроки наступления события. Ранний срок наступления события рассчитывается по формуле:
tp(j) = max (( t p ( i) +t ( ij )), где
tp(j) – ранний срок наступления предшествующего I события.
t(ij) - работа.
Для расчёта tp(j) для данного комплекса будем считать, что ранний срок наступления 1-го события равно tp(1)=0, тогда для последующих событий будем иметь:
tp(1)= maх (tp(1)=0)
tp(2)= maх (tp(1)+ tp(1,2)) =0+3=3
tp(3)= maх ((tp(1)+ tp(1,3))=0+5=5
tp(4)= maх (tp(1)+ tp(1,4))=0+4=4
tp(5)= maх ((tp(4)+ tp(4,5)) =(2+10);(5+9)=14
tp(6)= maх (tp(4)+ tp(4,6); tp(3)+ tp(3,6))=(4+13):(5+15)=20
tp(7)= maх (tp(5)+ tp(5,7); tp(6)+ tp(6,7)=(14+8)(20+4)=24.                                                           

Очевидно, завершающее 7-е событие может наступить через 24 дня от начала выполнения всего комплекса работ. Поздний срок наступления события определяется по формуле:
tп(i)=min (tп(j)-t(ij))

Для расчёта t п( i) для комплекса будем считать, что самый поздний срок наступления 7-го события равен 24 дня, т.е. раннему сроку наступления 7-го события, тогда будем иметь:
tп(7)=min(24) =24
tп(6)=min(tп(7) - t(5,7)=(24-4)=20
tп(5)=min(24-4)=20
tп(4)=min(20-13)=7
tп(3)=min((16-9);(20-15) =5
tп(2)= min (16-10)=6
tп(1)= min (6-3; 5-5;7-4)=0
Полученный результат говорит о том, что расчёты произведены правильно.
Резервы времени определяем как разность между поздними и ранними сроками по формуле:
Р(i)=tp(j) - t п (i)
Р(1) =0-0=0
Р(2)=6-3=3
Р(3)=5-5=0
Р(4)=7-4=3
Р(5)=16-12=2
Р(6)=20-20=0
Р(7)=24-24=0

Полученные резервы времени показывают на какое время можно задержать наступление того или иного события, не вызывая опасности срыва выполнения комплекса работ. Те события, которые не имеют резервов времени, находятся на критическом пути.
Критический путь это наиболее продолжительный путь сетевого графика, который ведёт к завершению комплекса работ.
Находим пути и их длительности для данного комплекса работ:
1) 1-2-5-7  его стоимость: 3+10+8=21.
2) 1-3-5-7  его стоимость 5+9+8=22
3) 1-3-6-7.  его стоимость: 5+15+4=24
4) 1-4-6-7.   его стоимость: 4+13+4=21.
Критический путь: (1,3)-(3,6)-(6,7)
Резервы времени для работ, находящихся на критическом пути равны нулю.
(1,3)=0;   (3,6)=0;    (6,7)=0,
Рассчитаем временные характеристики сетевого графика при срочном режиме работ. Ранний срок наступления события рассчитывается по формуле:
tp(j) =maх((tp(i) +t(ij)), где
tp(j) –ранний срок наступления предшествующего I события.
t(ij )- работа.

Для расчёта tp(j) для данного комплекса будем считать, что ранний срок наступления 1-го события равно tp(1)=0, тогда для последующих событий будем иметь:
tp(1)= maх (tp(1)=0
tp(2)= maх (tp(1)+ tp(1,2)) =0+2=2
tp(3)= maх ((tp(1)+ tp(1,3))=0+3=3
tp(4)= maх (tp(1)+ tp(1,4))=0+8=8
tp(5)= maх ((tp(4)+ tp(4,5)) =(2+8);(3+6)=10
tp(6)= maх (tp(2)+ tp(2,5); tp(3)+ t p(4,6))=(3+12):(8+10)=18
tp(7)= maх (tp(5)+ tp(5,7); tp(6)+ t p(6,7)=(15+3);(18+3)=21.                                                           
Очевидно, завершающее 7-е событие может наступить через 21 день от начала выполнения всего комплекса работ.
Поздний срок наступления события определяется по формуле:
tп(7)=min(22) =24
tп(6)=min( t п (7)- t(5,7)=(21-3)=18
tп(5)=min(21-6)=15
tп(4)=min(18-10)=8
tп(3)=min((16-6);(19-15) =4
tп(2)= min (15-8)=7
tп(1)= min (15-2; 20-8;8-8)=0

Полученный результат говорит о том, что расчёты произведены правильно.
Резервы времени определяем как разность между поздними и ранними сроками по формуле:
Р(i) =tp(j) - tп(i)
Р(1) =0-0 =0
Р(2)=7-2=5
Р(3)=8-8=14
Р(4)=8-8 =0
Р(5)=12-8=4
Р(6)=18-18=0
Р(7)=22-22= 0
Найдём все пути: и их длительности.
1) 1-2-5-7 его стоимость: 3+8+6=16.
2) 1-3-5-7 его стоимость 3+6+6=15
3) 1-3-6-7. его стоимость:3+12+3=18
4) 1-4-6-7. его стоимость: 8+10+3=21.
Очевидно, что на критическом пути резервов времени нет.
Критический путь (1-3-6-7). Его длительность равна 21.

Перейти к онлайн решению

Пример №2. Задание.

  1. Построить сетевую модель с указанием ранних и поздних сроков наступления событий. Выделить критический путь.
  2. Рассчитать параметры сетевой модели и записать их в таблицу.
  3. Построить график Ганта.
Решение находим с помощью калькулятора. Все вычисления будем заносить в таблицу.
Перечень работ и их продолжительность перенесем во вторую и третью графы. При этом работы следует записывать в графу 2 последовательно: сначала начиная с номера , затем с номера 1 и т.д.
Во второй графе поставим число, характеризующее количество непосредственно предшествующих работ (КПР) тому событию, с которого начинается рассматриваемая работа.
Так, для работы (8,12) в графу 1 поставим число 2, т.к. на номер 8 оканчиваются 2 работы: (2,8),(4,8).
Далее заполняем графы 4 и 5. Для работ, имеющих цифру 0 в графе 2, в графу 4 также заносятся нули, а их значения в графе 5 получаются в результате суммирования граф 3 и 4.
Для заполнения следующих строк графы 4, т.е. строк начиная с номера 2, просматриваются заполненные строки графы 5, содержащие работы, которые оканчиваются на этот номер, и максимальное значение переносится в графу 4 обрабатываемых строк.
Этот процесс повторяется до тех пор, пока не будет заполнена последняя строка таблицы.
Заполнение графы 4.
Рассмотрим события: (0,1): 3;. Заносим значение 3 в графу.
Рассмотрим события: (0,2): 20;. Заносим значение 20 в графу.
Рассмотрим события: (1,3): 7;. Заносим значение 7 в графу.
Рассмотрим события: (1,4): 12;. Заносим значение 12 в графу.
Рассмотрим события: (2,5): 30;. Заносим значение 30 в графу.
Рассмотрим события: (3,6): 19;. Заносим значение 19 в графу.
Рассмотрим события: (3,7): 14;. Заносим значение 14 в графу.
Рассмотрим события: (2,8): 24;; (4,8): 16;. Максимальное значение: 24. Заносим его в графу.
Рассмотрим события: (2,9): 29;; (4,9): 21;. Максимальное значение: 29. Заносим его в графу.
Рассмотрим события: (6,10): 25;. Заносим значение 25 в графу.
Рассмотрим события: (6,11): 34;. Заносим значение 34 в графу.
Рассмотрим события: (7,12): 17;; (8,12): 27;. Максимальное значение: 27. Заносим его в графу.
Рассмотрим события: (7,13): 16;; (8,13): 26;. Максимальное значение: 26. Заносим его в графу.
Рассмотрим события: (5,14): 31;; (9,14): 30;. Максимальное значение: 31. Заносим его в графу.
Рассмотрим события: (11,15): 43;; (12,15): 36;; (14,15): 31;. Максимальное значение: 43. Заносим его в графу.
Рассмотрим события: (10,16): 32;; (15,16): 50;. Максимальное значение: 50. Заносим его в графу.
Рассмотрим события: (13,17): 30;; (16,17): 50;. Максимальное значение: 50. Заносим его в графу.
Графы 6 и 7 заполняются обратным ходом, т.е. снизу вверх. Для этого просматриваются строки, оканчивающиеся на номер последнего события, и из графы 5 выбирается максимальная величина, которая записывается в графу 7 по всем строчкам, оканчивающимся на номер последнего события (т.к. tр(i)= tп(i)).
Процесс повторяется до тех пор, пока не будут заполнены все строчки по графам 6 и 7.
Заполнение графы 7.
Рассмотрим события:
(5,18): 37
(7,18): 21
(8,18): 31
(9,18): 36
(17,18): 50
Максимальное значение: 50. Записываем его в графу 7 по всем строчкам, оканчивающимся на номер последнего события 18.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 17. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 17.
(17,18): 50 - 0 = 50;
Данное значение переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 50.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 16. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 16.
(16,17): 50 - 0 = 50;
Данное значение переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 50.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 15. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 15.
(15,16): 50 - 7 = 43;
Данное значение переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 43.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 17. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 17.
(17,18): 50 - 0 = 50;
Данное значение переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 50.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 15. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 15.
(15,16): 50 - 7 = 43;
Данное значение переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 43.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 15. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 15.
(15,16): 50 - 7 = 43;
Данное значение переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 43.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 16. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 16.
(16,17): 50 - 0 = 50;
Данное значение переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 50.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 14. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 14.
(14,15): 43 - 0 = 43;
Данное значение переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 43.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 13. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 13.
(13,17): 50 - 4 = 46;
Данное значение переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 46.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 12. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 12.
(12,15): 43 - 9 = 34;
Данное значение переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 34.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 13. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 13.
(13,17): 50 - 4 = 46;
Данное значение переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 46.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 12. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 12.
(12,15): 43 - 9 = 34;
Данное значение переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 34.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 11. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 11.
(11,15): 43 - 9 = 34;
Данное значение переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 34.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 10. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 10.
(10,16): 50 - 7 = 43;
Данное значение переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 43.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 14. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 14.
(14,15): 43 - 0 = 43;
Данное значение переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 43.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 9. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 9.
(9,14): 43 - 1 = 42;
(9,18): 50 - 7 = 43;
В графу 6 среди них выбирается минимальная величина, которая переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 42.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 8. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 8.
(8,12): 34 - 3 = 31;
(8,13): 46 - 2 = 44;
(8,18): 50 - 7 = 43;
В графу 6 среди них выбирается минимальная величина, которая переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 31.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 7. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 7.
(7,12): 34 - 3 = 31;
(7,13): 46 - 2 = 44;
(7,18): 50 - 7 = 43;
В графу 6 среди них выбирается минимальная величина, которая переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 31.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 6. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 6.
(6,10): 43 - 6 = 37;
(6,11): 34 - 15 = 19;
В графу 6 среди них выбирается минимальная величина, которая переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 19.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 9. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 9.
(9,14): 43 - 1 = 42;
(9,18): 50 - 7 = 43;
В графу 6 среди них выбирается минимальная величина, которая переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 42.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 8. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 8.
(8,12): 34 - 3 = 31;
(8,13): 46 - 2 = 44;
(8,18): 50 - 7 = 43;
В графу 6 среди них выбирается минимальная величина, которая переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 31.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 5. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 5.
(5,14): 43 - 1 = 42;
(5,18): 50 - 7 = 43;
В графу 6 среди них выбирается минимальная величина, которая переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 42.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 4. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 4.
(4,8): 31 - 4 = 27;
(4,9): 42 - 9 = 33;
В графу 6 среди них выбирается минимальная величина, которая переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 27.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 3. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 3.
(3,6): 19 - 12 = 7;
(3,7): 31 - 7 = 24;
В графу 6 среди них выбирается минимальная величина, которая переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 7.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 2. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 2.
(2,5): 42 - 10 = 32;
(2,8): 31 - 4 = 27;
(2,9): 42 - 9 = 33;
В графу 6 среди них выбирается минимальная величина, которая переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 27.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 1. Для определения графы 7 этих строк просматриваются все строчки, начинающиеся с номера 1.
(1,3): 7 - 4 = 3;
(1,4): 27 - 9 = 18;
В графу 6 среди них выбирается минимальная величина, которая переносится в графу 7 по обрабатываемым строчкам.. В нашем случае это значение: 3.
Содержимое графы 8 равно разности граф 6 и 4 или граф 7 и 5.
Работа (i,j)Количество предшествующих работПродолжительность tijРанние сроки: начало tijР.Н.Ранние сроки: окончание tijР.О.Поздние сроки: начало tijП.Н.Поздние сроки:окончание tijП.О.Резервы времени: полный tijПРезервы времени: свободный tijС.В.Резервы времени: событий Rj
(0,1)030303000
(0,2)020020727707
(1,3)143737000
(1,4)19312182715015
(2,5)1102030324212012
(2,8)1420242731707
(2,9)192029334213013
(3,6)112719719000
(3,7)17714243117017
(4,8)14121627311587
(4,9)191221334221813
(5,14)113031424312012
(5,18)173037435013130
(6,10)161925374318018
(6,11)11519341934000
(7,12)131417313417107
(7,13)1214164446301020
(7,18)171421435029290
(8,12)2324273134707
(8,13)222426444620020
(8,18)272431435019190
(9,14)212930424313112
(9,18)272936435014140
(10,16)172532435018180
(11,15)1934433443000
(12,15)2927363443770
(13,17)242630465020200
(14,15)203131434312120
(15,16)3743504350000
(16,17)2050505050000
(17,18)2050505050000

Примечание.
а) графы 1 и 3 заполняются на основе исходных данных.
б) в графе 2 записывается количество предшествующих работ по сетевому графику или определяется из графы 1 по числу работ, имеющих второй цифрой в коде ту, с которой начинается данная работа.
г) в графе 4 раннее начало работ, выходящих из исходного события, а раннее окончание этих работ равно их продолжительности (гр. 5). Раннее начало последующих работ определяется путем выбора максимального из сроков раннего окончания предшествующих работ. Количество сравниваемых сроков равно количеству предшествующих работ графы 2. Раннее начало последующих работ можно определить после того, как найдено раннее окончание предшествующих. В свою очередь раннее окончание каждой работы находится как сумма величин раннего начала и продолжительности данной работы;
г) продолжительность критического пути определяется после заполнения граф 4 и 5 как максимальная величина из сроков раннего окончания работ, которые ведут к завершающему событию 9;
д) найденная величина критического пути ТKP дням заносится в графу 7 для всех работ, ведущих к завершающему событию. Затем заполнение ведется снизу вверх. Находятся все работы, следующие за рассматриваемой, и определяются разности между поздним окончанием этих работ и их продолжительностями. Минимальная из величин заносится в графу 7;
е) в графе 6 позднее начало работы определяется как разность позднего окончания этих работ и их продолжительности (из значений графы 7 вычитаются данные графы 3);
ж) в графе 8 полный резерв времени работы определяется разностью между значениями граф 7 и 5. Если он равен нулю, то работа является критической;
з) в графе 10 резерв времени событий j определяется как разность позднего окончания работы, заканчивающегося событием j графы 7, и ранним началом работы, начинающимся событием j;
и) значение свободного резерва времени работы определяется как разность значений графы 10 и данных графы 8 и указывает на расположение резервов, необходимых для оптимизации.
Критический путь: (0,1)(1,3)(3,6)(6,11)(11,15)(15,16)(16,17)(17,18)
Продолжительность критического пути: 50

Перейти к онлайн решению

Сетевое планирование

Прогресс производства сложной продукции разбивается на отдельные этапы, зашифрованные номерами 1, 2,..., 10. 1 – начальный этап производства продукции, 10 – завершающий. Переход от i-го этапа к j-му этапу назовем операцией. Возможны выполнения операций (i→j) и их продолжительности tij задаются таблицей.
N п/пшифр операцииtij 1. Составьте и упорядочите по слоям сетевой график производства работ. Номера этапов необходимо обвести кружками, а операции i → j обозначить стрелками, проставляя над ними продолжительность tijоперации.
i→j tij
1 1→2 m
2 1→3 4
3 1→4 r
4 2→3 3
5 2→6 5
6 4→3 2
7 4→6 6
8 3→5 3 2. Считая, что начало работы происходит во время t1=0, определите время tjокончания каждого j-го этапа и проставьте его над соответствующим кружком.
9 3→7 n+1
10 5→9 m+1
11 6→7 4
12 6→8 3
13 7→8 7
14 7→9 m
15 7→10 5
16 8→10 4
17 9→10 n

3. Найдите критическое время завершения процесса работ Ткр и выделите стрелки, лежащие на критическом пути.
4. Для каждой некритической операции i→j определите резервы свободного времени pcij и проставьте их над стрелками рядом с tij в скобках.
5. Решите задачу табличным методом. Номера этапов, лежащие на критическом пути подчеркните. (В табличном методе кроме резервов свободного времени pcij необходимо также найти полные резервы времени pnj для каждого этапа.)
Учебно-методический
  • курсы переподготовки и повышения квалификации;
  • вебинары;
  • сертификаты на публикацию методического пособия
Подробнее
Яндекс 360 для бизнеса
  • Бесконечный почтовый ящик;
  • Объем облачного хранилища от 100 Гб;
  • Загрузка больших файлов — от 1 ГБ
  • Поддержка файлов MS Office
  • Трансляции и их планирование в календаре
Подробнее
Болит горло
Как быстро вылечить ангину, гланды, тонзиллит
Природные средства, проверенные временем и врачами
Подробнее
Курсовые на заказ