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

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

Восстановить пароль Регистрация
 
anton6262906
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 17
05.12.2011, 18:33     поясните что обозначает знак "?" в этой строке #1
for(x=x_srt;(dx>0) ? x<=x_end : x>=x_end ;x+=dx)

Добавлено через 1 минуту
и заодно знак двоеточие))
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
05.12.2011, 18:34     поясните что обозначает знак "?" в этой строке #2
Делается проверка. Если dx > 0 , тогда проверяют x<=x_end иначе x>=x_end
То есть разветвление на 2 цикла, в зависимости от dx.
anton6262906
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 17
05.12.2011, 18:38  [ТС]     поясните что обозначает знак "?" в этой строке #3
спасибо атоя уже не знал где искать и че делать..препод написал пояснить а я не знаю на щет этого..огромное спасибо еще раз..вы мне очень помогли)))
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 можно на лету менять условие выхода из цикла.

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

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

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

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

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

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

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

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

Поясните принцип работы паттерна "абстрактная фабрика" C++
Что означает знак двойного двоеточия "::"? C++
Во введённой строке требуется поменять все буквы "а" на "i", и наоборот C++

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

Или воспользуйтесь поиском по форуму:
Bers
Заблокирован
05.12.2011, 19:21     поясните что обозначает знак "?" в этой строке #10
Цитата Сообщение от easybudda Посмотреть сообщение
Очередная оригинальная трактовка?
Любителям писать 3х-этажные тернары в одном предложении, да ещё с рекурсией наверное виднее.
Пусть озвучат тогда свою трактовку
Yandex
Объявления
05.12.2011, 19:21     поясните что обозначает знак "?" в этой строке
Ответ Создать тему
Опции темы

Текущее время: 17:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru