Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

NoName
2019-09-30 22:51:36
Homo Faber пише:

Отлично! Всё получилось, Вы безусловно правы "Х-1", вот где собака порылась!
Спасибо огромное.
Я всегда говорил, что Си - не самый лучший язык, в связи с дебильностью неудобством и неоднозначностью конструкций, сейчас получил очередное доказательство.
Ещё раз спасибо!!!!

ROFL
благодарю, улыбнуло  )

Homo Faber
2019-09-28 14:48:00

Ню-ню...  tongue

Avazart
2019-09-28 12:38:31

https://forum.arduino.ua/edit.php?id=29353#
Решил сделать по аналогии.

А вышло по АНАЛОгии. )))
Копипаст через опу  не канает, нужно вникать в то как оно работает.

что выходит за рамки этих "заученностей" автоматически зачисляется в "быдлокод"?

По сути да программирование это не картины маслом писать.
На "я ХУДОжник, я так вижу" следует  "пошел со своим кодом .."


сейчас получил очередное доказательство.

Остальные же наблюдают как еще один неосилятор слился.


P.S.:

digitalWrite(segmentsPins[7], (i == 1 ?  HIGH : LOW));

Так то же не пишут, можно более кратко

digitalWrite(segmentsPins[7], i==1);
Watchdog
2019-09-28 09:33:11
Homo Faber пише:

Отлично! Всё получилось, Вы безусловно правы "Х-1", вот где собака порылась!
Спасибо огромное.
Я всегда говорил, что Си - не самый лучший язык, в связи с дебильностью неудобством и неоднозначностью конструкций, сейчас получил очередное доказательство.
Ещё раз спасибо!!!!

Идеальных языков программирования и компиляторов не бывает. C/C++ один из самых общепризнанных языков системного программирования, вопреки всем пересудам некотрых теоретиков.

Homo Faber
2019-09-28 09:24:27

Отлично! Всё получилось, Вы безусловно правы "Х-1", вот где собака порылась!
Спасибо огромное.
Я всегда говорил, что Си - не самый лучший язык, в связи с дебильностью неудобством и неоднозначностью конструкций, сейчас получил очередное доказательство.
Ещё раз спасибо!!!!

Watchdog
2019-09-28 09:12:29
Homo Faber пише:
Watchdog пише:

Тернарный оператор это функция или выражение. X = X==0 ? Z : X--;

Попробовал, результат тот же самый.

Kaka пише:

НИ грамма не эквивалентно.

Поясните почему? Ведь в обоих случаях проверяется значение Х, и в зависимости от результата проверки присваивается новое значение.

Возможно, потому, что декремент Х постфиксный. Я привел это выражение как шаблон. Теоретически: X = X==0 ? Z : X--; <=> X = X==0 ? Z : X-1; Но практика, к сожалению, не всегда совпадает с теорией. Придайте ему необходимый вам смысл самосточтельно;

Homo Faber
2019-09-28 08:48:31
Watchdog пише:

Тернарный оператор это функция или выражение. X = X==0 ? Z : X--;

Попробовал, результат тот же самый.

Kaka пише:

НИ грамма не эквивалентно.

Поясните почему? Ведь в обоих случаях проверяется значение Х, и в зависимости от результата проверки присваивается новое значение.

Homo Faber
2019-09-28 08:30:41

Взято по аналогии из вот такого выражения:

digitalWrite(segmentsPins[7], (i == 1 ?  HIGH : LOW));

И в этом примере всё работает прекрасно. Решил сделать по аналогии. Но что-то пошло не так...
По поводу обработки кнопки, просто взято из скетча, там у меня стоит такое примечание, забыл убрать.
А по поводу "быдлокода", это выражение из серии: "Тут так не роблять?" Выучив для себя определённые последовательности выражений (программных), всё, что выходит за рамки этих "заученностей" автоматически зачисляется в "быдлокод"?

vvr
2019-09-28 08:09:04

а нафига в обработке кнопки это использовать.

Avazart
2019-09-27 23:53:02
X, (X==0 ? Z : X--);

Это быдлокод, нормальные люди так не пишут. По тому что не читается, так еще можно нарваться на "точки следования".
Используйте if.

Kaka
2019-09-27 23:03:02
Homo Faber пише:

Что эквивалентно:

НИ грамма не эквивалентно.

Что там вообще делает операция запятая?

Watchdog
2019-09-27 21:36:46

Тернарный оператор это функция или выражение. X = X==0 ? Z : X--;

Homo Faber
2019-09-27 21:19:44

Хочу использовать тернарный оператор при программировании, но имеется заковыка.
Вот код:

int Z=4;
int X=1;
// Обработка нажатия кнопок
X, (X==0 ? Z : X--);

Что эквивалентно:

int Z=4;
int X=1;
// Обработка нажатия кнопок
if (X==0) X=MenX;
else X--;

Второй вариант работает без проблем, а в случае использования тернарного оператора пока Х>0, всё работает, но при X==0, не происходит присвоения ему (Х) значения Z.
Кто-нибудь использовал тернарные операторы в своей практике?
Заранее спасибо всем откликнувшимся.

Підвал форуму