Компьютерное имитационное моделирование

Автор: Пользователь скрыл имя, 20 Апреля 2014 в 20:07, курсовая работа

Краткое описание

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

Файлы: 1 файл

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

— 943.05 Кб (Скачать)

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Список литературы

 

1. Есиненко Г.Е. Решение  задач с помощью электронных  таблиц // газета Информатика №5 2000, №17 2001.

2. Макарова Н.В. Информатика. 7-9 класс. Базовый курс. Учебник. -СПб.: Питер, 2001. -288с.: ил.

3. Макарова Н.В. Информатика. 7-9 класс. Базовый курс. Задачник  по моделированию. - СПб.: Питер, 2001. - 176 с.: ил.

4. Семакин И.Г, Залогова  Л.А, Русаков С.В, Шестакова Л.В. Информатика. Базовый курс. 7-9 классы- 2-е издание. М.:БИНОМ. Лаборатория знаний, 2003. - 390 с.: ил.

5. Угринович Н.Д. Информатика  и информационные технологии. Учебник  для 10-11 классов.. - М.:БИНОМ. Лаборатория  знаний, 2003. - 512 с.: ил.

6. http://ru.wikipedia.org/wiki

7. http://www.management.com.ua/ims/ims135.html

8. http://www.kpilib.ru/article.php?page=284

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложения.

Приложение 1.

Рассмотрим моделирование процесса «Рост цен на бензин за последние 10 лет».

Для начала определим расценку на марки бензина за ближайшие 10 лет:

Цены на бензин за последние 10 лет (руб./л)

Марка

Года

бензина

2001

2002

2003

2004

2005

2006

2007

2008

2009

2010

2011

АИ76

6,5

7,6

9

12,5

14,3

15,8

17

17,4

18

18,4

25,7

АИ92

7,9

9,8

11,3

14,4

16,8

18,7

20,3

20,1

24,3

25

27,4

АИ95

9,1

11

12,5

15,5

18

20,15

21,9

22,8

25

25,4

30


 

 

Затем перенесем эти данные в Delphi и добавим поле для диаграммы:

Ну и осталось для определенных компонентов среды Delphi написать код:

unit Unit1;

interface

uses

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

  Dialogs, ComCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart, Grids,

  StdCtrls;

type

  TForm1 = class(TForm)

    Panel1: TPanel;

    StringGrid1: TStringGrid;

    Panel2: TPanel;

    Chart1: TChart;

    Panel3: TPanel;

    CheckBox1: TCheckBox;

    CheckBox2: TCheckBox;

    CheckBox3: TCheckBox;

    Series2: TLineSeries;

    Series3: TLineSeries;

    Series1: TLineSeries;

    procedure FormCreate(Sender: TObject);

    procedure CheckBox1Click(Sender: TObject);

    procedure CheckBox2Click(Sender: TObject);

    procedure CheckBox3Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

x:array[1..3,1..11] of real;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

var

  i,j:integer;

begin

  for i:=2001 to 2011 do

    form1.StringGrid1.Cells[i-2000,0] := IntToStr(i);

  form1.StringGrid1.Cells[0,1] := 'АИ76';

  form1.StringGrid1.Cells[0,2] := 'АИ92';

  form1.StringGrid1.Cells[0,3] := 'АИ95';

  x[1,1] := 6.5;

  x[1,2] := 7.2;

  x[1,3] := 9;

  x[1,4] := 12.5;

  x[1,5] := 14.3;

  x[1,6] := 15.8;

  x[1,7] := 17;

  x[1,8] := 17.4;

  x[1,9] := 18;

  x[1,10] := 18.4;

  x[1,11] := 25.7;

  x[2,1] := 7.9;

  x[2,2] := 9.8;

  x[2,3] := 11.3;

  x[2,4] := 14.4;

  x[2,5] := 16.8;

  x[2,6] := 18.7;

  x[2,7] := 20.3;

  x[2,8] := 20.1;

  x[2,9] := 24.3;

  x[2,10] := 25;

  x[2,11] := 27.4;

  x[3,1] := 9.1;

  x[3,2] := 11;

  x[3,3] := 12.5;

  x[3,4] := 15.5;

  x[3,5] := 18;

  x[3,6] := 20.15;

  x[3,7] := 21.9;

  x[3,8] := 22.8;

  x[3,9] := 25;

  x[3,10] := 25.4;

  x[3,11] := 30;

  for i:=1 to 3  do

    for j:= 1  to 11 do

      form1.StringGrid1.Cells[j,i]  := FloatToStr(x[i,j]);

