procedure Tfrand.Button1Click(Sender: TObject); var slepyduzy, slepymaly : double ; begin patrzenie(efot.value,emin.value, slepyduzy, slepymaly) ; showmessage('Duzy slepy:' + floattostr(slepyduzy) + '%' + ' maly slepy:' + floattostr(slepymaly) + '%') ; end; procedure Tfrand.patrzenie(fotonow,minut:integer; Var slepyduzy:double;Var slepymaly:double); var prob, p,d, los, duzyma, malyma : longint ; duzyslepy, malyslepy, polem, poled : longint ; srednicad, srednicam : smallint ; wzglednepowdm : double ; chance1mm : double ; wiecejdooswietlenia : double ; begin prob := minut * 60 * 5 ; //10 fotonow na 0.2 sekundy prog cz precika duzyslepy := 0 ; malyslepy := 0 ; srednicad := 150 ; //mmm srednicam := 80 ; //mmm polem := trunc( 3.14 * (srednicam/2)*(srednicam/2)) ; poled := trunc( 3.14 * (srednicad/2)*(srednicad/2)) ; wiecejdooswietlenia := poled/polem ; //np zamiast 1 - 6 precikow obok siebie randomize ; for p := 1 to prob do begin duzyma := 0 ; for d := 1 to poled do begin los := random(polem) ;//tak"polem"! sznsa dla 1mm2=13/polem - tak wali z nieba dla OBU if los < fotonow then duzyma := duzyma + 1 ; end ; if (duzyma / wiecejdooswietlenia) < 10 then duzyslepy := duzyslepy + 1 ; malyma := 0 ; for d := 1 to polem do begin los := random(polem) ; if los < fotonow then malyma := malyma + 1 ; end ; if malyma < 10 then malyslepy := malyslepy + 1 ; end ; slepyduzy := (duzyslepy * 100) / prob ; slepymaly := (malyslepy * 100) / prob ; end ;