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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2012, 20:43   #11
NewBoy
Пользователь
 
Аватар для NewBoy
 
Регистрация: 12.06.2012
Сообщений: 41
По умолчанию

Ребята, реально очень нужно!
NewBoy вне форума Ответить с цитированием
Старый 05.08.2012, 20:55   #12
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Да ладно, с ней, с репой.
Код:
AnsiString strName=AnsiString(rand() % 2 ? a : b);
А теперь, что это значит:
rand() - случайное число
rand() % 2 - остаток от деления на два, стало быть, 0 или 1
(x) ? a : b - если x (т.е. наше 0-1) истинно (равно true если булево или не равно нулю, для всех прочих типов, хоть указателей), то подставляется a, в противном случае (равно false или 0), то подставляется b.
Т.е. сгенерировали число, получили из него либо 0, либо 1, если 1 - подставили первый аргумент тернарного оператора ?: , если 0 - второй.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 05.08.2012, 21:14   #13
NewBoy
Пользователь
 
Аватар для NewBoy
 
Регистрация: 12.06.2012
Сообщений: 41
По умолчанию

Гром, спасибо, но у меня что-то не работает.
Код:
int a = 1;
char b = 'f';
AnsiString strName=AnsiString(rand() % 2 ? a : b);
Edit1->Text = strName;
В Edit выдаёт 1 или 102, хотя по идеи должен 1 или "f".

Что интересно, 102 это код "f"...

Блин, как же мне сделать? Я пропал...

Последний раз редактировалось Stilet; 05.08.2012 в 22:49.
NewBoy вне форума Ответить с цитированием
Старый 05.08.2012, 21:25   #14
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от NewBoy Посмотреть сообщение
Гром, спасибо, но у меня что-то не работает.
Код:
int a = 1;
char b = 'f';
AnsiString strName=AnsiString(rand() % 2 ? a : b);
Edit1->Text = strName;
В Edit выдаёт 1 или 102, хотя по идеи должен 1 или "f".
Код:
int a = 1;
char b = 'f';
AnsiString strName=rand() % 2 ? AnsiString(a) : b ;
Edit1->Text = strName;
_Bers вне форума Ответить с цитированием
Старый 05.08.2012, 21:58   #15
NewBoy
Пользователь
 
Аватар для NewBoy
 
Регистрация: 12.06.2012
Сообщений: 41
По умолчанию

Берс, спасибо, но компилятор выдал ошибку:
[BCC32 Error] Unit1.cpp(21): E2034 Cannot convert 'AnsiString' to 'char'

Люди, прошу вас, помогите, устроит любой способ

Сделал так:
Код:
{
int a = 1;
char b = 'f';
int c = rand()%(2 - 1 + 1) + 1;
if(c>=2)
{
AnsiString strColor=AnsiString(a);
Edit1->Text=strColor;
}
if(c<=1)
{
AnsiString strColor=AnsiString(b);
Edit1->Text=strColor;
}
Примитивно, но работает!

А нет, это мне не подходит, вариант Грома был бы в самый раз если бы работал. Всё ещё очень жду вашей помощи.

Последний раз редактировалось Stilet; 05.08.2012 в 22:50.
NewBoy вне форума Ответить с цитированием
Старый 05.08.2012, 23:00   #16
NewBoy
Пользователь
 
Аватар для NewBoy
 
Регистрация: 12.06.2012
Сообщений: 41
По умолчанию

Всем спасибо, проблему решил так:
Код:
int a = 1;
char b = 'f';
int c = rand()%(2 - 1 + 1) + 1;
if(c>=2)
{
AnsiString strColor=AnsiString(a);
Edit1->Text=strColor;
}
if(c<=1)
{
AnsiString strColor=AnsiString(b);
Edit1->Text=strColor;
}
AnsiString strColor=AnsiString(Edit1->Text);
}
NewBoy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить нули перед числом, чтобы длина числа получилась 8? artemavd Общие вопросы Delphi 2 07.07.2011 19:30
значение переменной перед выполением операторов незнайка_на_земле Помощь студентам 3 08.03.2011 01:14
Что означает знак & перед переменной в PHP ? SuBwooFer PHP 4 01.04.2010 15:17
Что значит OUT перед названией переменной в функции? TwiX Общие вопросы Delphi 3 14.11.2009 02:30
добавить колонтитул перед печатью elnurrr Microsoft Office Word 2 23.12.2007 17:34