Результаты исследований учащихся в проекте Модели вокруг нас: различия между версиями

Материал из Wiki Mininuniver
Перейти к навигацииПерейти к поиску
(Результаты проведённого исследования)
(Результаты проведённого исследования)
 
(не показано 20 промежуточных версий 3 участников)
Строка 1: Строка 1:
 
==Авторы и участники проекта==
 
==Авторы и участники проекта==
  
Авторы
+
Автор
  
[[Участник:Коробейникова Дарья|Коробейникова Дарья]]
+
[[Участник:Румянцева Юлия|Румянцева Юлия]]
  
[[Участник:Румянцва Юлия|Румянцва Юлия]]
+
Участники
  
 
Ученики 11 класса группа "Испытатели"
 
Ученики 11 класса группа "Испытатели"
Строка 11: Строка 11:
 
==Тема исследования группы==
 
==Тема исследования группы==
  
Моделирование случайности
+
Моделирование случайности.
  
 
== Проблемный вопрос (вопрос для исследования)==
 
== Проблемный вопрос (вопрос для исследования)==
Строка 19: Строка 19:
  
 
== Гипотеза исследования ==
 
== Гипотеза исследования ==
 +
 +
Мы считаем, что моделировать случайность можно используя различные специальные финкции программных продуктов. Например в Delphi это функция Random
  
 
==Цели исследования==
 
==Цели исследования==
 +
 +
1. Рассмотреть моделирование случайности на примере задачи: вычисление числа П методом Манте-Карло.
 +
 +
2. Для решения задачи выполнить её постановку, создать математическую модель. Разработать алгоритм и программу на Delphi.
  
 
==Результаты проведённого исследования==
 
==Результаты проведённого исследования==
 +
 +
[[Изображение:БлоксхемаМК.JPG]]
 +
  
 
Листинг программы "Монте-Карло"
 
Листинг программы "Монте-Карло"
 
  
 
unit Unit2;
 
unit Unit2;
Строка 32: Строка 40:
  
 
uses
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, OleCtrls, SHDocVw;
+
Dialogs, StdCtrls, ExtCtrls, OleCtrls, SHDocVws
 +
 
 +
type
 +
TForm2 = class(TForm)
 +
 
 +
Image1: TImage;
 +
 
 +
Button1: TButton;
 +
 
 +
Edit1: TEdit;
 +
 
 +
Edit2: TEdit;
 +
 
 +
Label2: TLabel;
 +
 
 +
Label3: TLabel;
 +
 
 +
Label4: TLabel;
 +
 
 +
Label1: TLabel;
 +
 
 +
WebBrowser1: TWebBrowser;
  
type
+
procedure Button1Click(Sender: TObject);
  TForm2 = class(TForm)
+
 
    Image1: TImage;
+
procedure FormCreate(Sender: TObject);
    Button1: TButton;
+
 
    Edit1: TEdit;
+
private
    Edit2: TEdit;
+
{ Private declarations }
    Label2: TLabel;
+
 
    Label3: TLabel;
+
public
    Label4: TLabel;
+
{ Public declarations }
    Label1: TLabel;
+
 
    WebBrowser1: TWebBrowser;
+
end;
    procedure Button1Click(Sender: TObject);
 
    procedure FormCreate(Sender: TObject);
 
  private
 
    { Private declarations }
 
  public
 
    { Public declarations }
 
  end;
 
  
 
var
 
var
  Form2: TForm2;
+
 
 +
Form2: TForm2;
  
 
implementation
 
implementation
Строка 64: Строка 87:
 
var
 
var
 
R:integer; //радиус
 
R:integer; //радиус
 +
 
N:integer; //количество "брошенных" точек
 
N:integer; //количество "брошенных" точек
 +
 
X:real;    //координата точек Х
 
X:real;    //координата точек Х
 +
 
Y:real;    //координата точек Y
 
Y:real;    //координата точек Y
 +
 
M:integer; //количество точек, попавших в круг
 
M:integer; //количество точек, попавших в круг
 +
 
I:integer; //счетчик цикла
 
I:integer; //счетчик цикла
 +
 
procedure TForm2.Button1Click(Sender: TObject);
 
procedure TForm2.Button1Click(Sender: TObject);
 +
 
begin
 
begin
 +
 
M := 0;
 
M := 0;
 
//Ввод значений
 
//Ввод значений
 +
 
R := StrToInt(Edit1.Text);
 
R := StrToInt(Edit1.Text);
 +
 
N := StrToInt(Edit2.Text);
 
N := StrToInt(Edit2.Text);
 +
 
Image1.Canvas.Ellipse(0,0,200,200);
 
Image1.Canvas.Ellipse(0,0,200,200);
 
//Генерация точек
 
//Генерация точек
 +
 
{Randomize};
 
