Показать сообщение отдельно
  #6  
Старый 23.05.2011, 19:01
Аватар для AND_REY
AND_REY AND_REY вне форума
Активный
 
Регистрация: 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;
Ответить с цитированием