Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.09.2009, 01:38   #1
leonw
Пользователь
 
Регистрация: 08.08.2008
Сообщений: 39
Стрелка Random вывод нескольких чисел без повторений

здравствуйте! Хотел спросить: как сделать вывод чисел через рандом от 0 до 50, так что бы они не повторялись в label1, label2 label3.....label8. т.е получится пр: 4 6 34 33 17 11 40 20
Код:
Randomize;
RealNum:=Random(50);
label1.Caption:=inttostr(RealNum);
label2.Caption:=inttostr(RealNum);
спасибо!!!
leonw вне форума Ответить с цитированием
Старый 05.09.2009, 01:44   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Вариант 1: при генерации числа заносить его в массив. А при генерации следующего пробегаться по массиву в поисках совпадения. Если найдено, то генерируем заново.

Вариант 2: заполняем массив числами от 0 до 50 и перемешиваем его. Берем нужное количество чисел.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 05.09.2009, 02:10   #3
leonw
Пользователь
 
Регистрация: 08.08.2008
Сообщений: 39
По умолчанию Программист

Я не очень силен в Делфи, знаю прибавить 2 числа, кнопочку переместить, игрушку наготовом движке сделать, если можешь хоть примерно код написать как это взять числа
спасибо!
leonw вне форума Ответить с цитированием
Старый 05.09.2009, 03:30   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

leonw, учитесь пользоваться поиском по форуму!!
Достаточно забить в поиск ключевые слова (например Random повторений) и, ву а ля:
http://www.programmersforum.ru/showthread.php?t=16368 посты №12 и 16
или
http://www.programmersforum.ru/showthread.php?t=16335 пост №5
или
http://www.programmersforum.ru/showthread.php?t=12762

ладно. чисто по приколу...
вот полностью готовый год (использован алгоритм заполнения массива (с) Карась
Код:
procedure TForm1.Button1Click(Sender: TObject);
const
  CountOfNumbers = 8;
  MaxRandom = 50;

var
  k,i,j,m,N:integer;
  s:string;
  f:boolean;
  a:array[1..CountOfNumbers]of integer;

begin
  // заполнение массива
  // (c) Карась (http://www.programmersforum.ru/member.php?u=6536)
  randomize;
  m:=2;
  for i := 1 to CountOfNumbers do
  begin
    repeat
      f:=false;
      N:=Random(MaxRandom)+1;
      for j:=1 to m do
       if a[j]=N then f:=true;
    until f=false;
    a[i]:=N;
    m:=m+1;
  end;

  // А это код вывода массива в Label1..LabelN
  {    вместо можно просто тупо перечислить
           Label1.Caption := IntToStr(a[1]);
           Label2.Caption := IntToStr(a[2]);
           ...
           Label8.Caption := IntToStr(a[8]);
           }
  i := 0;
  for k:=0 to Form1.ComponentCount-1 do
     if Form1.Components[k] is TLabel then begin
         s := TLabel(Form1.Components[k]).Name;
         if (UpperCase(Copy(s,1,5))='LABEL')
            and (Length(s)=6)
            and (Copy(s,6,1)>='0')
              and  (Copy(s,6,1)<='9') then
         begin
           if i<CountOfNumbers then begin
             inc(i);
             TLabel(Form1.Components[k]).
                  Caption := IntToStr(a[i]);
           end;
         end;
     end;

end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.09.2009, 13:15   #5
leonw
Пользователь
 
Регистрация: 08.08.2008
Сообщений: 39
Стрелка спасибо!

привет! Спасибо!!! эт правдо, с поиском у меня проблемы, я даже не знал как написать "Random повторений" в поиск.
Спасибо!!!
leonw вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод значений нескольких столбцов в DBLookUpComboBox dkl БД в Delphi 5 07.11.2011 16:41
Перевод нескольких чисел в строке krappt Общие вопросы C/C++ 2 09.07.2009 23:11
Вывод сообщения без кнопок transgd Microsoft Office Excel 6 19.06.2009 06:15
Вывод в memo.lines значения R:=random Алексей_xXx Помощь студентам 3 24.05.2009 11:26
Массив без повторений Uzenec Помощь студентам 2 17.01.2008 08:23