{Randomize};
 +
 
For I := 1 To N do
 
For I := 1 To N do
 +
 
begin
 
begin
 +
 
X := (Random(200*R)-100)/100;
 
X := (Random(200*R)-100)/100;
 +
 
Y := (Random(200*R)-100)/100;
 
Y := (Random(200*R)-100)/100;
 +
 
Image1.Canvas.Pixels[Round(100*X)+100,100 - Round(100*Y)]:=clBlack;
 
Image1.Canvas.Pixels[Round(100*X)+100,100 - Round(100*Y)]:=clBlack;
 +
 
If X*X + Y*Y <= R
 
If X*X + Y*Y <= R
    Then M := M + 1
+
Then M := M + 1
 
end;
 
end;
 +
 
//Площадь
 
//Площадь
 +
 
Label1.Caption := FloatToStr(4*R*R*M/N);
 
Label1.Caption := FloatToStr(4*R*R*M/N);
 +
 
end;
 
end;
  
 
procedure TForm2.FormCreate(Sender: TObject);
 
procedure TForm2.FormCreate(Sender: TObject);
 +
 
begin
 
begin
 +
 
Webbrowser1.Navigate(GetCurrentDir+'\mk.htm');
 
Webbrowser1.Navigate(GetCurrentDir+'\mk.htm');
 +
 
//Form1.Show;
 
//Form1.Show;
 +
 
end;
 
end;
  
 
end.
 
end.
 +
 +
[[Изображение:РумянцеваМетодМонтеКарло.JPG|РумянцеваМетодМонтеКарло.JPG]]
  
 
==Вывод==
 
==Вывод==
 +
 +
1. Показали моделирование случайностей на примере вычисления числа П методом Манте-Карло.
 +
 +
2. Выяснили, что увеличивая количество испытаний можно увеличивать точность вычисления числа П.
  
 
==Полезные ресурсы==
 
==Полезные ресурсы==
 +
 +
[http://dl.softportal.com/load/DelphiBeginner.chm Учебник по Delphi 7 для начинающих 1.0.]
  
 
== Другие документы ==
 
== Другие документы ==
  
 +
[[Учебный проект Модели вокруг нас]]
  
 
[[Категория:Проекты]]
 
[[Категория:Проекты]]

Текущая версия на 12:39, 14 июня 2016

Авторы и участники проекта

Автор

Румянцева Юлия

Участники

Ученики 11 класса группа "Испытатели"

Тема исследования группы

Моделирование случайности.

Проблемный вопрос (вопрос для исследования)

Как смоделировать случайность?

Гипотеза исследования

Мы считаем, что моделировать случайность можно используя различные специальные финкции программных продуктов. Например в Delphi это функция Random

Цели исследования

1. Рассмотреть моделирование случайности на примере задачи: вычисление числа П методом Манте-Карло.

2. Для решения задачи выполнить её постановку, создать математическую модель. Разработать алгоритм и программу на Delphi.

Результаты проведённого исследования

БлоксхемаМК.JPG


Листинг программы "Монте-Карло"

unit Unit2;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, OleCtrls, SHDocVws

type TForm2 = class(TForm)

Image1: TImage;

Button1: TButton;

Edit1: TEdit;

Edit2: TEdit;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label1: TLabel;

WebBrowser1: TWebBrowser;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private { Private declarations }

public { Public declarations }

end;

var

Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm} var R:integer; //радиус

N:integer; //количество "брошенных" точек

X:real; //координата точек Х

Y:real; //координата точек Y

M:integer; //количество точек, попавших в круг

I:integer; //счетчик цикла

procedure TForm2.Button1Click(Sender: TObject);

begin

M := 0; //Ввод значений

R := StrToInt(Edit1.Text);

N := StrToInt(Edit2.Text);

Image1.Canvas.Ellipse(0,0,200,200); //Генерация точек

{Randomize};

For I := 1 To N do

begin

X := (Random(200*R)-100)/100;

Y := (Random(200*R)-100)/100;

Image1.Canvas.Pixels[Round(100*X)+100,100 - Round(100*Y)]:=clBlack;

If X*X + Y*Y <= R Then M := M + 1 end;

//Площадь

Label1.Caption := FloatToStr(4*R*R*M/N);

end;

procedure TForm2.FormCreate(Sender: TObject);

begin

Webbrowser1.Navigate(GetCurrentDir+'\mk.htm');

//Form1.Show;

end;

end.

РумянцеваМетодМонтеКарло.JPG

Вывод

1. Показали моделирование случайностей на примере вычисления числа П методом Манте-Карло.

2. Выяснили, что увеличивая количество испытаний можно увеличивать точность вычисления числа П.

Полезные ресурсы

Учебник по Delphi 7 для начинающих 1.0.

Другие документы

Учебный проект Модели вокруг нас