Разработка компьютерной программы для расчета простейшей модели эпидемии

Автор работы: Пользователь скрыл имя, 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

Вложенные файлы: 1 файл

Курсовая работа.doc

— 628.50 Кб (Скачать файл)

 

 

ПРИЛОЖЕНИЕ

 

 

Код программы:

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)+1);

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)+1);

t0:=t0+1;

until k<=x/(n+1)*100;

Memo1.Lines.Add('Время за которое кол-во  заболевших превысит заданный  процент равно ' + floattostr(round(t0-1)) );

Memo1.Lines.Add('Процент заболевших ' + floattostr(round(x/(n+1)*100)));

end;

 

//До какого времени скорость  эпидемии будет расти?

if CheckBox2.Checked then

begin

t0:=1;

repeat

x:=(n+1)/(n*exp(-a*(n+1)*t0)+1);

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.


Информация о работе Разработка компьютерной программы для расчета простейшей модели эпидемии