Планирование уроков на учебный год (по учебнику Н.Д. Угриновича, профильный уровень)



Уроки 11 - 12
§1.4. Вероятностные модели




Содержание урока

1.4.1. Построение информационной модели с использованием метода Монте-Карло
1.4.2. Компьютерные модели, построенные с использованием метода Монте-Карло, на языке Visual Basic
1.4.3. Компьютерные модели, построенные с использованием метода Монте-Карло, на языке Turbo Delphi

Проект «Метод Монте-Карло» на языке Turbo Delphi

Компьютерный эксперимент

Контрольные вопросы


1.4.3. Компьютерные модели, построенные с использованием метода Монте-Карло, на языке Turbo Delphi


Проект «Метод Монте-Карло» на языке Turbo Delphi


Разработаем на языке Turbo Delphi компьютерную модель, позволяющую методом Монте-Карло определять площадь круга и число π.

1. Поместить на форму (рис. 1.22):

• графическое поле Imаge1, в котором будет отображаться процесс случайной генерации точек;
• два текстовых поля: Edit1 — для ввода радиуса окружности и Edit2 — для ввода количества генерируемых точек;
• надпись Label1 для вывода значения площади круга;
• надпись Label2 для вывода числа π.

2. Установить размер графического поля: с помощью окна Object Inspector присвоить свойству Size значение 200; 200.

3. Ввести в начало программного кода в оператор uses модуль Math, который обеспечивает подключение математических функций (Cos (), Tan () и т. д.).


uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Math;

4. Поместить на форму кнопку Button1 и создать для нее событийную процедуру TForm1.Button1Click(), которая обеспечивает:

• стирание результатов предыдущего опыта;
• ввод значения радиуса окружности в переменную R;
• ввод количества генерируемых точек и присваивание его переменной N;
• генерацию случайных координат точек;
• рисование в графическом поле квадрата со стороной 2*R и окружности радиуса R;
• подсчет в переменной M количества точек, попавших внутрь круга;
• вычисление и вывод значений площади круга и числа π на надписи.


var
R: integer; //радиус
N: integer; //количество "брошенных" точек
X: real; //координата точек X
Y: real; //координата точек Y
М: integer; //количество точек, попавших в круг
I: integer; //счетчик цикла
procedure ТForm1.Button1Click(Sender: TObject);
begin
//Стирание
Image1Xanvas.Brush.Color:=clWhite;
Image1Xanvas.Rectangle(100-R,100-R,100+R,100+R);
Image1Xanvas.FillRect (Rect (100-R, 100-R, 100+R,100+R));
M: =0;
//Ввод значений
R:=StrToInt(Edit1,Text);
H:=StrToInt(Edit2,Text);
//Рисование квадрата и круга
Image1Xanvas.Rectangle(100-R,100-R,100+R, 100+R);
Image1Xanvas.Ellipse(100-R,100-R,100+R,100+R);
//Генерация точек
Randomize;
For I:=l To N do
begin
X: -Random (2 *R) -R;
Y:=Random(2*R)-R;
Image2Xanvas.Pixels[Round(X)+100,Round(Y)+100]:=clBlack;
If Sqr(X)+Sqr(Y)<=Sqr(R)
Then M:=M+1
end;
//Площадь
Label1.Caption:=FloatToStr(4*Sqr(R)*M/N);
//Число Pi
Label2.Caption:=FloatToStr(4*M/N);
end;

5. Ввести радиус окружности и количество генерируемых точек. После щелчка по кнопке Пуск в графическом поле будет отображен процесс генерации случайных точек, а на надписи будут выведены значение площади круга и число π (см. рис.1.22).

Рис. 1.22. Проект «Метод Монте-Карло» на языке Turbo Delphi



Следующая страница Компьютерный эксперимент



Cкачать материалы урока





Наверх