x[i]:= Chislo(); {Вычисляем псевдослучайное число}
if (i>1) and (flag = false) then
if x[i]=x[1] then
begin
T:=i-1; {Вычисляем период генератора}
flag:=true;
end;
sum:=sum+x[i]; {Вычисляем сумму массива псевдослучайных чисел}
end;
if flag=false then T:=N;
Period.Caption:='Период генератора: '+ inttostr(T);
m:=sum/N; {Вычисляем математическое ожидание}
m_o.Caption:='Математическое ожидание: '+ floattostrf(m, ffFixed, 8,5);
s:=0;
for i:= 1 to N do
s:=s+sqr(x[i]-m)*(1/N); {Вычисляем дисперсию}
dispersiya.Caption:='Дисперсия: ' + floattostrf(s, ffFixed, 8, 5);
end;
{Процедура построения гистограммы распределения псевдослучайных чисел}
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;
begin
for i:= 1 to 11 do y[i]:=0;
Raspredelenie(Sender);
for i:=1 to N do
{Подсчитываем количество чисел, попавших в каждый из 10 равных отрезков, на которые разбит интервал [5;30]}
case round(x[i]*1000) of
5001..7500 : y[1]:=y[1]+1;
7501..10000 : y[2]:=y[2]+1;
10001..12500 : y[3]:=y[3]+1;
12501..15000 : y[4]:=y[4]+1;
15001..17500 : y[5]:=y[5]+1;
17501..20000 : y[6]:=y[6]+1;
20001..22500 : y[7]:=y[7]+1;
22501..25000 : y[8]:=y[8]+1;
25001..27500 : y[9]:=y[9]+1;
27501..30000 : y[10]:=y[10]+1;
end;
if f then
begin {Строим гистограмму распределения}
for j:= 0 to 13 do
case j of
0..1 : Chart1.SeriesList[0].AddXY(2.5*j,0);
2..12 : Chart1.SeriesList[0].AddXY(2.5*(j-1)+2.5,y[j-1]);
13 : Chart1.SeriesList[0].AddXY(2.5*(j-1)+2.5,0);
end;
f:=false;
end
else
for j:=2 to 12 do
Chart1.SeriesList[0].YValue[j]:=y[j-1];
Button1.Enabled:=false;
Button3.Enabled:=true;
end;
{Процедура просмотра массива псевдослучайных чисел}
procedure TForm1.Button3Click(Sender: TObject);
var
i : integer;
begin
if not FLAG then
begin
Form2.Memo1.Clear;
Form1.Button3.Cursor:=crHourGlass;
Raspredelenie(Sender);
for i:= 1 to N do
begin
Form2.Memo1.Lines.Add(' ' + floattostrf(x[i],ffFixed,8,5));
end;
Form1.Button3.Cursor:=crDefault;
FLAG:=true;
end;
Form2.ShowModal;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Form3.ShowModal; {Показ окна настройки параметров генератора}
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Close; {Выход из программы}
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Unit1;
type
TForm3 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
UpDown1: TUpDown;
UpDown2: TUpDown;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
Label4: TLabel;
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.Edit1Change(Sender: TObject);
begin
z:= strtoint(Edit1.Text);
FLAG:=false;
Form1.Button1.Enabled:=true;
end;
procedure TForm3.Edit2Change(Sender: TObject);
begin
k:=strtoint(Edit1.Text);
FLAG:=false;
Form1.Button1.Enabled:=true;
end;
procedure TForm3.ComboBox1Change(Sender: TObject);
begin
b:=strtoint(Edit1.Text);
FLAG:=false;
Form1.Button1.Enabled:=true;
end;
procedure TForm3.ComboBox2Change(Sender: TObject);
begin
c:=strtoint(Combobox2.Text);
FLAG:=false;
Form1.Button1.Enabled:=true;
end;
end.
ДА НЕТ
Рис. 1.1. Блок-схема алгоритма
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.