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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2012, 16:34   #11
Kazakua
Новичок
Джуниор
 
Регистрация: 07.03.2012
Сообщений: 1
По умолчанию

"project1 - Debug" uses an invalid compiler. Probably the toolchain path within the compiler options is not setup correctly?! Skipping...
Nothing to be done.

Объясните что за проблема и как исправить. Заранее спасибо
Kazakua вне форума Ответить с цитированием
Старый 28.03.2012, 13:56   #12
LiuLiuJons
Форумчанин
 
Регистрация: 28.12.2011
Сообщений: 124
По умолчанию И опять возвращаясь к этой функции.

Я прописала так:
Код:
srand(time);
и вроде больше не ругается. Но проблема в другом: генерируются всё равно одинаковые числа, подскажите пожалуйста, что я делаю не так?
Вот код. (тут я пробовала заменить на randomize() - но эффект тот же - генерируются одни и те же величины для my и для oppont массивов.
Вызов функции генерации:
Код:
 
	do
	{
	} while (!RandomizeWeights(my));

	do
	{
	} while (!RandomizeWeights(oppont));
Вот сама функция:
Код:
bool __fastcall TForm1::RandomizeWeights(Field a[])
{
	bool flag = false;
	int weights[MY_F_SIZE];
	int i = 0;
	int tmp = 0;
	TStringList *list = new TStringList();
	TStringList *listCopy =  new TStringList();

	randomize();
	//srand(time);

	i = 0;
	do
		{
			int zz = rand()%c;      //need to create limit for king - to be only in the 0 row
			weights[i] = StrToInt(list->Strings[zz]);
			if (zz!=0)
			{
				do
				{
				tmp = rand()%(list->Count);
				}
				while (tmp==0);   //need to check that new random number is not equal to 0, otherwise we would get some mistakes
					
				list->Strings[zz] =  list->Strings[tmp];
				zz = tmp;
			}
			else { flag =true;}
			list->Delete(zz);
			i++;
			if ( (i==(c-1)) && (!flag) )
			{
				i = 0;
				list->Clear();
				ListBox1->Items->Add("New started: ");
				for (int k = 0; k < listCopy->Count; k++)
				{
					list->Add(listCopy->Strings[k]);
					ListBox1->Items->Add("Added: " + listCopy->Strings[k]);
				}
			}
		}
	while (i < c);

	ListBox1->Items->Add(IntToStr(list->Count));

	do
	{
	  int zz = rand()%(list->Count);
	  weights[i] = StrToInt(list->Strings[zz]);
	  i++;
	  list->Delete(zz);
	} while ((list->Count) > 0);

	list->Clear();
	for (i = 0; i < MY_F_SIZE; i++)     //restrictions for traps ( not to get hold some other figures between traps )
	  if ( (weights[i]==11) || (weights[i]==-10) )
		 list->Add(IntToStr(i));

	tmp = 0;
	for (i = 1; i < list->Count; i++)   {
		if ( (StrToInt(list->Strings[i-1]) == ( StrToInt(list->Strings[i]) + c + 1)) ||
		     (StrToInt(list->Strings[i-1]) == ( StrToInt(list->Strings[i]) + 2)) )
			tmp++;
	}

	for (i = 0; i < list->Count; i++)
			ListBox1->Items->Add("We have these numbers: " + list->Strings[i]);

	if (tmp>=2) return false;   //for recursion purposes

	for (i = 0; i < MY_F_SIZE; i++)
		{
		ListBox1->Items->Add("Weights[" + IntToStr(i)+"]: " + IntToStr(weights[i]));
		a[i].setWeight(weights[i]);
		}

	return true;

}
Пы.Сы. list заполняется специфическими величинами, я убрала из этого сообщения, чтобы было поменьше текста.
"Думай не о задаче, а о решении" (с)
LiuLiuJons вне форума Ответить с цитированием
Старый 29.03.2012, 15:14   #13
LiuLiuJons
Форумчанин
 
Регистрация: 28.12.2011
Сообщений: 124
По умолчанию

Всё, вопрос закрыт.
Очень интересная штука обнаружилась - в Борланде функции Randomize() и randomize() не одно и то же. Если первая даёт возможность генерировать каждый раз новые числа, то вторая ничего не даёт. Но мало того и функция rand() для Борланда в моём случае - было что-то не то (вкупе с Randomize()) возможно.

Так что всё заработало при использовании Randomize() и Random(value) - тоесть с большими буквами в заглавии.
"Думай не о задаче, а о решении" (с)
LiuLiuJons вне форума Ответить с цитированием
Старый 29.03.2012, 17:51   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
в Борланде функции Randomize() и randomize() не одно и то же.
открою вам секрет, это в самом С/С++ так.
большая и малая буква это разные, регистр важен.
I != i.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.03.2012, 18:24   #15
LiuLiuJons
Форумчанин
 
Регистрация: 28.12.2011
Сообщений: 124
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
открою вам секрет, это в самом С/С++ так.
большая и малая буква это разные, регистр важен.
I != i.
Правда? Никогда бы не догадалась!

Проблема была именно в том, что эти функции правильно бы сработали в Визуал студио например. А здесь они принимались компилятором (именно Борладном), а вот работать - не работали.
"Думай не о задаче, а о решении" (с)
LiuLiuJons вне форума Ответить с цитированием
Старый 29.03.2012, 19:54   #16
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

в студии вообще нет Randomize.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.03.2012, 20:22   #17
LiuLiuJons
Форумчанин
 
Регистрация: 28.12.2011
Сообщений: 124
По умолчанию

Вы правы нет.
Но вы вернитесь к началу темы и прочитайте всё с начала до конца. Почему используется randomize() вместо srand(time), потом почему она не подходит и т.д.
Я не понимаю в чём смысл этого обсуждения.

Для чего же нужна функция randomize(), существующая только в Билдере, если она ничего не делает?
"Думай не о задаче, а о решении" (с)
LiuLiuJons вне форума Ответить с цитированием
Старый 29.03.2012, 21:30   #18
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
открою вам секрет, это в самом С/С++ так.
большая и малая буква это разные, регистр важен.
I != i.
Человек с Dasik-а пришёл, Чего Вы от него хотите?:
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 29.03.2012, 22:10   #19
LiuLiuJons
Форумчанин
 
Регистрация: 28.12.2011
Сообщений: 124
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Человек с Dasik-а пришёл, Чего Вы от него хотите?:
А что такое Dasik?
"Думай не о задаче, а о решении" (с)
LiuLiuJons вне форума Ответить с цитированием
Старый 30.03.2012, 16:17   #20
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Для чего же нужна функция randomize(), существующая только в Билдере, если она ничего не делает?
инициализация генератора случайных чисел.
Цитата:
Человек с Dasik-а пришёл, Чего Вы от него хотите?:
Барсик может?
я с Делфи пришел, просто это синтаксическое правило языка, его надо знать первым.

ЗЫ: Basik.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
компилятор ругается novak3 Общие вопросы C/C++ 4 21.05.2011 01:58
Ругается компилятор.. CormiX Помощь студентам 0 14.05.2011 16:13
Sleep(1000); srand(time(0)) masashama Общие вопросы C/C++ 10 19.04.2011 16:58
srand((unsigned)time(&t)) Gula1706 Общие вопросы C/C++ 6 30.11.2010 10:37
вопрос time(NULL) Ceprey Общие вопросы C/C++ 5 07.03.2008 11:30