Компьютерное имитационное моделирование
Курсовая работа, 20 Апреля 2014, автор: пользователь скрыл имя
Краткое описание
Имитационное моделирование (ситуационное моделирование) — метод, позволяющий строить модели, описывающие процессы так, как они проходили бы в действительности. Такую модель можно «проиграть» во времени как для одного испытания, так и заданного их множества. При этом результаты будут определяться случайным характером процессов. По этим данным можно получить достаточно устойчивую статистику.
Файлы: 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/
8. http://www.kpilib.ru/article.
Приложения.
Приложение 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 наглядное отображение поставок и реализацию товаров в предпринимательском бизнесе.