end;

procedure TForm1.CheckBox1Click(Sender: TObject);

var

  i,j:integer;

begin

   if form1.CheckBox1.Checked = false then form1.Series1.Clear           

else

     begin

        for i:=1 to 3  do

          for j:= 1  to 11 do

            x[i,j] :=  StrToFloat(form1.StringGrid1.Cells[j,i]);

        for i:=1 to  11 do

          form1.Series1.AddXY(2000+i, x[1,i],'',clred);

     end;

end;

procedure TForm1.CheckBox2Click(Sender: TObject);

var

  i,j:integer;

begin

   if form1.CheckBox2.Checked = false then form1.Series2.Clear

  else

     begin

        for i:=1 to 3  do

          for j:= 1  to 11 do

            x[i,j] :=  StrToFloat(form1.StringGrid1.Cells[j,i]);

        for i:=1 to  11 do

          form1.Series2.AddXY(2000+i, x[2,i],'',clgreen);

     end;

end;

procedure TForm1.CheckBox3Click(Sender: TObject);

var

  i,j:integer;

begin

   if form1.CheckBox3.Checked = false then form1.Series3.Clear

   else

     begin

        for i:=1 to 3  do

          for j:= 1  to 11 do

            x[i,j] :=  StrToFloat(form1.StringGrid1.Cells[j,i]);

        for i:=1 to  11 do

          form1.Series3.AddXY(2000+i, x[3,i],'',clBlue);

     end;

end;

end.

 

После того, как запустим программу, мы заметим, что при постановке галочки около марки бензина, у нас будет вырисовываться график роста цен на этот вид бензина:

Таким образом мы смоделировали в среде Delphi процесс роста цены на топливо (бензин в нашем случае).

 

 

 

 

 

 

Приложение 2.

Теперь мы рассмотрим похожий случай в ресторанном бизнесе: «Рост цен на блюда в связи с ростом цен на продукты питания».

Для этого определим примерный рост цен на продукты (в процентах) и примерный рост на блюда в ресторане за первое полугодие 2012 года:

 

 

январь

февраль

март

апрель

май

июнь

повышение цен на продукты(в среднем, %)

2

0,8

3

3

4

4

повышение цен на блюда(в среднем, %)

1,5

0

1,5

1,7

2

2,7


 

 

Так же, как и в первом примере, перенесем эти данные в среду Delphi и добавим поле для графика:

 

Ну и осталось для определенных компонентов среды Delphi написать код:

unit Unit1;

interface

uses

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

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

type

  TForm1 = class(TForm)

    Panel1: TPanel;

    StringGrid1: TStringGrid;

    Panel2: TPanel;

    Chart1: TChart;

    Series1: TLineSeries;

    Button1: TButton;

    Series2: TLineSeries;

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

  x:array[1..2,1..6] of real;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

var

  i,j:integer;

begin

  form1.StringGrid1.Cells[0,1] := 'Блюда';

  form1.StringGrid1.Cells[0,2] := 'Продукты';

  form1.StringGrid1.Cells[1,0] := 'Январь';

  form1.StringGrid1.Cells[2,0] := 'Февраль';

  form1.StringGrid1.Cells[3,0] := 'март';

  form1.StringGrid1.Cells[4,0] := 'апрель';

  form1.StringGrid1.Cells[5,0] := 'май';

  form1.StringGrid1.Cells[6,0] := 'июнь';

   x[1,1]:=2;   x[1,2]:=0.8;  x[1,3]:=3;  x[1,4]:=3; x[1,5]:=4;  x[1,6]:= 4;

   x[2,1]:=1.5; x[2,2]:=0;   x[2,3]:=1.5;x[2,4]:=1.7; x[2,5]:=2; x[2,6]:=2.7;

   for i:=1 to 2  do

    for j:= 1  to 6 do

      form1.StringGrid1.Cells[j,i]  := FloatToStr(x[i,j]);

