IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Случайные числа, Задачка с использование случайных чисел
Atreides
сообщение 19.03.2007 19:26
Сообщение #1


Ветеран Броуновского Движения
***

Группа: Пользователи
Сообщений: 281
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


По заданию нужно получить 200 значений в интервале от 1 до 5,4. И вот возник вопросик: Мне нужны случайно сгенерированные числа с заданным диапазоном значений от 1 до 5,4. Я накидал простой генератор, но числа выпадают от 0 до 1, как это поменять? Вот, что у меня получилось:
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
const n=200;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
r,b:real;
x:array[1..n] of real;
begin
b:=2;
randomize;
for i:=1 to n do
begin
r:=random;
x[i]:=-ln(r)/b;
Form1.Memo1.Lines.Add(FloatToStr(x[i]));
end;
end;
end.


Сообщение отредактировано: Atreides - 19.03.2007 19:34


--------------------
Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Caranthir
сообщение 19.03.2007 20:10
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 48
Пол: Мужской

Репутация: -  0  +


попробуй

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);

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

var
Form1: TForm1;
implementation
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
x:array[1..200] of real;
begin
randomize;
for i:=1 to 200 do
begin
x[i]:=random(5)+random(4)/10+1;
Form1.Memo1.Lines.Add(FloatToStr(x[i]));
end;
end;
end.



причем, если объявдять в implementation
n=200, то еще при старте проги массив заполняется real'ьными числами

Сообщение отредактировано: Caranthir - 19.03.2007 20:12
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.06.2025 3:27
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"