Вероятностное моделирование процесса изменения структуры популяции
Методы, основанные на применении математических функций: экстраполяционный и аналитический. Компьютерное моделирование структуры популяции. Информация для реализации модели. Основные сведения о Всемирной организации здравоохранения. Структура базы данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 24.12.2013 |
Размер файла | 873,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
5. Применение реализованного программного обеспечения
5.1 Применение реализованного программного обеспечения в среде Delphi
При запуске разработанного приложения появится следующее окно (Рисунок 7)
Рисунок 7 - Основная форма
Для начала необходимо выбрать интересующий год и страну из списка (Рисунок 8, 9). По умолчанию установлен 1990 год и Беларусь.
Рисунок 8 -Выбор года
Рисунок 9 -Выбор страны
Для того, что бы просмотреть исходные данные для прогноза структуры населения за выбранный год и для нужной страны необходимо нажать на кнопку «Просмотр». После чего откроется форма «Данные» (Рисунок 10), в которой содержится входная информация. В данной форме находятся статистические сведения трех типов:
1) показатели смертности;
2) показатели рождаемости;
3) численность женщин.
Сведения представлены за 1990, 1995, 1999, 2000, 2001,2002 годы для 16 возрастных групп.
Для получения прогноза необходимо выбрать на панели кнопку «Прогнозирование». После чего на форме появятся три линии, отображающие исходные данные (Рисунок 11).
Рисунок 10 - Исходные данные
Красная линия - исходные данные 1990 год;
Зелёная линия - исходные данные 1995 год;
Сиреневая линия - исходные данные 2000 год.
Рисунок 11 - Результаты моделирования
Из графиков видно, что форма кривых повторяется только со сдвигом на 5 лет.
Выходные данные представлены в графическом виде. На основании исходных данных возможно представление прогнозируемых сведений о структуре населения. Полученные данные моделирования позволяют построить следующие кривые:
Прогноз численности населения на 1995 год;
Прогноз численности населения на 2000 год;
Прогноз численности населения на 2005 год;
Прогноз численности населения на 2010 год (Рисунок 12).
При этом для пользователя будет появляться сообщение отображающее год прогнозирования. Из рисунка 12 видно, что прогнозные кривые почти полностью повторяют исходные данные, за исключением младших возрастных групп и старших. В младших возрастах это происходит за счёт существенного уменьшения коэффициента рождаемости и сокращения младенческой смертности. Особенностью прогнозирования отдельных демографических процессов является то, что их параметры определяются не на каждый год прогнозного периода, а лишь на некоторые его точки. Затем полученные значения интерполируются на промежуточные даты.
Рисунок 12 - Прогноз численности населения
Для того, чтобы уточнить сделанные прогнозы методом интерполяции необходимо нажать на кнопку «Интерполяция». После чего появятся графики прогноза структуры населения с интервалом в один год (Рисунок 13).
Для того, чтобы просмотреть значения проинтерполированных данных следует выбрать «Данные интерполяции», после чего откроется форма с уточненными данными по численности населения, коэффициентом рождаемости и коэффициентам смертности (Рисунок 14). Если нужно узнать скорость размножения популяции и просмотреть репродуктивную ценность возрастных групп, то следует выбрать «Asimpt». После чего в поле появится значение скорости размножения популяции, а на форме появится график репродуктивной ценности (Рисунок 15). Получение выходных прогнозируемых данных имеет важное значение для прогнозирование демографической ситуации в будущем. Прогнозирование состава населения позволяет приближенно представить тенденции развития политики и экономики, а также сформировать пути развития на ближайшее будущее.
Рисунок 13 - Интерполяция структуры населения
Рисунок 14 - Интерполированные данные
Рисунок 15 - График репродуктивной ценности популяции
5.2 Применение реализованного программного обеспечения в среде MS Access
Рождаемость, наряду со смертностью, является основным демографическим процессом. Именно она в настоящее время в нашей стране и других и странах оказывает решающее влияние на характер воспроизводства населения. От нее, главным образом, зависит то, как в обществе осуществляется процесс замещения поколений. Разработанное программное обеспечение позволяет изучать и исследовать данные о рождаемости. Также возможно сравнение данных рождаемости между различными странами. В представленной ниже форме осуществляется возможность отображать данные в зависимости от пола.
Для того, чтобы отобразить сведения о рождаемости исследуемой страны нужно выбрать ее из списка 218 стран. Возможно отобразить общую рождаемость, данные о рождаемости нескольких или одной страны (Рисунок 17, а) В разработанном приложении существует возможность сопоставления дынных о рождаемости по полам (Рисунок 17, б). В базе используются следующие обозначения: 1- мужской пол, 2 - женский, 9 - пол не указан.
Рисунок 16 - Графики рождаемости
а) - Выбор страны б) - Выбор пола в) - Выбор года
Рисунок 17
Также имеется возможность сравнивать и отображать сведения о рождаемости в зависимости от года (Рисунок 17, в). Возможен просмотр данных для всех лет, которые имеются в базе данных или за отдельно выбранные годы.
Данное приложение позволяет быстро и наглядно получить интересующую информацию о рождаемости. Присутствует возможность осуществлять сравнительный анализ характеристик рождаемости по различным странам.
Поскольку показатели смертности являются одними из важных характеристик структуры населения, то для нее было разработано аналогичное с рождаемостью приложение (Рисунок 18). Данное приложение позволяет исследовать дынные о смертности в совокупности с другими странами, исследовать показатели смертности для отдельно выбранной страны с учетом половой структуры. В данном приложение есть возможность просматривать данные о смертности за отдельно выбранные года с 1994 по 2003.
Рисунок 18 - Графики смертности
Заключение
В ходе выполнения дипломной работы:
1) были изучены математические методы прогнозирования структуры популяции, сравнивались их возможностей;
2) систематизированы необходимые данные по рождаемости, смертности и численности населения;
3) была разработана компьютерная программа моделирования в среде Delphi, которая позволяет прогнозировать структуру популяции с пятилетним интервалом для различных стран, уточнять прогнозы методом интерполяции на годовые интервалы и имеется возможность просмотра проинтерполированных данных, определяется скорость размножения популяции и репродуктивная ценность каждой возрастной группы;
4) была создана база данных в среде MS Access, в которой разработано приложение, позволяющее сравнивать показатели смертности и рождаемости между различными странами, проводить анализ сравнения по годам и с учетом пола.
Программа является универсальной и может быть использована для построения прогнозов различных видов популяций на различных временных интервалах.
Предполагается дальнейшее развитие реализованного программного обеспечения включением в нее процессов заключения браков и разводов, составлением календаря рождаемости.
Разработанное программное обеспечение может быть использовано в области демографии, социологи, биологии. Приложение реализует точные и долгосрочные прогнозы, необходимые для демографического планирования.
Список использованных источников
1 Медков В.М, Демография: Учебное пособие. Серия <Учебники и учебные пособия>. - Ростов-на-Дону: <Феникс>, 2002. - 448 с.
2 Борисов В. А, Демография: Учебник для вузов. М., 1999. С. 249.
3 Богданофф Д., Козин Ф. Вероятностные модели накопления повреждений. - М.: Мир, 1989. - 341 с.
4 Можаев А.С. Современное состояние и некоторые направления развития логико-вероятностных методов анализа систем. // Теория и информационная технология моделирования безопасности сложных систем: Сб. ст. / Под редакцией И. А. Рябинина, Препринт 104. - СПб.: ИПМАШРАН, 1994, С.23-53
5 Рябинин И.А., Черкесов Г.Н. Логико-вероятностные методы исследования надежности структурно-сложных систем. - М.: Радио и связь, 1981.
6 Хенли, Кумамото. Надёжность технических систем и оценка риска. - М., 1984.
7 Максимей И. В. Имитационное моделирование на ЭВМ. - М.: Радио и связь, 1988. - 230 с.
8 Можаев А.С. Автоматизированное структурно-логическое моделирование в решении задач вероятностного анализа безопасности. // Теория и информационная технология моделирования безопасности сложных систем: Сб. ст. / Под редакцией И. А. Рябинина, Препринт 111. - СПб.: ИПМАШРАН, 1994, С. 16-38.
9 Можаев А.С., Алексеев А.О. Автоматизированное структурно-логическое моделирование и вероятностный анализ сложных систем. // Теория и информационная технология моделирования безопасности сложных систем: Сб. ст. / Под редакцией И. А. Рябинина, Препринт 104. - СПб.: ИПМАШРАН, 1994, С. 17-42.
10 Можаев А.С., Алексеев А.О. Громов В.Н. Автоматизированное логико-вероятностное моделирование технических систем. Руководство пользователя ПК АСМ, версия 5.0. - СПб.: ВИГУ, 1999.
11 http://spkurdyumov.narod.ru/RizLek3/Lek3.htm
12 http://www.demoscope.ru/weekly/2006/0231/biblio01.php
13 http://www.gks.ru
14 http://www.coe.int/t/e/social_cohesion/population/demographic_year_book/2003_Edition/
15 Ежегодный статистический сборник РБ 1989, 1999, 2002
16 http://dist-economics.eu.spb.ru/HTML/predmet/discussion/Russia_rewrite/
Russia_rewrite.htm
17 Практическая демография/Под ред. проф. Рыбаковского Л.Л.
18 http://www.who.int/en/
19 Фленов М. Программирование в Delphi глазами хакера. - СПб: BHV, 2003. - 368 с.
20 Харитонова И., Михеева И. «Microsoft Access 2000. Разработка приложений» -- Санкт-Петербург: БХВ - Петербург, 2001, - 832с.
Приложение
«Unit1.pas»
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart, Grids;
type
tvector= array of double;
tmatrix = array of array of double;
TForm1 = class(TForm)
Button1: TButton;
ComboBox1: TComboBox;
Button2: TButton;
Button3: TButton;
ch: TChart;
Button4: TButton;
Edit1: TEdit;
ComboBox2: TComboBox;
Button5: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
A,C, ms: TMatrix;
w,ww,w1,w2 : TVector;
k0,k1,k2 : TVector;
A1,C1: TMatrix;
r,n: byte;
h:array[1..10] of TVector;
implementation
uses Unit2 , Unit3;
{$R *.dfm}
procedure clearmas(var vx:tvector;l,k:integer);
var i:integer;
begin
for i:=l to k do
vx[i]:=0;
end;
procedure chclr ;
var j:integer;
begin
clearmas(ww,n,n*5-1);
clearmas(w,n,n*5-1);
clearmas(w1,n,n*5-1);
clearmas(w2,n,n*5-1);
for j:=1 to 10 do
clearmas(h[j],n,n*5-1);
for j := 1 to 7 do
form1.ch.Series[j - 1].Clear;
{}
end;
procedure multV(SVect :TVector;var Dvect : TVector; SMatr : TMatrix;Ub : Integer);
var
i, j: integer;
begin
for I := 0 to Ub - 1 do
Dvect[I] := 0;
for I := 0 to Ub - 1 do
for j := 0 to Ub - 1 do
Dvect[I] := (Dvect[I] + Smatr[i,j] * SVect[j]);
end;
procedure asimpt(w: tvector;var w0: tvector; M : tmatrix; var q,s : double;k:integer);
const
ct = 10000;
var
I, J: integer;
s0 :double;
begin
for i :=1 to round(300*k/n) do
begin
s0:=0;
for j := 0 to k - 1 do
s0 := s0 + w[j];
for j := 0 to k - 1 do
w[j] := w[j] / s0 * ct;
multV(w, w0, m, k);
s:=0;
for j := 0 to k - 1 do
begin
s := s + w0[j];
w[j] := w0[j];
end;
q := s / ct;
end;
q := s / ct;
end;
procedure progn(w: tvector;w0: tvector; M : tmatrix; l: byte;n1:integer);
var
I, J: integer;
s0: double;
begin
for i := 1 to l do
begin
multV(w, w0, m, n1);
for j := 0 to (n1) - 1 do
begin
w[j] := w0[j];
h[i + 3, j] := w0[j];
end;
end;
end;
procedure readfl;
var
i, j, k,rw,cl: word;
s, sd: string;
begin
formdat.red.Lines.LoadFromFile('W_all_'+inttostr(form1.ComboBox1.ItemIndex+1)+'.txt');
s:=formdat.red.Lines[0];
rw:= formdat.red.Lines.Count;
sd:='';
k:=1;
for i:=1 to length(s)-1 do
if s[i]= #9 then
k:=k+1;
cl:=k;
for i:= 0 to rw-1 do
begin
s:=formdat.red.Lines[i];
k:=0;
sd:='';
for j:=1 to length(s)-1 do
if s[j]= #9 then
begin
ms[i,k]:=strtofloat(sd);
sd:='';
k:=k+1;
end
else
sd:=sd+s[j];
ms[i,k]:=strtofloat(sd);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i, j: word;
str:string;
begin
n:=75;
r := 1;
SetLength(w, n*5);
SetLength(w1, n*5);
SetLength(w2, n*5);
SetLength(ww, n*5);
SetLength(A, N, N);
SetLength(C, N, N);
SetLength(MS, N, N);
SetLength(k0,n*5);
SetLength(k1,n*5);
SetLength(k2,n*5);
SetLength(A1, N*5, N*5);
SetLength(C1, N*5, N*5);
for i := 1 to 10 do
SetLength(H[i], N*5);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
formdat.showmodal;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
readfl;
chclr;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
I, J,l: integer;
q, ss: double;
begin
chclr;
for I := 0 to N - 1 do
for J := 0 to N - 1 do
A[I, J] := 0;
for I := 0 to N - 2 do
A[i + 1, i] := sqr(sqr(1 - ms[r, i + 1] / 1000)) * (1 - ms[r, i + 1] / 1000);
A[n - 1, n - 1] := sqr(sqr(1 - ms[r, n] / 200)) * (1 - ms[r, n] / 200);
for I := 0 to n-1 do
A[0, i] := 5 * ms[r + 6, i + 1] / 2000;
//*0.95;
l:=1;
for i := 0 to n - 1 do
h[1, i] := ms[12+r, i + 1];
if r=1 then
begin
l:=3;
for i := 0 to n - 1 do
h[2, i] := ms[13+r, i + 1];
for i := 0 to n - 1 do
h[3, i] := ms[15+r, i + 1];
end;
for i := 0 to n - 1 do
w[i] := ms[12+r, i + 1];
asimpt(w, ww, a, q, ss,n);
for i := 0 to n - 1 do
w[i] := ms[12+r, i + 1];
progn(w,ww,a,5,n);
for j := 1 to l do
begin
form1.ch.Series[j - 1].Clear;
form1.ch.Series[j - 1].AddArray(h[j]);
end;
for j := 4 to 7 do
begin
showmessage('прогноз '+inttostr(strtoint(form1.ComboBox2.Items.Strings[r-1])+5*(j-3)));
form1.ch.Series[j - 1].Clear;
form1.ch.Series[j - 1].AddArray(h[j]);
end
end;
procedure interpol1(wmat:tmatrix;t:Integer;var wi:tvector);
var
i,k,l,j,gg:integer;
p,s,xx:real;
begin
xx:=0;
gg:=0;
for k:=1 to 16 do
for l:=1 to 5 do
begin
if (xx-round(xx))<>0 then
begin
s:=0;
for i:=0 to 15 do
begin
p:=1;
for j:=-45 to 65 do
if i<>j then p:=p*(xx-j)/(i-j);
p:=p*wmat[t,i+1];
s:=s+p;
end;
end
else
s:=wmat[t,k];
wi[gg]:=s;
gg:=gg+1;
xx:=xx+0.2;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var i,j:integer;
xx:real;
q, ss: double;
begin
chclr;
interpol1(ms,13,k0);
interpol1(ms,r,k1);
interpol1(ms,r+6,k2);
for i := 0 to ((n*3) - 1) do
h[1, i+1] := k0[i];
for i := 0 to n*3 - 1 do
w[i] := k0[i];
for i:=1 to 1 do
begin
xx:=0;
form1.ch.Series[i - 1].Clear;
for j:=0 to n*5 do
begin
form1.Ch.Series[i-1].AddXY(xx,k0[j]);
xx:=xx+0.2;
end;
{}
end;
for I := 0 to N*3 - 1 do
for J := 0 to N*3 - 1 do
A1[I, J] := 0;
for I := 0 to N*3 - 2 do
A1[i + 1, i] := sqr(sqr(1 - k1[i] / 1000)) * (1 - k1[i] / 1000);
A1[n - 1, n - 1] := sqr(sqr(1 - k1[n-1] / 200)) * (1 - k1[n-1] / 200);
for I := 10 to n*3-1 do
A1[0, i] := 5 * k2[i] / 2000;
for I := 0 to (N*3)-1 do
for J := 0 to (N*3)-1 do
C1[I,J]:=A1[i,j] ;
for i := 0 to n*3 - 1 do
w[i] := k0[i];
asimpt(w, ww, a1, q, ss,n*5);
for i := 0 to n*3 - 1 do
w[i] := k0[i];
progn(w,ww,c1,5,n*5);
for i:=1 to 3 do
begin
xx:=0;
form1.ch.Series[i+3 - 1].Clear;
for j:=0 to n*5 do
begin
form1.Ch.Series[i+3-1].AddXY(xx,h[i+1+2,j]);
xx:=xx+1/5;
end;
end;
end;
procedure TForm1.ComboBox2Change(Sender: TObject);
begin
chclr;
r:=form1.ComboBox2.ItemIndex+1;
end;
procedure TForm1.Button4Click(Sender: TObject);
var
I, J,l: integer;
q, ss: double;
begin
chclr;
for I := 0 to N - 1 do
for J := 0 to N - 1 do
A[I, J] := 0;
for I := 0 to N - 2 do
A[i + 1, i] := sqr(sqr(1 - ms[r, i + 1] / 1000)) * (1 - ms[r, i + 1] / 1000);
A[n - 1, n - 1] := sqr(sqr(1 - ms[r, n] / 200)) * (1 - ms[r, n] / 200);
for I := 0 to n-1 do
A[0, i] := 5 * ms[r + 6, i + 1] / 2000;
for I := 0 to N-1 do
for J := 0 to N-1 do
C[I,J]:=A[j,i];
//*0.95;
l:=1;
for i := 0 to n - 1 do
w[i] := ms[r + 12, i + 1];
asimpt(w, ww, c, q, ss,n);
form1.ch.Series[0].AddArray(ww);
edit1.Text := floattostr(q);
end;
procedure TForm1.FormActivate(Sender: TObject);
var i:integer;
str:string;
begin
readfl;
for i:=1 to 6 do
begin
str:=floattostr(ms[i,0]);
form1.ComboBox2.Items.Add(str);
end;
form1.ComboBox2.ItemIndex:=0;
end;
procedure TForm1.Button5Click(Sender: TObject);
var i:integer;
begin
form3.StringGrid1.ColCount:=76;
form3.StringGrid2.ColCount:=76;
form3.StringGrid3.ColCount:=76;
interpol1(ms,13,k0);
interpol1(ms,r,k1);
interpol1(ms,r+6,k2);
for i:=1 to 75 do
begin
form3.StringGrid1.Cells[i,0]:=FloatToStr(k0[i-1]);
form3.StringGrid2.Cells[i,0]:=FloatToStr(k1[i-1]);
form3.StringGrid3.Cells[i,0]:=FormatFloat('0.000E+00',k2[i-1]);
end;
form3.ShowModal;
end;
end.
«Unit2.pas»
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
Tformdat = class(TForm)
red: TMemo;
private
{ Private declarations }
public
{ Public declarations }
end;
var
formdat: Tformdat;
implementation
{$R *.dfm}
end.
«Unit3.pas»
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TForm3 = class(TForm)
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
StringGrid3: TStringGrid;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
end.
Запрос «Рождаемость»
SELECT Country_codes.Name, POP.Year, POP.Lb, POP.Sex
FROM Country_codes INNER JOIN POP ON Country_codes.country = POP.Country;
Запрос «Смертность»
SELECT Country_codes.Name, Morticd10.Year, Morticd10.Sex, Morticd10.Deaths1
FROM Morticd10 INNER JOIN Country_codes ON Morticd10.Country = Country_codes.country;
Запрос «БелНас»
SELECT *
FROM Morticd10
WHERE (((Morticd10.Country)=4018));
Размещено на Allbest.ru
Подобные документы
Создание web-страниц с использованием языка HTML. Работа с графикой в Adobe Photoshop и Flash CS. Создание динамических web-страниц с использованием JavaScript и PHP. Базы данных и PHP. Пример реализации "Эконометрической модели экономики России" под WEB.
презентация [432,3 K], добавлен 25.09.2013Создание Web-страниц с использованием HTML, с использованием JavaScript и PHP. Работа с графикой в Adobe Photoshop и Flash CS. Базы данных и PHP. Пример реализации "Эконометрической модели экономики России" под web. Основы компьютерного моделирования.
презентация [4,4 M], добавлен 25.09.2013Разработка информационно-аналитической системы агентства недвижимости. Обоснование выбора архитектуры базы данных и СУБД. Моделирование потоков данных (DFD диаграмм). Проектирование инфологической модели данных с использованием модели "сущность-связь".
дипломная работа [5,4 M], добавлен 06.06.2013Дерево целей и функций. Построение функциональной модели структуры управления предприятием. Количественный анализ моделей. Оценка экономической эффективности. Функции обработки информации. Диаграммы потоков данных. Определение текущей стоимости затрат.
курсовая работа [647,7 K], добавлен 11.07.2015Особенности моделирования биологических систем с использованием программы "AnyLogic". Влияние различных факторов на популяции жертв и хищников. Принципы имитационного моделирования и его общий алгоритм с помощью ЭВМ. Анализ результатов моделирования.
курсовая работа [922,2 K], добавлен 30.01.2016Моделирование как основная функция вычислительных систем. Разработка концептуальной модели для системы массового обслуживания и ее формализация. Аналитический расчет и алгоритмизация модели, построение блок-диаграмм. Разработка и кодирование программы.
курсовая работа [164,8 K], добавлен 18.12.2011Создание дискретной модели популяции и определение развития численности популяции в зависимости от начального числа особей. Составление карты поведения системы. Процесс проектирования информационных систем, реализующих новую информационную технологию.
дипломная работа [1002,8 K], добавлен 09.10.2013Разработка структуры базы данных. Этапы разработки информационной системы. Моделирование сигналов в MatLab. Обмен данными в SQL-сервером. Генерация схемы базы данных для целевой СУБД. Редактирование параметров таблицы. Установка параметров генерации.
курсовая работа [5,3 M], добавлен 01.02.2013Разработка базы данных организации, которая занимается ремонтом автомобилей и реализована в виде программного продукта. Моделирование структуры баз данных с использованием CASE-средств средствами языка SQL. Разработка логической и физической модели базы.
курсовая работа [2,3 M], добавлен 21.03.2010Понятие и условие устойчивости бистабильной системы. Исследование модели "нагреватель - охлаждающая жидкость", построение фазового портрета стационарных состояний нагревателя. Компьютерное моделирование данной системы в пакете model vision studium.
курсовая работа [1,1 M], добавлен 07.06.2013