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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2011, 15:36   #1
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
Вопрос Что обозначает ? в выражение

Как понимать этой выражение??? Просто видимо где запамятовал что это значит и не могу догнать и найти теперь чтото этого не могу

Код:
1000 <= n ? 1112
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.
Donatello вне форума Ответить с цитированием
Старый 20.01.2011, 15:45   #2
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию

Цитата:
Сообщение от Donatello Посмотреть сообщение
Как понимать этой выражение??? Просто видимо где запамятовал что это значит и не могу догнать и найти теперь чтото этого не могу

Код:
1000 <= n ? 1112
Вообще знак ? это тернарный оператор (Оператор который имеет три операнды.)
записывается так:
Код:
player=(player==1)?2:1;
тоисть переменная=(условие)?значение_1:зна чение_2;

помойму так
revaldo666 вне форума Ответить с цитированием
Старый 20.01.2011, 15:47   #3
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию

т.е. другими словами мое выражение читается так

если 1000 <= n, то n = 1112 ???? както так чтоли?
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.
Donatello вне форума Ответить с цитированием
Старый 20.01.2011, 15:53   #4
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Этот оператор используется для удобных подстановок, то есть вместо того, чтобы написать:
Код:
if (a>0)
{
   a = a + 1;
}
else
{
   a = a - 1;
}
мы можем написать:

a = a>0 ? (a + 1) : (a - 1)
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 20.01.2011, 16:04   #5
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию

чет не пойму как с этим работать. покрайне мере в моей задаче
Напишите операторы, которые присваивают случайные целые значения переменной n в след диапозонах.

Я сделал такой код

Код:
#include <iostream>
using namespace std;

#include <cstdlib>
using std::rand;
using std::srand;

int main()
{
    int na, nb, nc, nd, ne, nf;
    unsigned seed;

    cout << "Enter seed: ";
    cin >> seed;
    srand( seed );

    na = 1 + rand() % 2;
    nb = 1 + rand() % 100;
    nc = 0 + rand() % 9;
    nd = 1000 + rand() % 1112;
    ne = -1 + rand() % 1;
    nf = -3 + rand() % 11;

    cout << "1 <= " << na << " <= 2" << endl;
    cout << "1 <= " << nb << " <= 100" << endl;
    cout << "0 <= " << nc << " <= 9" << endl;
    cout << "1000 <= " << nd << " ? 1112" << endl;
    cout << "-1 <= " << ne << " <= 1" << endl;
    cout << "-3 <= " << nf << " <= 11" << endl;
    return 0;
}
Тут вроде все правильно работает вот только с этим диапозоном что я в первом посте писал, проблемы он не пишет ниже 1000 но выше 1112 пишет.
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.
Donatello вне форума Ответить с цитированием
Старый 20.01.2011, 16:04   #6
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию

ой глюк дабл пост сори
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.

Последний раз редактировалось Donatello; 20.01.2011 в 16:06.
Donatello вне форума Ответить с цитированием
Старый 20.01.2011, 16:38   #7
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

В приведённом тобой коде нет выражений с ?.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 20.01.2011, 21:41   #8
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию

Цитата:
nd = 1000 + rand() % 1112;

cout << "1000 <= " << nd << " ? 1112" << endl;
В данном случае я подразумевал этот кусочек, просто я не понял как записывать это выражение в коде С++ поэтому и обратился сюда. Просто в книге которую я читаю про эту операцию почти ничего нету, только что она читается с права на лево и все.
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.
Donatello вне форума Ответить с цитированием
Старый 21.01.2011, 13:45   #9
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Это какой-то обрубок тернарной операции.
http://ru.wikipedia.org/wiki/%D0%A2%...86%D0%B8%D1%8F
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что обозначает NaN? WitaliG Помощь студентам 6 22.11.2010 17:50
Что обозначает NaN? WitaliG Помощь студентам 2 21.11.2010 23:36
Что обозначает[inv] и [nbl]? Olya2131 Microsoft Office Access 7 10.06.2010 17:26
написать что обозначает каждая строчка Ozzzy Помощь студентам 2 31.05.2010 13:13