Как получилось положительное число?
- Войдите на сайт для отправки комментариев
Сб, 22/10/2016 - 17:23
Начинаю знакомиться с Ардуино. Раньше изучал основы языка С++. Загружая скетч из стандартных примеров из IDE Ардуино, и пытаясь понять логику кода, встретил совершенно непонятное превращение из отрицательного числа в положительное. Вот тот кусок:
if (brightness <= 0 || brightness >= 255) { fadeAmount = -fadeAmount; }
Если переменная brightness достигает значения 255, то fadeAmount получает отрицательное значение. Это я понимаю. Но если brightess <= 0, то как fadeAmount получает положительное число? Сколько ни смотрю, если brightess <=0, то fadeAmount должен опять получить -5, в результате операции присвоения -5 = -5. А получается, в результате какого-то незнакомого мне, видимо, правила, +5. Кто-нибудь знает, в чем тут хитрость?
Вы имеете в виду то, что
сделают из -5 опять -5?
Если так, то у вас проблемы с математикой уровня 6 класса и вы не знаете, что такое противоположное число.
// та ладно fadeAmount = -fadeAmount; // радуйся что не так fadeAmount = ! fadeAmount; // или так
Вы имеете в виду то, что
сделают из -5 опять -5?
Тут я имел в виду операцию присвоения fadeAmount, где уже содержится -5, отрицательного числа из того же самого fadeAmount, содержащего -5. Я в курсе, что в результате чисто математической операции -5 -5 получится 0. Так вот, непонятно, откуда берется положительное число 5 в переменной fadeAmount!
Зачем вы так, он с ума сейчас сойдет :)
"в результате операции присвоения -5 = -5. А получается, в результате какого-то незнакомого мне, видимо, правила, +5. "
Судя вот поэтому, он не понимает вообще что такое присвоение
Получается, выражение х = -х означает "присвоить х противоположное число", а не "присвоить х х, но с минусом"?
Да там просто пока значение от 0 до 255 фейдамаунт равный 5 прибавляется, а когда значение стало 255 или 260, т.е >= 255, то фейдамаунт начинает вычитаться, и когда зачение становится 0, то фейдамаунт начинает опять плюсоваться. И так бесконечно.
NikitaS, скобки вместо вас в это выражение "подставил" компилятор
...Я в курсе, что в результате чисто математической операции -5 -5 получится 0...
-5-5 будет -10, сударь...
Идите сюда https://ru.wikipedia.org/wiki/Противоположное_число
Там написано
if (brightness == 0 || brightness == 255) {
Да там просто пока значение от 0 до 255 фейдамаунт равный 5 прибавляется, а когда значение стало 255 или 260, т.е >= 255, то фейдамаунт начинает вычитаться, и когда зачение становится 0, то фейдамаунт начинает опять плюсоваться. И так бесконечно.
Это я понимаю. И понимаю даже, что значит ||. Единственное, что непонятно, это как получается, когда fadeAmount равно нулю, получается положительное число 5, когда в fadeAmount пытаются присвоить отрицательное число. Но благодаря форумчанам, начинает проясняться, что в Ардуино есть доселе мне неизвестная операция (хотя я изучал основы С++), х = -х, означающая "присвоить x противоположное значение". Я эту операцию читал как "присвоить х значение х, но только с минусом". Оказывается, не все то золото, что блестит. То есть иногда суть может отличаться от зримого.
Да там просто пока значение от 0 до 255 фейдамаунт равный 5 прибавляется, а когда значение стало 255 или 260, т.е >= 255, то фейдамаунт начинает вычитаться, и когда зачение становится 0, то фейдамаунт начинает опять плюсоваться. И так бесконечно.
Это я понимаю. И понимаю даже, что значит ||. Единственное, что непонятно, это как получается, когда fadeAmount равно нулю, получается положительное число 5, когда в fadeAmount пытаются присвоить отрицательное число. Но благодаря форумчанам, начинает проясняться, что в Ардуино есть доселе мне неизвестная операция (хотя я изучал основы С++), х = -х, означающая "присвоить x противоположное значение". Я эту операцию читал как "присвоить х значение х, но только с минусом". Оказывается, не все то золото, что блестит. То есть иногда суть может отличаться от зримого.
А фейдамаунт в данном примере ни когда не будет равным нулю. Он будет или 5 или -5.
А нулю иногда будет равна брайшест, т.е. от 0 до 255 и от 255 до 0 с шагом 5, туда и обратно.
NikitaS, решите уравнение:
Чему равен Х?
Это, я так понимаю, математическое уравнение, а не присвоение на языке программирования? В этом случае х равен -5.
Я в шоке, сколько вам лет ?
А если вот так
Рискну предположить, что до средней школы вы не дошли, NikitaS?
Почему-то я в 10 классе догвадываюсь, что x будет равен 5...(деление обеих частей уравнения на одинаковое число, не содержащее неизвестное и не равное нулю)
Рискну предположить, что до средней школы вы не дошли, NikitaS?
Почему-то я в 10 классе догвадываюсь, что x будет равен 5...(деление обеих частей уравнение на одинаковое число, не содержащее неизвестное и не равное нулю)
Мне тоже кажется, что не дошел я до средней школы )). Вот вы в скобках написали: не содержащее неизвестное... Тем временем уравнение, предложенное вами, как раз содержит х, то есть неизвестное. Может, у вас какая-то ошибка имеется, в таком случае? Я никоим образом не подвергаю ваши знания сомнению, просто стало интересно.
Я в шоке, сколько вам лет ?
А если вот так
Мои лета - это уже оффтопик ). А ваше уравнение я решил бы так: -(х)5.
Пиз..ц !!! (ну просто нет слов)
Решение уравнения это нахождение неизвестного(ых), в нашем случае x.
Что за бред вы написали ?
Так. Выдыхаааем. Углубимся в математику.
Тем временем уравнение, предложенное вами, как раз содержит х, то есть неизвестное.
Уравнения не могут не содержать неизвестных, на то они и уравнения...высказывание насчёт не содержащего неизвестное - сюда:
...деление обеих частей уравнения на одинаковое число, не содержащее неизвестное и не равное нулю...
А вот это я не понял:
А ваше уравнение я решил бы так: -(х)5.
Объясните? Интересно самому...
Мои лета - это уже оффтопик ).
Я просто пытаюсь понять, ваша тупость это возрастное или элементарная необразованность.
...деление обеих частей уравнения на одинаковое число, не содержащее неизвестное и не равное нулю...
Теперь понятно, был невнимателен при чтении.
А вот это я не понял:
Объясните? Интересно самому...
Тут тоже упустил из виду значение слова "уравнение". В свете обновленных знаний в математике, сейчас бы решил уравнение так: так как неизвестно, что скрывается под х, то -(-х) равно -(-5). В математике же знак = не означает присвоения, так? А означает равно, вот и выходит, что -(-х) равно -(-5).
Ну давай родной, давай....
Чему равен x ?
х равен -(-5). Пишу на случай, если вы не увидели предыдущего моего сообщения.
Ура !!!
Сынок, напряги еще раз извилину, -(-5) это не число , а выражение, как теперь раскрыть (убрать) скобки ?
Я верю в тебя, не подведи !!!
Блин . Здесь форум программирования, а не математиков. Да еще ардуинщиков. И для ардуинщиков это выражение (2>1) даст 1 , а не то что там кто-то придумает а вот (2<1) будет 0. И если компилятор пропустит дествие -Х=-(-5) даст что в Х будет находится 5: а вот --Х или х-- инкрементирует х на 1. Синтаксис языка Си господствует здесь, а не правила математики.
Напрягши извилину до предела, добыл инфу, что минус на минус дает плюс, в нашем случае +5. Теперь понял, почему присвоение -5 переменной fadeAmount, содержащей -5, дает 5. Всем спасибо за помощь в устранении пробела в образовании!
И если компилятор пропустит дествие -Х=-(-5) даст что в Х будет находится 5:
не пропустит.
NikitaS удачи.
И понимаю даже, что значит ||.
Этого Вы не понимаете. Отсюда и возник весь сырбор. Если бы Вы это понимали, у Вас бы не возник этот вопрос.
при выводе температуры на "Большие светодиодные часы на arduino" можно тоже так с отрицательными температурами играться ?
при выводе температуры на "Большие светодиодные часы на arduino" можно тоже так с отрицательными температурами играться ?
Жека, в этой старой теме никто не игрался, она на самом деле очень печальная... взрослому человеку на протяжении 30 сообщений втолковывали правило арифметики "минус на минус дает плюс". Это или маразм или тупость... в любом случае веселого мало.
Да уж, это со школы забыть или не знать: -x = (-1)x, следовательно (-1)(-1)x = (1)x.
Пичалька....
при выводе температуры на "Большие светодиодные часы на arduino" можно тоже так с отрицательными температурами играться ?
Жека, в этой старой теме никто не игрался, она на самом деле очень печальная... взрослому человеку на протяжении 30 сообщений втолковывали правило арифметики "минус на минус дает плюс". Это или маразм или тупость... в любом случае веселого мало.