Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];

Вниз

генератор случайных чисел   Найти похожие ветки 

 
A2618 ©   (2007-07-26 21:18) [0]

Всем здрасти.
Вопрос сообственно такой, я не могу понять как сделать так чтоб случайно сгенерированые числа сохранялись в определенные переменные.


 
Virgo_Style ©   (2007-07-26 21:28) [1]

PredefinedVariable := Random;

Но кажется, что у меня опять вышел из строя телепатор...


 
Вася Правильный   (2007-07-26 22:22) [2]

массив + цикл


 
a2618 ©   (2007-07-26 22:33) [3]

>Вася Правильный  
  массив + цикл

цикл есть
begin
 for i := 1 to 5 do
 begin
   int := 1 + Random(1000);    
 end;
end;

а как сохранить результат в массиве?


 
Вася Правильный   (2007-07-26 22:38) [4]

a: array[1..5] of Integer;
...
a[i]:=Random(...);


 
a2618 ©   (2007-08-02 18:40) [5]

Опять вопрос. Можно ли какнить сгенерировать число в заданом диапазоне.


 
Dib@zol ©   (2007-08-02 18:45) [6]

Муахахаха.
Random(<Верхняя граница диапазона>)+1+<Нижняя>;
Вообщето, таким вопросам одна дорога - в Орешник...


 
Dib@zol ©   (2007-08-02 18:52) [7]

> Random(<Верхняя граница диапазона>)+1+<Нижняя>;

Уточнюсь:
Random(<Верхняя граница диапазона>-<Нижняя>)+1+<Нижняя>;


 
a2618 ©   (2007-08-02 18:57) [8]

>Уточнюсь:
Random(<Верхняя граница диапазона>-<Нижняя>)+1+<Нижняя>;

тоесть получаеться
Random(999-100)+1+100;
я правильно понял


 
Dib@zol ©   (2007-08-02 19:03) [9]

> я правильно понял

Да.


 
a2618 ©   (2007-08-02 19:26) [10]

чет не выходит в ккачестве параметра  r передаю 999-100
прога компелиться запускаеться но при генерации числа выдаеться ошибка

LPG[1]:=IntToStr(Random(r)+1+100);


 
Zagaevskiy ©   (2007-08-02 19:47) [11]


> LPG

Это какой массив?И ошибку, ошибку в студию!


 
Virgo_Style ©   (2007-08-02 19:48) [12]

Раз ошибка выдается, значит, она есть...


 
Gadenysh   (2007-08-02 20:03) [13]


> a2618 ©   (02.08.07 19:26) [10]


ежу понятно, ошыбка - несоответствие типов в вызове InttoStr. в библиотеку!!!


 
MasterOfReasons ©   (2007-08-02 20:05) [14]

если компилится, то грамматических ошибок нет.в логике я ошибки не вижу(у меня всё работает).Ты лучше выложи кусок кода, где ты эту строчку используешь.А то может быть ты выводишь эту строчку на ещё не созданный объект(да много чего может быть).Ищи ошибку в неправильно реализованной логике.


 
Zagaevskiy ©   (2007-08-02 20:51) [15]

Я оказывается телепат!!!Нашёл у него ошибку!В семнадцатой строке!


 
a2618 ©   (2007-08-03 06:21) [16]

Код собственно вот ток не надо гнать что лечше былобы сделать как-то подругому до чего смог додуматься то и сделал

procedure TForm1.Timer1Timer(Sender: TObject);
var
g, o, p, q, u, i: String;
LPG: array[1..5] of String;
begin
LPG[1]:=IntToStr(Random(r)+1+100);
LPG[2]:=IntToStr(Random(r)+1+100);
LPG[3]:=IntToStr(Random(r)+1+100);
LPG[4]:=IntToStr(Random(r)+1+100);
LPG[5]:=IntToStr(Random(r)+1+100);
o:=IntToStr(memo1.Lines.IndexOf(LPG[1]));
p:=IntToStr(memo1.Lines.IndexOf(LPG[2]));
q:=IntToStr(memo1.Lines.IndexOf(LPG[3]));
u:=IntToStr(memo1.Lines.IndexOf(LPG[4]));
i:=IntToStr(memo1.Lines.IndexOf(LPG[5]));
if StrToInt(o)=-1 then
Memo1.Lines.Add(LPG[1]);
if StrToInt(p)=-1 then
 Memo1.Lines.Add(LPG[2]);
 if StrToInt(q)=-1 then
  Memo1.Lines.Add(LPG[3]);
  if StrToInt(u)=-1 then
   Memo1.Lines.Add(LPG[4]);
   if StrToInt(i)=-1 then
    Memo1.lines.Add(LPG[5]);
