Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
anton6262906
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 17
#1

поясните что обозначает знак "?" в этой строке - C++

05.12.2011, 18:33. Просмотров 562. Ответов 9
Метки нет (Все метки)

for(x=x_srt;(dx>0) ? x<=x_end : x>=x_end ;x+=dx)

Добавлено через 1 минуту
и заодно знак двоеточие))
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2011, 18:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос поясните что обозначает знак "?" в этой строке (C++):

Дана строка символов. Определить, стоят ли подряд в этой строке символы "а" и "б" - C++
Дана строка символов. Определить, стоят ли подряд в этой строке символы &quot;а&quot; и &quot;б&quot;

Пожалуйтса обясните что обозначает оператор "~" в C++? - C++
Привет всем... Пожалуйтса обясните что обозначает оператор &quot;~&quot; в C++?

Объясните, что обозначает "->" - C++
В общем довольно глупый вопрос. В связных списках(и не только) часто используют это: -&gt; Объясните, что это обозначает(что делает).

Поменять знак " $ " на " * " к первому вхождению символа " ? " - C++
Помогите, пожалуйста, не пойму как написать чтобы меняло знак &quot; $ &quot; на &quot; * &quot; к первому вхождения символа &quot; ? &quot; . У меня меняется все не...

Совсем пустяковая проблема в функции - говорит что пропущен знак ";" - C++
Всем доброго здравия! Извините если чего не так.. Мы простые, деревенские.. В общем, всё просто. Я взял функцию из этого...

Что означает знак двойного двоеточия "::"? - C++
не могу я найти

9
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
05.12.2011, 18:34 #2
Делается проверка. Если dx > 0 , тогда проверяют x<=x_end иначе x>=x_end
То есть разветвление на 2 цикла, в зависимости от dx.
0
anton6262906
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 17
05.12.2011, 18:38  [ТС] #3
спасибо атоя уже не знал где искать и че делать..препод написал пояснить а я не знаю на щет этого..огромное спасибо еще раз..вы мне очень помогли)))
0
Bers
Заблокирован
05.12.2011, 18:40 #4
Цитата Сообщение от anton6262906 Посмотреть сообщение
for(x=x_srt;(dx>0) ? x<=x_end : x>=x_end ;x+=dx)
объявление цикла for условно говоря имеет три зоны:

for( инициализация_счетчика; условие_выхода_из_цикла; приращение_счетчика)


В твоём случае, во вторую зону запихали тернарный условный оператор

C++
1
(dx>0) ? x<=x_end : x>=x_end
Вся эта конструктива свернётся в маленькое выражение:
Если dx>0 будит истинно, то выражение свернётся в x<=x_end

Иначе, свернётся в x>=x_end

Таким образом, в зависимости от значения dx можно на лету менять условие выхода из цикла.

Имхо - это пример говнокода.
0
anton6262906
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 17
05.12.2011, 18:47  [ТС] #5
ака почему говнокода?какой код вам бы пришелся подуше?
0
Bers
Заблокирован
05.12.2011, 18:58 #6
Цитата Сообщение от anton6262906 Посмотреть сообщение
ака почему говнокода?какой код вам бы пришелся подуше?
говнокод - это не очевидный код. Запутанный. Такой, который сложно понять.
При чтении которого, приходится многое сразу держать в голове.

Например - учитывать, что условие выхода из цикла на каждой его итерации может измениться.
И постоянно контролировать - какое условие будит на этот раз?

Есть народная примета: код работает так же, как выглядит
0
anton6262906
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 17
05.12.2011, 19:05  [ТС] #7
ну вроде все же работает)
0
Bers
Заблокирован
05.12.2011, 19:18 #8
Цитата Сообщение от anton6262906 Посмотреть сообщение
ну вроде все же работает)
Есть такая теория, называется она "теория ошибок".

Согласно этой теории, все программисты ошибаются. При разработке любого продукта, часть времени тратится не на конструирование кода, а на исправление ошибок.

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

Поэтому, чем проще, и понятнее код, тем меньше программисту придётся затратить времени на его конструирование. Меньше придётся тратить времени на знакомство с отладчиком)

Если же ты допускаешь в своем коде неочевидные конструкции, по принципу "а! работает и ладно!" - будь готов к тому, что потом тебе придётся затратить раз в 10-100 больше времени на отладку, чем на собственно конструирование кода.

Если не дай бог, в будущем у тебя программа сфейлится где-то внутри этого цикла, ты потратишь значительно больше времени только на то, что бы понять, что вообще происходит в этом цикле, по сравнению с тем временем, которое у тебя могло бы уйти на написание более простого цикла.
0
easybudda
Модератор
Эксперт CЭксперт С++
9664 / 5614 / 952
Регистрация: 25.07.2009
Сообщений: 10,778
05.12.2011, 19:18 #9
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Bers Посмотреть сообщение
говнокод - это не очевидный код. Запутанный. Такой, который сложно понять.
При чтении которого, приходится многое сразу держать в голове.
Очередная оригинальная трактовка?
Цитата Сообщение от anton6262906 Посмотреть сообщение
ну вроде все же работает)
На самом деле очень сильно от задачи зависит. Если знак dx может меняться при каждой итерации, то код вполне очевиден...
3
Bers
Заблокирован
05.12.2011, 19:21 #10
Цитата Сообщение от easybudda Посмотреть сообщение
Очередная оригинальная трактовка?
Любителям писать 3х-этажные тернары в одном предложении, да ещё с рекурсией наверное виднее.
Пусть озвучат тогда свою трактовку
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2011, 19:21
Привет! Вот еще темы с ответами:

Ошибка выдаёт что «i» не было объявлено в этой области cout<<c[i]<<" "; - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;time.h&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; #include &lt;stdio.h&gt; #define b -2.1...

Что делать с этой ошибкой: "LNK2019: ссылка на неразрешенный внешний символ _WinMain@16"? - C++
Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ _WinMain@16 в функции...

Что означает знак " -> " в с++ - C++
собственно вопрос я уже в теме написал , что прошу - не надо объяснять , что да как , дайте всего лишь ссылку где более или менее подробно...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
05.12.2011, 19:21
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru