Построение концептуальной модели и её формализация 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Построение концептуальной модели и её формализация



Введение

 

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

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

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

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

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

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

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

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

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

Таким образом, моделирование превращается в один из универсальных методов познания в сочетании с ЭВМ.


Постановка задачи

 

Распределенный банк данных системы сбора информации организован на базе ЭВМ, соединенных дуплексным каналом связи. Поступающий запрос обрабатывается на первой ЭВМ и с вероятностью 50% необходимая информация обнаруживается на месте. В противном случае необходима посылка запроса во вторую ЭВМ. Запросы поступают через 10±3 с, первичная обработка запроса занимает 2с, выдача ответа требует 18±2 с, передача по каналу связи занимает 3с. Временные характеристики второй ЭВМ аналогичны первой.

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

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

Всю работу можно условно разделить на три этапа:

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

· На втором этапе предполагается провести выбор вычислительных средств для моделирования СМО, выполнить непосредственно машинную реализацию модели системы, протестировать программу.

· На третьем, заключительном, этапе предполагается зафиксировать результаты моделирования СМО при нескольких прогонах программы, проанализировать их, представить в удобной для чтения форме, интерпретировать их и сделать соответствующие выводы.

 


Построение логической схемы

 

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

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

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


Рисунок -2.3.1. Логическая обобщенная схема

 

Анализ задачи моделирования

Программирование модели

 

Программирование в среде Delphi, можно разделить на два этапа: создание интерфейса и написание программного кода.

Основная работа программы осуществляется следующим образом:

Источник генерирует заявки через дискретные промежутки времени, в которые производится смена состояний элементов системы. Исходя из постановки задачи неизменные данные являются продолжительность моделирования (400 сек), время поступления запросов (10±3сек), первичная обработка запроса (2 сек), выдача ответа (18±2 сек), и изменяемые – ёмкость накопителя № 1 и № 2, манипулируя которыми достигается оптимальность системы. После ввода ёмкости накопителя № 1 и № 2 следует нажать на кнопку «Выполнить» для начала работы программы. После чего в нижнем окне будут выведены все найденные параметры системы и столбцовая диаграмма, отражающая количество сигналов в накопителе №1 в единицу времени, в которую в каждую единицу времени добавляется объём накопителя № 1 (рис 3.2.1).


Рисунок 3.2.1- Внешний вид программы.

 

Листинг программы представлен в приложении А.


Планирование машинного эксперимента

 

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

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

Определим количество прогонов необходимых для получения достоверной информации по формуле (1):

 

 (1)         

 

где: p - частота = n1/n;

n1 - число исходов в n – экспериментах;

Q - доверительная вероятность;

Ф-1 -обратная функция Лапласа.

Таблица 4.1.1- Обратная функция Лапласа.

Q 0.9 0.95 0.98 0.99
-1 *Q/2)2 2.7 3.84 5.7 6.61

 

Исходя из задания Q=0.95, Е=0.05 следовательно (Ф-1 *Q/2)2 = 3,84

Проведем 10 экспериментов на модели (n=10) и проследим за значением расчетной величины – вероятностью отказа. Т.к. по при длине очереди накопителя № 1 равной 5, сбойных сигналов нет, то, следовательно, вероятность отказа будет равна 0, что делает невозможным расчет количества прогонов. Поэтому будем вести расчет при длине очереди накопителя № 1 и № 2 равной 1, только при этом значении наблюдается появление сбойных сигналов.

 

Таблица 4.1.2 – Экспериментальные данные.

№ эксп Кол.-во сбоев № эксп Кол-во сбоев
1 8 6 10
2 10 7 8
3 10 8 7
4 6 9 10
5 9 10 9

 

n=8+10+10+6+9+10+8+7+10+9=87;

p1=8/87=0,091954; p6=10/87=0,114943;

р2=10/87=0,114943; р7=8/87=0,091954;

р3=10/87=0,114943; р8=7/87=0,08046;

р4=6/87=0,068966; р9=10/87=0,114943;

р5=9/87=0,103448; р10=9/87=0,103448;

 

Выбираем самую худшую (большую) вероятность - 0,114943 и подставляем её в формулу (1):


 

Следовательно, чтобы точность экспериментов составляла 0.95 необходимо произвести 156 эксперимента. Статистические данные и результаты всех прогонов представлены в приложении Б.

 

