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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2013, 20:09   #1
RandomColor
 
Регистрация: 20.03.2013
Сообщений: 6
Восклицание Ошибка при Выборке

Код:
int i,m,n,t,h;
n=Edit1->Text.ToInt();

t=0;
m=0;

for (i=1;i<n;i++) {
n=rand();
if ((n-m)<=((h-t)*n))
t=t+1;
else{
y[i]=x[i];
m=m+1;
}
        if (m>n){}
        else {goto w;}

}
w:
for (i=0;i<n;i++)
{
ListBox2->Items->Add(y[i]);
}
delete []y;
delete []x;

вот код, нужно чтоб выводило на ListBox2 количество цифр которое мы задаем в Edit2, при этом есть в ListBox1 уже сгенерируемые количество чисел, он в виборка у меня выводит n-ое количество чисел или выбивает ошибку указаная на скрине, почему???
Изображения
Тип файла: jpg Безымянный1.jpg (91.4 Кб, 135 просмотров)
Тип файла: jpg Безымянный2.jpg (118.8 Кб, 135 просмотров)

Последний раз редактировалось Stilet; 20.03.2013 в 21:15.
RandomColor вне форума Ответить с цитированием
Старый 20.03.2013, 21:18   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Кто-нибудь что-нибудь понял?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.03.2013, 22:43   #3
RandomColor
 
Регистрация: 20.03.2013
Сообщений: 6
По умолчанию

своими словами объясню, у меня допустим есть 15 чисел, я не пойму как сделать чтоб при вводе в Edit допустим 3, мне выбивало с тех 15 любые 3 числа.

вот у меня есть алгоритм , я по нему делал, а просто не пойму какое значение у N
Изображения
Тип файла: jpg Фото2298.jpg (48.0 Кб, 131 просмотров)

Последний раз редактировалось Stilet; 23.03.2013 в 12:44.
RandomColor вне форума Ответить с цитированием
Старый 20.03.2013, 22:56   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
как сделать чтоб при вводе в Edit допустим 3, мне выбивало с тех 15 любые 3 числа.
Как-то так:
Код:
for (i=0;i<n;i++)
{
ListBox2->Items->Add(y[rand()%15]);
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.03.2013, 01:02   #5
RandomColor
 
Регистрация: 20.03.2013
Сообщений: 6
По умолчанию

ошибка пропала, но выдает , опять же , очень много чисел, а не сколько я хочу=)

вы ж получается поставили чтоб выводило случайные числа , мне нужно чтоб выводило определенное количество, которое я задаю.

Последний раз редактировалось Stilet; 23.03.2013 в 12:46.
RandomColor вне форума Ответить с цитированием
Старый 21.03.2013, 13:01   #6
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Код:
for( int i = 0; i < n; i++ )
{
  int nIndex = rand() % ListBox1->Items->Count;
  ListBox2->Items->Add( ListBox1->Items->Strings[ nIndex ] );
  ListBox1->Items->Delete( nIndex );
}
Подразумевается, что первый листбокс содержит твои какие-то числа, n - нужное количество. Выбранные числа удалятся из первого листбокса. Количество запрошенных чисел должно быть изначально меньше, чем количество имеемых.

Последний раз редактировалось FataLL; 21.03.2013 в 13:03.
FataLL вне форума Ответить с цитированием
Старый 21.03.2013, 14:30   #7
RandomColor
 
Регистрация: 20.03.2013
Сообщений: 6
По умолчанию

да только мне удалять с листбокса1 не нужно, а нужно чтоб числа были там и с них выводило в листбокс2 допустим, идет такой порядок чисел 1, 2, 3, 4, 5, 6, 7, 8,9 я задаю чтоб выводило 3, мне должно вывести допустим 3,6,8.
RandomColor вне форума Ответить с цитированием
Старый 21.03.2013, 16:29   #8
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Извини, что не угодил. Слабо было внести изменения?
Код:
TStringList* sl = new TStringList;
try
{
  sl->Assign( ListBox1->Items );
  for( int i = 0; i < nMax; i++ )
  {
    int nIndex = rand() % sl->Count;
    ListBox2->Items->Add( sl->Strings[ nIndex ] );
    sl->Delete( nIndex );
  }
}
__finally
{
  delete sl;
}
FataLL вне форума Ответить с цитированием
Старый 21.03.2013, 22:52   #9
RandomColor
 
Регистрация: 20.03.2013
Сообщений: 6
По умолчанию

да сам только учусь что знал то сделал, а дальше не как...

Еще вы меня даете код который генерирует числа и потом по условию перевод избранные числа в новый массив, а у меня уже есть генерируемые числа мне только нужно вывести с тех чисел( от1 до 14 допустим любых с 15) а генерирует у меня вот этот код
Код:
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
ListBox1->Clear();
q=Edit2->Text.ToInt();
for (int i=0;i<q;i++){
int h=rand();
x[i]=h;
ListBox1->Items->Add(h);}
}

Последний раз редактировалось Stilet; 23.03.2013 в 12:47.
RandomColor вне форума Ответить с цитированием
Старый 22.03.2013, 10:26   #10
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Мой код ничего не генерирует. Да и условий никаких нет... Ты вообще о чём? Хоть попробуй вставить куда надо и посмотреть, что происходит, прежде чем теоретизировать.
FataLL вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нумерация строк при выборке iankov SQL, базы данных 7 07.09.2012 12:48
Организация Всплывающего окна при выборке sql annddrrey PHP 1 11.11.2011 00:14
ошибка при выборке текстовых данных в таблице Nikolay88 БД в Delphi 2 21.06.2011 18:25
ошибка при исполнении (что то при установке компонентов) designer999 Компоненты Delphi 0 18.10.2010 22:03
Не отображаются русские символы при выборке данных из таблиц MySQL. vedro-compota PHP 0 23.09.2010 17:43