Форум: "Начинающим";
Текущий архив: 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.054 c