Автор работы: Пользователь скрыл имя, 10 Января 2013 в 15:20, курсовая работа
Математические методы являются важнейшим инструментом анализа экологических явлений и процессов, построения теоретических моделей, и математических позволяющих отобразить существующие связи в экологической жизни, прогнозировать поведение экологических факторов и явлений. Математическое моделирование становится языком современной экологической теории, одинаково понятным для учёных всех стран мира.
Целью курсовой работы является разработка программного продукта для расчёта простейшей модели эпидемии.
ВВЕДЕНИЕ 3
ГЛАВА 1. МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ В ЭКОЛОГИИ 4
1.1. Математические модели в экологии 4
1.2. Современное моделирование эпидемии 9
ГЛАВА 2 КОМПЬЮТЕРНАЯ МОДЕЛЬ РАСЧЕТА ПРОСТЕЙШЕЙ МОДЕЛИ ЭПИДЕМИИ 12
2.1 Постановка задачи развития эпидемии 12
2.2 Оптимальный расчет процесса распространения эпидемии 12
2.3 Среда в программировании, в которой будет создаваться программа для расчета модели эпидемии 15
ЗАКЛЮЧЕНИЕ 20
СПИСОК ЛИТЕРАТУРЫ 21
ПРИЛОЖЕНИЕ 23
Код программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart, Menus;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Chart1: TChart;
Series1: TLineSeries;
Button1: TButton;
Edit2: TEdit;
Edit3: TEdit;
Memo1: TMemo;
Panel1: TPanel;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
Series2: TLineSeries;
Series3: TLineSeries;
Edit4: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x,n,a,k,t:real;
t0,x0:integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Clear;
Chart1.Series[0].Clear;
Chart1.Series[2].Clear;
n:=strtoint(Edit1.Text);
t:=strtoint(Edit3.Text);
a:=strtofloat(Edit2.Text);
x0:=1;
for t0:=1 to round(t) do
begin
x:=(n+1)/(n*exp(-a*(n+1)*t0)+
Memo1.Lines.Add('Число заболевших через время ' + inttostr(t0)+' составит '+floattostr(round(x))+ ' человек' );
end;
for t0:=0 to round(t) do
begin
x:= (n+1)/(n*exp(-a*(n+1)*t0)+1);
chart1.Series[0].AddXY(t0,x);
end;
//Через какое время кол-во заболевших превысит %?
if CheckBox1.Checked then
begin
k:=strtofloat(Edit4.Text);
t0:=1;
repeat
x:=(n+1)/(n*exp(-a*(n+1)*t0)+
t0:=t0+1;
until k<=x/(n+1)*100;
Memo1.Lines.Add('Время за
Memo1.Lines.Add('Процент
end;
//До какого времени скорость эпидемии будет расти?
if CheckBox2.Checked then
begin
t0:=1;
repeat
x:=(n+1)/(n*exp(-a*(n+1)*t0)+
t0:=t0+1;
until round(x)=n+1;
Memo1.Lines.Add('Пик заболеваемости ' + floattostr(round(t0-1)) );
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
begin
if checkbox1.Checked=true then
begin
edit1.Visible:=true;
edit2.Visible:=true;
edit3.Visible:=true;
edit4.Visible:=true;
label1.Visible:=true;
label2.Visible:=true;
label3.Visible:=true;
end;
if checkbox2.Checked=true then
begin
edit1.Visible:=true;
edit2.Visible:=true;
edit3.Visible:=true;
edit4.Visible:=false;
label1.Visible:=true;
label2.Visible:=true;
label3.Visible:=true;
end;
end;
end;
procedure TForm1.CheckBox2Click(Sender: TObject);
begin
begin
if checkbox1.Checked=false then
begin
edit1.Visible:=true;
edit2.Visible:=true;
edit3.Visible:=true;
edit4.Visible:=false;
label1.Visible:=true;
label2.Visible:=true;
label3.Visible:=true;
end;
if checkbox2.Checked=false then
begin
edit1.Visible:=true;
edit2.Visible:=true;
edit3.Visible:=true;
edit4.Visible:=false;
label1.Visible:=true;
label2.Visible:=true;
label3.Visible:=true;
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);
SetWindowLong(edit2.Handle, GWL_STYLE, GetWindowLong(Edit2.Handle, GWL_STYLE) or ES_NUMBER);
SetWindowLong(edit3.Handle, GWL_STYLE, GetWindowLong(Edit3.Handle, GWL_STYLE) or ES_NUMBER);
SetWindowLong(edit4.Handle, GWL_STYLE, GetWindowLong(Edit4.Handle, GWL_STYLE) or ES_NUMBER);
end;
end.
Информация о работе Разработка компьютерной программы для расчета простейшей модели эпидемии