такая тема: есть строка String a = "1 + 2", как сказать С++, что 1 + 2 это арифметическое выражение?
т.е. перефразирую, когда мы делаем int a = 1 + 2 или Serial.print(1 + 2), то интерпретатор языка воспринимает (1 + 2) как то, что мне нужно и во что я должен превратить строку а.
*в гугле нарыл на некие парсеры строки, но подозреваю, что всё должно быть проще, т.к. int a = 1 + 2 происходит без всяких сложных финтов.
Я такого способа не знаю. Только парсер и калькулятор. Flex, bison. Но это на больших компах, для МК не встречал.
В этой задаче куча не известных, не однозначных условий, задача без контекста применения имеет множество решений.
Итак, нафига это нужно?
я наваял редактор строки на стороне контроллера #76, а теперь хочу калькулятор в МК.
*оно должно быть возможно, ведь int а = 1 + 2 считается - нужно только указать, что 1 + 2 это содержимое строки.
**я знаю, как это сделать сложно, но хочу это делать как int а = 1 + 2
да, контекст: строка "(1 + 2) * (24 / 4)" как печатать знаем, как посчитать содержимое - не знаем.
вот и весь контекст.
Калькулятор делается немного не так.
Придумывается способ записи последовательности вычислительных операций удобный для обработки в МК. (строка символов к таковым не относится)
ДЛя данного способа записи делается процедура его преобразования в строку.
Эта строка выводится на экран.
Т.е. последовательность обраная Вашей: не строка преобразуется в последовательность вычислений, а удобная запись последовательности вычислений как преобразуется в строку (исключительно для вывода на дисплей), так и используется для собственно проведения вычислений.
Придумывается способ записи последовательности вычислительных операций удобный для обработки в МК. (строка символов к таковым не относится)
как-то ниочём.
andriano пишет:
ДЛя данного способа записи делается процедура его преобразования в строку.
Эта строка выводится на экран.
зачем на экран?
andriano пишет:
Т.е. последовательность обраная Вашей: не строка преобразуется в последовательность вычислений, а удобная запись последовательности вычислений как преобразуется в строку (исключительно для вывода на дисплей), так и используется для собственно проведения вычислений.
кароче - у меня уже есть строка символов и эту строку нужно распарсить в числа и математические символы методами String https://www.arduino.cc/en/Reference/StringObject и вернуть результат математического действия.
т.е. я не хочу чего-то несбыточного - всего то метод math() для String на стороне контроллера, аналогично length(), toInt() и прочих, уже существующих в String
кароче - у меня уже есть строка символов и эту строку нужно распарсить в числа и математические символы методами String https://www.arduino.cc/en/Reference/StringObject и вернуть результат математического действия.
Можно и так, только это немного сложнее. Собственно, при разборе строки Вам все равно нужно будет создавать стек, в который помещать результат этого разбора. А уже потом - выполнять из стека.
Можно и так, только это немного сложнее. Собственно, при разборе строки Вам все равно нужно будет создавать стек, в который помещать результат этого разбора. А уже потом - выполнять из стека.
слушай, да мне не важно, сложно это или нет - я не считаю своё желание уникальным и ищу готовый к употреблению инструмент для реализации.
*нашёл очень навороченное 6502 CPU emulator , но нафик такое не нужно - хочу простой калькулятор.
Это не противоречит моему сообщению.
А вообще, какая мелочь. Положил я в своё время 3000 рублей на сберкнижку, за что обещали большие проценты. Когда я через сто лет пришёл проверить состояние книжки, мне сказали "Вы пока книжку не выбрасывайте, будет компенсация", забавно, хмм.
Ну будет нефть по три рубля, курс доллара, рублей 200.
Впрочем ладно, молчу, философия тут бессильна
Его смутил не курс, а безграмотность лингвиста, стилистика, неподходящая для гламуров цветовая палитра и выбор гаммы
Я на это давно забил, внимания не обращаю, потому я и писал про три рубля, подразумевая именно эту сторону, само значение курса, а остальное - согласен, дезигнеры/девелоперы отжигают.
*ага, никто не удивляется, что для того, что бы что-то включить - нужно использовать выключатель.
В целом верно, именуем по более важному функционалу. Если не включит, обидно, но не смертельно, а если выключить не сможет, может и северный пушистый зверек придти.((((
В целом верно, именуем по более важному функционалу. Если не включит, обидно, но не смертельно, а если выключить не сможет, может и северный пушистый зверек придти.((((
у меня функционал - "старт -> стоп" и "стоп -> старт" идентичен по важности.
В целом верно, именуем по более важному функционалу. Если не включит, обидно, но не смертельно, а если выключить не сможет, может и северный пушистый зверек придти.((((
у меня функционал - "старт -> стоп" и "стоп -> старт" идентичен по важности.
Так я не про твой девайс, а по теме, почему выключатель - выключатель?
Можно использовать как префикс, собственно я так и предполагал, что будет switchState или что там.
Еще вспомнил, toggle
ок. спасибо.
муть полная с этими названиями переменных человеческими словами - думаю, ущербная методика.
Муть, это точно, потому что у одного один словарный запас, у другого другой. Есть ряд терминов общепринятых, обычно стараешься их и использовать. Собственно я и привел список того, что вспомнилось.
Оффтоп: у меня коллега лазит в словари за терминами, потом я названные им таблицы в базе данных ищу очень долго и нудно, матерясь. После этого, в очередной раз говорю ему про это. А делать нечего, либо установить железный принцип наименований, либо тотальный контроль, либо забить.
Значит у меня повышенная :)
*пометил в журнале обхода что кисофту больше не наливать.
Ок, налью сам ;)
Отметил в журнале, "если у больного случится перелив, слить излишки ржавой крови.."
Хорошо вчера налил, а, главное, выжил! ;)
Ржавая кровь - аналог хлорного железа? травит?
патентуем.
Да, травлю тех, кому не наливают :)
алё! гараж! выжепрограммисты!
такая тема: есть строка String a = "1 + 2", как сказать С++, что 1 + 2 это арифметическое выражение?
т.е. перефразирую, когда мы делаем int a = 1 + 2 или Serial.print(1 + 2), то интерпретатор языка воспринимает (1 + 2) как то, что мне нужно и во что я должен превратить строку а.
*в гугле нарыл на некие парсеры строки, но подозреваю, что всё должно быть проще, т.к. int a = 1 + 2 происходит без всяких сложных финтов.
спасибо.
Я такого способа не знаю. Только парсер и калькулятор. Flex, bison. Но это на больших компах, для МК не встречал.
В этой задаче куча не известных, не однозначных условий, задача без контекста применения имеет множество решений.
Итак, нафига это нужно?
я наваял редактор строки на стороне контроллера #76, а теперь хочу калькулятор в МК.
*оно должно быть возможно, ведь int а = 1 + 2 считается - нужно только указать, что 1 + 2 это содержимое строки.
**я знаю, как это сделать сложно, но хочу это делать как int а = 1 + 2
да, контекст: строка "(1 + 2) * (24 / 4)" как печатать знаем, как посчитать содержимое - не знаем.
вот и весь контекст.
Просто - никак.
1 + 2 это 2 объекта и "вызов метода"
"1 + 2" это один объект.
Просто - никак.
1 + 2 это 2 объекта и "вызов метода"
"1 + 2" это один объект.
ок. а, что такое 1 + 2 в int а = 1 + 2 ?
:D
Как я уже и написал:
Первый объект это "1"
Второй объект это "2"
"+" - условно говоря метод.
"а" - это новый объект
"int" - это тип которому должен соответствовать (или класс которому должен принадлежать) возвращаемый объект.
int a = 1+2; считает препроцессор, а его нет в момент выполнения программы
:D
Как я уже и написал:
Первый объект это "1"
Второй объект это "2"
"+" - условно говоря метод.
"а" - это новый объект
"int" - это тип которому должен соответствовать (или класс которому должен принадлежать) возвращаемый объект.
нифига - всё это текст в теле форума.
*свободен.
т.е. в С++ Дуино ИДЕ нет препроцессора для контроллера.
...или есть?
Есть, только во время компиляции
ок. я понял.
спасибо.
я наваял редактор строки на стороне контроллера #76, а теперь хочу калькулятор в МК.
*оно должно быть возможно, ведь int а = 1 + 2 считается - нужно только указать, что 1 + 2 это содержимое строки.
**я знаю, как это сделать сложно, но хочу это делать как int а = 1 + 2
да, контекст: строка "(1 + 2) * (24 / 4)" как печатать знаем, как посчитать содержимое - не знаем.
вот и весь контекст.
Калькулятор делается немного не так.
Придумывается способ записи последовательности вычислительных операций удобный для обработки в МК. (строка символов к таковым не относится)
ДЛя данного способа записи делается процедура его преобразования в строку.
Эта строка выводится на экран.
Т.е. последовательность обраная Вашей: не строка преобразуется в последовательность вычислений, а удобная запись последовательности вычислений как преобразуется в строку (исключительно для вывода на дисплей), так и используется для собственно проведения вычислений.
Калькулятор делается немного не так.
я внимательно...
Придумывается способ записи последовательности вычислительных операций удобный для обработки в МК. (строка символов к таковым не относится)
как-то ниочём.
ДЛя данного способа записи делается процедура его преобразования в строку.
Эта строка выводится на экран.
зачем на экран?
Т.е. последовательность обраная Вашей: не строка преобразуется в последовательность вычислений, а удобная запись последовательности вычислений как преобразуется в строку (исключительно для вывода на дисплей), так и используется для собственно проведения вычислений.
кароче - у меня уже есть строка символов и эту строку нужно распарсить в числа и математические символы методами String https://www.arduino.cc/en/Reference/StringObject и вернуть результат математического действия.
*всё происходит в контексте работы с терминалом для DigiUSB http://arduino.ru/forum/programmirovanie/terminal-dlya-digiusb
т.е. я не хочу чего-то несбыточного - всего то метод math() для String на стороне контроллера, аналогично length(), toInt() и прочих, уже существующих в String
теперь ты видел всё!
https://youtu.be/RDZu04v7_hc
кароче - у меня уже есть строка символов и эту строку нужно распарсить в числа и математические символы методами String https://www.arduino.cc/en/Reference/StringObject и вернуть результат математического действия.
Можно и так, только это немного сложнее. Собственно, при разборе строки Вам все равно нужно будет создавать стек, в который помещать результат этого разбора. А уже потом - выполнять из стека.
Можно и так, только это немного сложнее. Собственно, при разборе строки Вам все равно нужно будет создавать стек, в который помещать результат этого разбора. А уже потом - выполнять из стека.
слушай, да мне не важно, сложно это или нет - я не считаю своё желание уникальным и ищу готовый к употреблению инструмент для реализации.
*нашёл очень навороченное 6502 CPU emulator , но нафик такое не нужно - хочу простой калькулятор.
слушай, да мне не важно, сложно это или нет - я не считаю своё желание уникальным и ищу готовый к употреблению инструмент для реализации.
*нашёл очень навороченное 6502 CPU emulator , но нафик такое не нужно - хочу простой калькулятор.
Вот так всегда - идеи не нужны, нужно только готовое решение.
Писать - не хочу, гуглить - не хочу, зато знаю волшебное слово: ДАЙ!!!
delay(333);
после этого хабр для меня превратился в юмористический журнал
рубля за доллар
фубля - придёт же в голову такое.
Не, ну если 3 рубля, тогда @ля нормально!
Это не противоречит моему сообщению.
А вообще, какая мелочь. Положил я в своё время 3000 рублей на сберкнижку, за что обещали большие проценты. Когда я через сто лет пришёл проверить состояние книжки, мне сказали "Вы пока книжку не выбрасывайте, будет компенсация", забавно, хмм.
Ну будет нефть по три рубля, курс доллара, рублей 200.
Впрочем ладно, молчу, философия тут бессильна
Его смутил не курс, а безграмотность лингвиста, стилистика, неподходящая для гламуров цветовая палитра и выбор гаммы
Его смутил не курс, а безграмотность лингвиста, стилистика, неподходящая для гламуров цветовая палитра и выбор гаммы
Я на это давно забил, внимания не обращаю, потому я и писал про три рубля, подразумевая именно эту сторону, само значение курса, а остальное - согласен, дезигнеры/девелоперы отжигают.
народ, как называется действие изменяющее состояние старт в стоп и стоп в старт?
"пауза" - вроде не то, т.к. стоп в состоянии паузы - не явно понятно, что имеется ввиду.
*для внятного названия переменной нужно, что бы не писать длинный комментарий.
Прибор, осуществляющий сие действие, выключателем зовут. А названий у действия все таки два. Наверно так и пиши: startStop
Может, state_change? Смена состояния таки)
Прибор, осуществляющий сие действие, выключателем зовут. А названий у действия все таки два.
...или, включателем?
*ага, никто не удивляется, что для того, что бы что-то включить - нужно использовать выключатель.
Наверно так и пиши: startStop
startStop - это, когда "старт в стоп".
...или, включателем?
*ага, никто не удивляется, что для того, что бы что-то включить - нужно использовать выключатель.
В целом верно, именуем по более важному функционалу. Если не включит, обидно, но не смертельно, а если выключить не сможет, может и северный пушистый зверек придти.((((
В целом верно, именуем по более важному функционалу. Если не включит, обидно, но не смертельно, а если выключить не сможет, может и северный пушистый зверек придти.((((
у меня функционал - "старт -> стоп" и "стоп -> старт" идентичен по важности.
StartStopRevolt (SSRevolution) - :))))))))))
В целом верно, именуем по более важному функционалу. Если не включит, обидно, но не смертельно, а если выключить не сможет, может и северный пушистый зверек придти.((((
у меня функционал - "старт -> стоп" и "стоп -> старт" идентичен по важности.
Так я не про твой девайс, а по теме, почему выключатель - выключатель?
switch
edge
trigger
flipFlop
changeState
changeStatus
takeOff
спасибо - наверное switch заюзаю.
*блин. switch же уже используется в C++ же!
Там все места блатные расхватали...
Можно использовать как префикс, собственно я так и предполагал, что будет switchState или что там.
Еще вспомнил, toggle
Можно использовать как префикс, собственно я так и предполагал, что будет switchState или что там.
Еще вспомнил, toggle
ок. спасибо.
муть полная с этими названиями переменных человеческими словами - думаю, ущербная методика.
муть полная с этими названиями переменных человеческими словами - думаю, ущербная методика.
а чем революция не хороша? revolt (если коротко)
Можно использовать как префикс, собственно я так и предполагал, что будет switchState или что там.
Еще вспомнил, toggle
ок. спасибо.
муть полная с этими названиями переменных человеческими словами - думаю, ущербная методика.
Муть, это точно, потому что у одного один словарный запас, у другого другой. Есть ряд терминов общепринятых, обычно стараешься их и использовать. Собственно я и привел список того, что вспомнилось.
Оффтоп: у меня коллега лазит в словари за терминами, потом я названные им таблицы в базе данных ищу очень долго и нудно, матерясь. После этого, в очередной раз говорю ему про это. А делать нечего, либо установить железный принцип наименований, либо тотальный контроль, либо забить.
а чем революция не хороша? revolt (если коротко)
ну, смотри, как оно у меня выглядит:
старт, стоп,.. внезапно! революция - здрасте, я ваша тётя.
это называется ход, типа ходить. go_enable какое-нибудь.
0 -> 1 , 1 -> 0 - не нравится отрицание ? тогда можно inversion :)