23.05.2011, 19:01
|
|
Активный
|
|
Регистрация: 31.03.2009
Адрес: Украина, г.Днепропетровск
Сообщения: 324
Версия Delphi: Delphi7
Репутация: 3877
|
|
Так вроде бы работает, тестируйте:
Код:
Var
M: Integer = 0;
N: Integer = 0;
procedure TForm1.Button1Click(Sender: TObject);
const
x = 50; // координаты цели
y = 50;
r = 30; // растояние
var
x1, y1, i: Integer;
r1: Real;
begin
For i:= 1 To 1000000000 Do // Несколько раз выстрелим
begin
Randomize;
Form1.Canvas.Brush.Color:= clBtnFace;
Form1.Canvas.Rectangle(0,0,105,105);
Form1.Canvas.Brush.Color:= clBlue;
Form1.Canvas.Ellipse(x-r,y-r,x+r,y+r);
x1:= Random(100);
y1:= Random(100);
Form1.Canvas.Brush.Color:= clRed;
Form1.Canvas.Ellipse(x1-3,y1-3,x1+3,y1+3);
r1:= Sqrt(Sqr(x1 - x) + Sqr(y1 - x));
if r1 <= r Then
begin
Label1.Caption:= 'Попали!';
Inc(M);
end
Else Label1.Caption:= 'Промазали!';
Inc(N);
end;
Label1.Caption:= 'Вероятность = '+FloatToStr(M/N);
end;
__________________
If end Then begin;
|