g:=IntToStr(r-(Memo1.Lines.Count)) ;
Label7.Caption:=g;
end;


 
a2618 ©   (2007-08-03 06:23) [17]

выглядит жеско сам удивляюсь как до этого додумался )


 
a2618 ©   (2007-08-03 06:50) [18]

С параметром r этот код выглядит так

procedure TForm1.Timer1Timer(Sender: TObject);
var
g, o, p, q, u, i: String;
LPG: array[1..5] of String;
begin
LPG[1]:=IntToStr(Random(999-100)+1+100);
LPG[2]:=IntToStr(Random(999-100)+1+100);
LPG[3]:=IntToStr(Random(999-100)+1+100);
LPG[4]:=IntToStr(Random(999-100)+1+100);
LPG[5]:=IntToStr(Random(999-100)+1+100);
o:=IntToStr(memo1.Lines.IndexOf(LPG[1]));
p:=IntToStr(memo1.Lines.IndexOf(LPG[2]));
q:=IntToStr(memo1.Lines.IndexOf(LPG[3]));
u:=IntToStr(memo1.Lines.IndexOf(LPG[4]));
i:=IntToStr(memo1.Lines.IndexOf(LPG[5]));
if StrToInt(o)=-1 then
Memo1.Lines.Add(LPG[1]);
if StrToInt(p)=-1 then
Memo1.Lines.Add(LPG[2]);
if StrToInt(q)=-1 then
 Memo1.Lines.Add(LPG[3]);
 if StrToInt(u)=-1 then
  Memo1.Lines.Add(LPG[4]);
  if StrToInt(i)=-1 then
   Memo1.lines.Add(LPG[5]);
g:=IntToStr(r-(Memo1.Lines.Count)) ;
Label7.Caption:=g;
end;

если можно реализовать как-то проще  то подскажите


 
MBo ©   (2007-08-03 07:01) [19]

>если можно реализовать как-то проще  то подскажите
объясни толком, что за задача


 
Dib@zol ©   (2007-08-03 09:34) [20]

УЖЖАСТЬ!!!

Привожу нормальный код:
(только для повышения читабельности!!!)

const r = 899; // Telepated

procedure TForm1.Timer1Timer(Sender: TObject);
var
 i : Byte;
 LPG: array [1..5] of String;
begin
 for i:=1 to length(LPG) do begin
   LPG[i]:=IntToStr(Random(r)+1+100);
   if memo1.Lines.IndexOf(LPG[i])=-1 then Memo1.Lines.Add(LPG[i]);
 end;
 Label7.Caption:=IntToStr(r-Memo1.Lines.Count);
end;

Помоему вот и всё!


 
Ping   (2007-08-03 09:34) [21]

если можно реализовать как-то проще  то подскажите

procedure TForm1.Timer1Timer(Sender: TObject);
var
 S: string;
begin
 S := IntToStr(Random(999 - 100) + 1 + 100);
 if (Memo1.Lines.IndexOf(S) = -1) then
   Memo1.Lines.Add(S);
 Label7.Caption := IntToStr(Memo1.Lines.Count);
end;


То есть, конечно, проще было бы запретить дубликаты в строках.
Но что-то мне подсказывает, что автор просто привел тестовый вариант. Чего реально получить хотел - не понятно.

P.S. "Не понятно..." (С) СС



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.044 c
15-1185502791
SlymRO
2007-07-27 06:19
2007.08.26
С Днём Системного Администратора!!!


15-1185527097
TruePunk
2007-07-27 13:04
2007.08.26
крестики


15-1185354885
Kerk
2007-07-25 13:14
2007.08.26
Федор Черенков


2-1186099361
Riply
2007-08-03 04:02
2007.08.26
RtlDecompressBuffer - использование в цикле.


2-1185678476
Нова
2007-07-29 07:07
2007.08.26
Сокеты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский