Приветствую Вас, Гость
Главная » Статьи » Программирование в Delphi

Построение графика распределения по интервалам.

Построение графика распределения по интервалам.

 

Задание: Построение графика распределения случайных чисел от 0 до 1 по интервалам 0...0.1; 0.1...0.2; ...; 0.9...1 в системе Delphi7

 

 

Исходный код:

 

unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, DateUtils, OleServer, ExcelXP, Grids, ComCtrls, StdCtrls,

  TeEngine, Series, ExtCtrls, TeeProcs, Chart;

 

type

  TForm1 = class(TForm)

    Memo1: TMemo;

    Chart1: TChart;

    Button1: TButton;  // кнопка расчета

    StringGrid1: TStringGrid;

    Button2: TButton;  // кнопка формирования массива

    Series1: TPieSeries;

    Memo2: TMemo;

    procedure Button2Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

   

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.Button2Click(Sender: TObject);

var

i: integer;

begin

randomize;

Memo1.Clear;

Memo2.Clear;

for i:= 1 to 200 do

Memo1.Lines.Add(Format('%6.4f', [Random]));

end;

 

procedure TForm1.Button1Click(Sender: TObject);

var

i: integer;

temp: integer;

mas: array of integer;

 

begin

Memo2.Clear;

Chart1.Series[0].Clear;

StringGrid1.Cells[0,0]:= 'Интервал';

StringGrid1.Cells[1,0]:= 'Частота';

setlength(mas, 0);

setlength(mas, 10);

for i:=0 to Memo1.Lines.Count - 1 do

  begin

    temp:= Trunc(StrToFloat(Memo1.Lines.Strings[i]) * 10);

    if temp = 10 then

    temp:= 9;

    mas[temp]:= mas[temp] + 1;

  end;

 

for i:= 1 to 10 do

  begin

  Chart1.Series[0].AddXY(i, mas[i-1] / 200, Format('%3.1f', [(i - 1) / 10]) + ' - ' + Format('%3.1f', [i / 10]));

  Memo2.Lines.Add('Интервал:' + Format('%3.1f', [(i - 1) / 10]) + ' - ' + Format('%3.1f', [i / 10]) + ' Вероятность: ' + Format('%5.3f', [mas[i-1] / 200]));

  StringGrid1.Cells[0,i]:= Format('%3.1f', [(i - 1) / 10]) + ' - ' + Format('%3.1f', [i / 10]);

  StringGrid1.Cells[1,i]:= IntToStr(mas[i-1]);

  end;

end;

 

end.

Категория: Программирование в Delphi | Добавил: mihalych_2013 (02.01.2014)
Просмотров: 1236 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: