Справедливости ради - проще было бы state = !state;
. Нагляднее. Хрен проссышь иногда логику авторов этих книг ))
без схемы не разберёшься, что автор сказать хотел
Видимо попытались не начинать со страшных отрицающих операндов. Не стали сразу формировать негативное впечатление от кода.
Да все так. Только она по идее должна подавать через analogWrite при удержании кнопки яркость светодиоду. А тут в симуляции такого нет. Хотя прикольная штука.буду использовать. Я хотел, чтобы мне помогли понять код и разобрать его. Начал не с того по ходу.
Оно же меняется не само по себе. state же берет значение 0 или 1 откуда-то. А не просто хочу 0 или хочу 1 поставлю.
«Подключается тяжелая артиллерия!»)))
Как присваивается, так и принимается.
Гениально : )
Возможно, Вы будете удивлены, но тот факт, что код скомпилировался, совершенно нее гарантирует того, что он будет работать именно так, как задумал автор.
Вот Вам выше и намекают, что логика того, что Вы написали, сильно отличается от той логики, которую Вы хотели написать.
Это бессмысленный набор слов.
Не могли бы Вы как-то его переформулировать, чтобы это предложение обрело смысл?
У Ардуино нет стандартных переменных.
Поясните, пожалуйста, что Вы под этим подразумеваете.
Оно - это кто?
В какой строке?
Ни нашел ни одной подходящей стоки в Вашем сообщении.
Вообще же на форуме принято выкладывать код с номерами строк, чтобы всегда можно было сослаться на строку по ее номеру. Проигнорировав это простое правило, Вы сами себе сделали неудобство - отсутствие возможности указать номер строки.
По поводу сообщения 23: Вам ведь уже указали на ошибки, почему Вы их не исправляете?
Но в коде написано совсем другое!
Скажите, Вы прочитали хоть один учебник по языку С++?
Не по Ардуино, а именно по языку, в котором пытаетесь разобраться?
Вот это чушь и есть. У оператора if нет никакого результата state.
В программировании есть правило: если в коде обнаруживается ошибка (не важно какая), она исправляется и только после этого продолжается обсуждение.
Пока Вы не исправите ошибку, никто с Вами ни о чем другом говорить не будет.
Нет.
Да прочтите же, наконец, учебник!
Ошибки называются грамматическими. Но это в грамматике.
Ваши ошибки называются логическими. То есть теми, которые нарушают логику работы программы.
Есть еще ошибки синтаксические - на их наличие указывает компилятор. (логические ошибки компилятор распознать не в состоянии)
А надо то - всего-навсего прочитать учебник!
Ардуино вопреки рекламе - достаточно сложная штука.
Прежде, чем пытаться что-то сделать на Ардуино, следует получить хотя бы базовые основы схемотехники и программирования.
Именно!
Начинать нужно было с учебника.
state может брать любое значение в диапазоне от -32768 до +32767. Как Вы думаете, откуда?
Все переменные при запуске программы обнуляются. Т.е. изначально равно нулю. А дальше в #62 Дим-мычъ все расписал.
Вообще-то именно что хочу 0 или хочу 1 или хочу 222 - что хочу то и поставлю. Автор я или нет?
Ещё раз. В коде, что в сообщении #1 в начале программы объявляется глобальная переменная state , и ей присваивается значение state = 0; (Почитаете про инициализацию переменных).
Далее:
1-ый цикл: state = 1 - 0, значит state будет уже равно 1.
2-ой цикл : state = 1 - 1, значит state равно 0.
И.т.д.
Видимо потому, что авторство книги по программированию вовсе не означает, что автор программист. Иначе сложно понять, почему, например, переменная state
, которая используется исключительно как логическая, объявлена как int
, а не как bool
. И вообще складыватеся впечатление, что кроме int
других типов автор не знает. Оно-то конечно можно и так, но изначально учить программировать плохо не есть хорошо. Хотя, если цель просто срубить бабла на книжке, то понять можно )))
Робяты, там авторство за “Массимо Банци и Майкл Шайло”.
Бусурмане специально плохому учат )))
Массимо Банци — итальянский соучредитель проекта в сфере электроники Arduino, дизайнер взаимодействия, преподаватель и защитник оборудования с открытым исходным кодом.
В 2005 году в Институте дизайна взаимодействия города Ивреа его дипломная работа была посвящена Arduino. Arduino — недорогая микроконтроллерная плата, все схемы и исходные коды которой доступны бесплатно на условиях открытых лицензий.
Массимо Банци работал в Институте дизайна взаимодействия Ивреа, был техническим директором инкубатора Seat Ventures, а также архитектором программного обеспечения в Милане и Лондоне.
Майкл Шайло — адъюнкт-профессор Калифорнийского колледжа искусств, где он преподает электронику, программирование, робототехнику и мехатронику.
Получив диплом инженера-электротехника, Майкл работал в различных фирмах по производству потребительских товаров и встраиваемых систем, прежде чем обнаружил в себе стремление преподавать.
Майкл также предпочитает применять свои инженерные навыки в творческих и художественных проектах, а не в бытовых устройствах.
В общем, люди заслуженные, но таких мелочей, как типы данных и т.д. им с вершин не видно ))
просто они считают что проводить математические операции с булевыми данными некорректно, имеют право
Этим всё сказано! )
А где там математические операции? Это - state = 1 - state;
? Замечательно, инвертировать логическую переменную теперь можно только математическими операциями )))
Это называется разделение труда: кто умеет программировать - программирует. А кто умеет писать книжки - пишет книжки.
не обязательно, но он так считает видимо, я Страуструпа не читал, как правильно не знаю, когда писал на ассемлере у меня вообще типов данных не было, только байтики и что хочу с ними то и делаю
PS у нас дзен-буддистов как:
- Есть Я и есть не Я, я стану всем что не Я
- Есть Я и есть не Я, всё что не Я станет мной
или время разбрасывать камни, время собирать камни