end;

procedure TForm1.Button1Click(Sender: TObject);

var

  i,j:integer;

begin

  for i:=1 to 2 do

    for j:=1 to 6 do

x[i,j]:= StrToFloat(form1.StringGrid1.Cells[j,i]);

  form1.Series1.Clear;

  for i:=1 to 6 do

    form1.Series1.AddXY(i,x[1,i],'',clred);

  form1.Series2.Clear;

  for i:=1 to 6 do

    form1.Series2.AddXY(i,x[2,i],'',clgreen);

end;

end.

После того, как запустим программу, мы заметим, что при нажатии на кнопку «Построить», у нас будет вырисовываться график зависимости роста цен на продукты и на блюда в ресторане:

Таким образом мы смоделировали в среде Delphi один из процессов ресторанного бизнеса.

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение 3.

Рассмотрим 3 случай на примере магазина «УЮТ». Сравним поставки и реализацию продукции в этом магазине.

Для этого рассмотрим примерные поставки и реализацию товаров за первое полугодие 2012 года:

 

январь

февраль

март

апрель

май

июнь

поставки (общее, кг)

100

143

150

135

200

157

реализация(общее, кг)

85

94

138

110

189

120


 

 

Перенесем эти данные в таблицу среды Delphi и в данном случае будем строить столбчатую диаграмму для наглядности примера:

Ну и осталось для определенных компонентов среды Delphi написать код:

unit Unit1;

interface

uses

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

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

type

  TForm1 = class(TForm)

    Panel1: TPanel;

    StringGrid1: TStringGrid;

    Panel2: TPanel;

    Chart1: TChart;

    Series1: TBarSeries;

    Series2: TBarSeries;

    Button1: TButton;

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

    x:array[1..2,1..6] of real;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

var

  i,j:integer;

begin

form1.StringGrid1.Cells[0,1] := 'Поставки';

  form1.StringGrid1.Cells[0,2] := 'Реализация';

  form1.StringGrid1.Cells[1,0] := 'Январь';

  form1.StringGrid1.Cells[2,0] := 'Февраль';

  form1.StringGrid1.Cells[3,0] := 'март';

  form1.StringGrid1.Cells[4,0] := 'апрель';

  form1.StringGrid1.Cells[5,0] := 'май';

  form1.StringGrid1.Cells[6,0] := 'июнь';

   x[1,1]:=100;  x[1,2]:=143;  x[1,3]:=150;  x[1,4]:=135; x[1,5]:=200;  x[1,6]:=157;

   x[2,1]:=85;  x[2,2]:=94;  x[2,3]:=138;  x[2,4]:=110; x[2,5]:=189;  x[2,6]:=120;

   for i:=1 to 2  do

    for j:= 1  to 6 do

      form1.StringGrid1.Cells[j,i]  := FloatToStr(x[i,j]);

end;

procedure TForm1.Button1Click(Sender: TObject);

var

  i,j:integer;

begin

   for i:=1 to 2 do

    for j:=1 to 6 do

       x[i,j]:= StrToFloat(form1.StringGrid1.Cells[j,i]);

  form1.Series1.Clear;

  for i:=1 to 6 do

    form1.Series1.AddXY(i,x[1,i],'',clred);

  form1.Series2.Clear;

  for i:=1 to 6 do

    form1.Series2.AddXY(i,x[2,i],'',clgreen);

end;

end.

После того, как запустим программу, мы заметим, что при нажатии на кнопку «Построить», нам будет видна зависимость между поставками и реализацией продукции в магазине «УЮТ»:

Таким образом мы смоделировали в среде Delphi наглядное отображение поставок и реализацию товаров в предпринимательском бизнесе.

 

 


Информация о работе Компьютерное имитационное моделирование