• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Сгенерировать последовательности на Delphi

  • Автор темы Автор темы Francuz
  • Дата начала Дата начала

Francuz

Ученик
Регистрация
18 Мар 2010
Сообщения
4
Реакции
0
Баллы
0
Сгенерировать последовательности на Delphi

Сгенерировать три последовательности по 30 случайных чисел каж-дая. Числа в каждой последовательности равномерно распределены в диапазонах от 0 до 5, от 2 до 8, от 4 до 10. Свести их в один массив, расположив по возрастанию. Для сформированного массива вычислить среднее значение, дисперсию и вывести результаты на печать в виде гистограммы, разбив диапазон на 10 интервалов.

Есть код, который надо переделать на эту задачу


type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Chart1: TChart;
Series1: TBarSeries;
Button1: TButton;
procedure Button1Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
x,r:array [1..30] of real;
counts: array [1..10] of Integer;
i,j:integer;
lambda,min,max,d,sz,mx,width1,st:real;
begin
randomize;

lambda:=0.8;
For i:= 1 to 30 do
begin
x:=-ln(random)/lambda;

end;

min:=x[1];
max:=x[1];
for i:= 1 to 29 do
begin
for j:=1 to 29 do
begin
if (x[j]>x[j+1]) then
begin
min:=x[j];
x[j]:=x[j+1];
x[j+1]:=min
end;

end;
end;

for i := 1 to 30-1 do
begin
r:=x[i+1]-x;
end;

//мат ожидание
for i := 1 to 29 do
mx:=mx+r;
mx:=(1/29)*mx;

//дисперсия
for i := 1 to 29 do
d:=d+(sqr(r)-sqr(mx));
d:=(1/29)*d;
Label1.Caption:='';
label1.Caption:='дисперсия = '+floattostr(d);

//ср значение
for i := 1 to 29 do
sz:=sz+x;
sz:=sz/29;
Label2.Caption:='';
label2.Caption:='среднее значение = '+floattostr(sz);

min:=x[1];
max:=x[1];
for i:= 2 to 29 do
begin
if (r<min) then min:=r;
if (r>max) then max:=r;
end;
width1:=(max-min)/10;
st:=Min;
for j:= 1 to 10 do
begin
counts[j]:=0;
for i:=1 to 29 do
if (r>=St) and (r<St+Width1) then
Inc(counts[j]);
St:=St+Width1;
end;
if r[29]=Max then
Inc(counts[10]);
Chart1.SeriesList[0].Clear;
for i:= 1 to 10 do
Chart1.SeriesList[0].AddXY(i,counts/29);

end;

end.


Заранее благодарен!
 
спасибо что не помогли:tehnari_ru_117:!!!!!!!!!! Сам справился уже!!!!!
 
У меня такая же задача! помог7и пожалуйста!:tehnari_ru_837:
 
Назад
Сверху