Приложение А

(обязательное)

 

Листинг программы

 

unit Unit1;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, Spin, ExtCtrls, TeEngine, Series, TeeProcs, Chart;

type

 TForm1 = class(TForm)

 Button1: TButton;

 ListBox1: TListBox;

 GroupBox1: TGroupBox;

 GroupBox2: TGroupBox;

 Image1: TImage;

 Label1: TLabel;

 Label3: TLabel;

 GroupBox4: TGroupBox;

 Label6: TLabel;

 seNak: TSpinEdit;

 Label7: TLabel;

 seNak2: TSpinEdit;

 Label2: TLabel;

 Label4: TLabel;

 Chart1: TChart;

 Series1: TBarSeries;

 procedure Button1Click(Sender: TObject);

 procedure FormCreate(Sender: TObject);

 private

 { Private declarations }

 public

 { Public declarations }

 procedure Kanal;

 procedure Istok;

 procedure Kanal_2;

 end;

var

 Form1: TForm1;

 ZKan,zkan_2:boolean;

 t1,t2,n,t,tIstok,InSig,VNak,Sboy,OutSig,tkan,SZKan,SZNak,sekanal_2,sboy_2,outsig_2,SZNak_2,szkan_2,tkan_2,vnak_2:integer;

 in_k1:byte;

{ var nak_2:byte;{накопитель для канала № 2}

{colnak1-кол-во сигналов, пройденных через накопитель 1}

{in_k1-true-сигнал обслуж-ся каналом № 1, false-сигнал обслуж-ся каналом № 2}

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var j:integer;

begin

 VNak:=0; {Накопитель}

 Sboy:=0;

 sboy_2:=0;

 InSig:=0;{подсчет посланных сигналов}

 OutSig:=0;{подсчет количества сигналов, покинувших систему обслуженными}

 vnak_2:=0;

 outsig_2:=0;

 SZNak:=0;{подсчет средней занятости накопителя в сигналах}

 SZNak_2:=0;{подсчет средней занятости накопителя в сигналах}

 SZKan:=0;{подсчет количества единиц времени, которое канал находится в состоянии занятости}

 szkan_2:=0;

 ZKan:=False; {состояние канала}

 ZKan_2:=false;

 in_k1:=0;

 ListBox1.Items.Clear;

 T:=0;

 tIstok:=T+7+random(7);

 Series1.Clear;

 Repeat

 Istok;

 Kanal;

 kanal_2;

 SZNak:=SZNak+VNak;

 SZNak_2:=SZNak_2+VNak_2;

 inc(t);

 Series1.Add(vnak); {добавление данных в диаграмму о накопителе №1}

 Until T>400;

 with ListBox1.Items do

 begin { zkan_2:boolean;sekanal_2,sboy_2,outsig_2,szkan_2,tkan_2:integer;}

{ Add('Должно поступить сигналов: '+IntToStr(400 div 10));}

 Add('Поступло сигналов: '+IntToStr(InSig));

 Add('Обработано сигналов каналом № 1: '+IntToStr(OutSig));

 Add('Обработано сигналов каналом № 2: '+IntToStr(OutSig_2));

 Add('Сбойных сигналов: '+IntToStr(Sboy+sboy_2));

 if ZKan then Inc(VNak);

 Add('Учтенных сигналов: '+IntToStr(VNak+vnak_2+Sboy+sboy_2+OutSig+OutSig_2));

 if ZKan_2 then Inc(VNak);

 if t-t1<3 then Inc(VNak);

 if t-t2<3 then Inc(VNak);

 Add('Осталось в системе сигналов: '+IntToStr(VNak));

 Add('Средняя занятость накопителя № 1 (в сиг.): ' + FloatToStrF(SZNak/400,ffNumber,8,2));

 Add('Средняя занятость накопителя № 1 (в %): ' + IntToStr(Round(SZNak/400/seNak.Value*100)));

 Add('Средняя занятость накопителя № 2 (в сиг.): ' + FloatToStrF(SZNak_2/400,ffNumber,8,2));

 Add('Средняя занятость накопителя № 2 (в %): ' + IntToStr(Round(SZNak_2/400/seNak2.Value*100)));

 Add('Средняя занятость канала № 1 (в %): '+ IntToStr(Round(SZKan/400*100)));

 Add('Средняя занятость канала № 2 (в %): '+ IntToStr(Round(SZKan_2/400*100)));

 end;

 end;

procedure TForm1.Kanal;

begin

 if ZKan

 then

 begin

 Dec(tKan);

 Inc(SZKan);{подсчет количества единиц времени, которое канал находится в состоянии занятости}

 if tKan=0 {время, оставшееся до конца обработки сигнала}

 then

 begin

 ZKan:=False;

 if in_k1=1 then begin

 Inc(OutSig){подсчет количества сигналов, покинувших канал № 1 обслуженными};

 t1:=t;

 end

 else begin

 if vnak_2<seNak2.Value then inc(vnak_2)

 else inc(sboy_2);

 end;

 end;

 end;

 if not ZKan and (VNak>0)

 then

 begin

 Dec(VNak);

 if in_k1=1 then in_k1:=0

 else in_k1:=1;

 ZKan:=True;

 if in_k1=1 then tKan:=2+16+random(5){18+/-2:количество единиц времени, отводимое на обработку одного сигнала}

 else tKan:=2;

 end;

end;

procedure TForm1.Istok;

begin

{ if T mod N=0

 then

 tIstok:=T+7+random(7); {источник}

 if T=tIstok

 then

 begin

 tIstok:=T+7+random(7); {источник}

 Inc(InSig); {подсчет посланных сигналов}

 if VNak<seNak.Value{ёмкость накопителя}

 then begin

 Inc(VNak);

 end

 else Inc(Sboy);

 end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

randomize;

end;

procedure TForm1.Kanal_2;

begin

 if ZKan_2

 then

 begin

 Dec(tKan_2);

 Inc(SZKan_2);{подсчет количества единиц времени, которое канал находится в состоянии занятости}

 if tKan_2=0 {время, оставшееся до конца обработки сигнала}

 then

 begin

 ZKan_2:=False;

 Inc(OutSig_2);{подсчет количества сигналов, покинувших систему обслуженными}

 t2:=t;

 end;

 end;

 if not ZKan_2 and (VNak_2>0)

 then

 begin

 Dec(VNak_2);

 ZKan_2:=True;

 tKan_2:=16+random(5);{количество единиц времени, отводимое на обработку одного сигнала}

 end;

end;

end.

 


Приложение Б

(обязательное)

 

Статистические данные

 

№ эксп.

Поступило заявок, шт

Необслужено заявок, шт

Вероятность отказа, %

Загрузка накопителя №1, %

1

38

0

0

46

2

39

1

0,004219

57

3

41

3

0,012658

57

4

40

2

0,008439

59

5

40

3

0,012658

50

6

39

2

0,008439

60

7

40

3

0,012658

58

8

38

1

0,004219

40

9

41

3

0,012658

66

10

42

4

0,016878

62

11

40

2

0,008439

52

12

40

3

0,012658

60

13

38

0

0

39

14

41

3

0,012658

58

15

40

2

0,008439

46

16

40

2

0,008439

59

17

40

2

0,008439

68

18

39

1

0,004219

50

19

40

2

0,008439

53

20

39

1

0,004219

32

21

39

2

0,008439

48

22

39

1

0,004219

60

23

37

0

0

26

24

40

0

0

42

25

38

0

0

50

26

38

1

0,004219

52

27

40

2

0,008439

64

28

39

1

0,004219

32

29

40

2

0,008439

59

30

40

3

0,012658

50

31

39

2

0,008439

66

32

38

1

0,004219

50

33

39

3

0,012658

45

34

40

1

0,004219

56

35

37

2

0,008439

65

36

38

3

0,012658

50

37

38

0

0

54

38

37

0

0

53

39

39

1

0,004219

45

40

39

2

0,008439

48

41

39

0

0

48

42

40

1

0,004219

49

43

37

2

0,008439

50

44

38

0

0

59

45

38

1

0,004219

38

46

37

2

0,008439

39

47

40

0

0

40

48

39

0

0

50

49

38

0

0

56

50

40

1

0,004219

53

51

37

2

0,008439

55

52

37

0

0

49

53

39

1

0,004219

66

54

38

2

0,008439

33

55

39

0

0

56

56

39

3

0,012658

65

57

40

0

0

45

58

41

2

0,008439

58

59

41

2

0,008439

56

60

37

2

0,008439

59

61

38

1

0,004219

48

62

38

3

0,012658

59

63

38

3

0,012658

67

64

40

3

0,012658

56

65

39

2

0,008439

65

66

39

0

0

48

67

40

1

0,004219

68

68

41

2

0,008439

59

69

37

3

0,012658

48

70

37

0

0

56

71

38

2

0,008439

45

72

38

3

0,012658

56

73

39

0

0

64

74

40

1

0,004219

56

75

39

2

0,008439

45

76

37

3

0,012658

36

77

38

0

0

42

78

40

1

0,004219

46

79

37

2

0,008439

43

80

40

2

0,008439

48

81

41

2

0,008439

59

82

41

1

0,004219

56

83

37

0

0

55

84

38

3

0,012658

54

85

38

2

0,008439

53

86

39

0

0

52

87

39

3

0,012658

57

88

39

2

0,008439

55

89

40

1

0,004219

42

90

41

0

0

53

91

41

2

0,008439

61

92

38

3

0,012658

56

93

38

2

0,008439

65

94

39

0

0

49

95

37

1

0,004219

65

96

38

2

0,008439

67

97

38

3

0,012658

62

98

39

0

0

53

99

40

1

0,004219

54

100

40

2

0,008439

48

101

40

3

0,012658

50

102

38

3

0,012658

60

103

39

1

0,004219

45

104

39

2

0,008439

46

105

37

0

0

56

106

37

3

0,012658

52

107

40

2

0,008439

38

108

40

1

0,004219

46

109

37

3

0,012658

47

110

38

3

0,012658

42

111

39

2

0,008439

56

112

39

1

0,004219

51

113

40

1

0,004219

60

114

40

0

0

65

115

41

1

0,004219

53

116

41

1

0,004219

57

117

41

2

0,008439

42

118

39

0

0

46

119

38

0

0

56

120

37

0

0

51

121

37

3

0,012658

53

122

39

2

0,008439

59

123

40

1

0,004219

40

124

40

3

0,012658

45

125

41

0

0

47

126

41

1

0,004219

48

127

40

2

0,008439

50

128

38

0

0

56

129

38

1

0,004219

60

130

39

2

0,008439

64

131

38

2

0,008439

49

132

37

1

0,004219

50

133

40

0

0

40

134

37

3

0,012658

48

135

39

3

0,012658

47

136

38

2

0,008439

49

137

40

3

0,012658

43

138

41

3

0,012658

40

139

39

3

0,012658

42

140

38

2

0,008439

41

141

37

1

0,004219

46

142

39

0

0

49

143

39

0

0

56

144

40

0

0

57

145

40

1

0,004219

59

146

41

2

0,008439

58

147

39

0

0

57

148

39

1

0,004219

50

149

38

2

0,008439

50

150

38

2

0,008439

60

151

38

1

0,004219

64

152

37

2

0,008439

67

153

38

1

0,004219

42

154

38

3

0,012658

53

155

39

2

0,008439

62

156

39

1

0,004219

48

 

Введение

 

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

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

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

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

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

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

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

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

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

Таким образом, моделирование превращается в один из универсальных методов познания в сочетании с ЭВМ.


Постановка задачи

 

Распределенный банк данных системы сбора информации организован на базе ЭВМ, соединенных дуплексным каналом связи. Поступающий запрос обрабатывается на первой ЭВМ и с вероятностью 50% необходимая информация обнаруживается на месте. В противном случае необходима посылка запроса во вторую ЭВМ. Запросы поступают через 10±3 с, первичная обработка запроса занимает 2с, выдача ответа требует 18±2 с, передача по каналу связи занимает 3с. Временные характеристики второй ЭВМ аналогичны первой.

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

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

Всю работу можно условно разделить на три этапа:

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

· На втором этапе предполагается провести выбор вычислительных средств для моделирования СМО, выполнить непосредственно машинную реализацию модели системы, протестировать программу.

· На третьем, заключительном, этапе предполагается зафиксировать результаты моделирования СМО при нескольких прогонах программы, проанализировать их, представить в удобной для чтения форме, интерпретировать их и сделать соответствующие выводы.

 


Построение концептуальной модели и её формализация



Поделиться:


Последнее изменение этой страницы: 2020-03-26; просмотров: 184; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.213.209 (0.79 с.)