Помогите новичку!

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Значит у меня повышенная :)

 

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

*пометил в журнале обхода что кисофту больше не наливать.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Ок, налью сам ;)

Probelzaelo
Offline
Зарегистрирован: 15.04.2011

Отметил в журнале, "если у больного случится перелив, слить излишки ржавой крови.."

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Хорошо вчера налил, а, главное, выжил! ;)

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Ржавая кровь - аналог хлорного железа? травит?

патентуем. 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Да, травлю тех, кому не наливают :)

Клапауций 777
Offline
Зарегистрирован: 21.11.2015

алё! гараж! выжепрограммисты!

такая тема: есть строка String a = "1 + 2", как сказать С++, что 1 + 2 это арифметическое выражение?

т.е. перефразирую, когда мы делаем int a = 1 + 2 или Serial.print(1 + 2), то интерпретатор языка воспринимает (1 + 2) как то, что мне нужно и во что я должен превратить строку а.

*в гугле нарыл на некие парсеры строки, но подозреваю, что всё должно быть проще, т.к. int a = 1 + 2 происходит без всяких сложных финтов.

спасибо.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Я такого способа не знаю. Только парсер и калькулятор. Flex, bison. Но это на больших компах, для МК не встречал.
В этой задаче куча не известных, не однозначных условий, задача без контекста применения имеет множество решений.
Итак, нафига это нужно?

Клапауций 777
Offline
Зарегистрирован: 21.11.2015

kisoft пишет:
Итак, нафига это нужно?

я наваял редактор строки на стороне контроллера #76, а теперь хочу калькулятор в МК.

*оно должно быть возможно, ведь int а = 1 + 2 считается - нужно только указать, что 1 + 2 это содержимое строки.

**я знаю, как это сделать сложно, но хочу это делать как int а = 1 + 2

да, контекст: строка "(1 + 2) * (24 / 4)" как печатать знаем, как посчитать содержимое - не знаем.

вот и весь контекст.

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

Просто - никак.

1 + 2 это 2 объекта и "вызов метода"

"1 + 2" это один объект.

Клапауций 777
Offline
Зарегистрирован: 21.11.2015

JollyBiber пишет:

Просто - никак.

1 + 2 это 2 объекта и "вызов метода"

"1 + 2" это один объект.

ок. а, что такое 1 + 2 в int а = 1 + 2 ?

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

:D

Как я уже и написал:

Первый объект это "1"

Второй объект это "2"

"+" - условно говоря метод.

"а" - это новый объект

"int" - это тип которому должен соответствовать (или класс которому должен принадлежать) возвращаемый объект.

 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

int a = 1+2; считает препроцессор, а его нет в момент выполнения программы

Клапауций 777
Offline
Зарегистрирован: 21.11.2015

JollyBiber пишет:

:D

Как я уже и написал:

Первый объект это "1"

Второй объект это "2"

"+" - условно говоря метод.

"а" - это новый объект

"int" - это тип которому должен соответствовать (или класс которому должен принадлежать) возвращаемый объект.

нифига - всё это текст в теле форума.

*свободен.

Клапауций 777
Offline
Зарегистрирован: 21.11.2015

kisoft пишет:
int a = 1+2; считает препроцессор, а его нет в момент выполнения программы

т.е. в С++ Дуино ИДЕ нет препроцессора для контроллера.

...или есть?

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Есть, только во время компиляции

Клапауций 777
Offline
Зарегистрирован: 21.11.2015

kisoft пишет:
Есть, только во время компиляции

ок. я понял.

спасибо.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Клапауций 777 пишет:

kisoft пишет:
Итак, нафига это нужно?

я наваял редактор строки на стороне контроллера #76, а теперь хочу калькулятор в МК.

*оно должно быть возможно, ведь int а = 1 + 2 считается - нужно только указать, что 1 + 2 это содержимое строки.

**я знаю, как это сделать сложно, но хочу это делать как int а = 1 + 2

да, контекст: строка "(1 + 2) * (24 / 4)" как печатать знаем, как посчитать содержимое - не знаем.

вот и весь контекст.

Калькулятор делается немного не так.

Придумывается способ записи последовательности вычислительных операций удобный для обработки в МК. (строка символов к таковым не относится)

ДЛя данного способа записи делается процедура его преобразования в строку.

Эта строка выводится на экран.

Т.е. последовательность обраная Вашей: не строка преобразуется в последовательность вычислений, а удобная запись последовательности вычислений как преобразуется в строку (исключительно для вывода на дисплей), так и используется для собственно проведения вычислений.

Клапауций 321
Offline
Зарегистрирован: 17.12.2015

andriano пишет:

Калькулятор делается немного не так.

я внимательно...

andriano пишет:

Придумывается способ записи последовательности вычислительных операций удобный для обработки в МК. (строка символов к таковым не относится)

как-то ниочём.

andriano пишет:

ДЛя данного способа записи делается процедура его преобразования в строку.

Эта строка выводится на экран.

зачем на экран?

andriano пишет:

Т.е. последовательность обраная Вашей: не строка преобразуется в последовательность вычислений, а удобная запись последовательности вычислений как преобразуется в строку (исключительно для вывода на дисплей), так и используется для собственно проведения вычислений.

кароче - у меня уже есть строка символов и эту строку нужно распарсить в числа и математические символы методами String https://www.arduino.cc/en/Reference/StringObject и вернуть результат математического действия.

*всё происходит в контексте работы с терминалом для DigiUSB http://arduino.ru/forum/programmirovanie/terminal-dlya-digiusb 

т.е. я не хочу чего-то несбыточного - всего то метод math() для String на стороне контроллера, аналогично length(), toInt() и прочих, уже существующих в String

Клапауций 321
Offline
Зарегистрирован: 17.12.2015

теперь ты видел всё!

https://youtu.be/RDZu04v7_hc

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Клапауций 321 пишет:

кароче - у меня уже есть строка символов и эту строку нужно распарсить в числа и математические символы методами String https://www.arduino.cc/en/Reference/StringObject и вернуть результат математического действия.

Можно и так, только это немного сложнее. Собственно, при разборе строки Вам все равно нужно будет создавать стек, в который помещать результат этого разбора. А уже потом - выполнять из стека.

Клапауций 111
Offline
Зарегистрирован: 26.12.2015

andriano пишет:

Можно и так, только это немного сложнее. Собственно, при разборе строки Вам все равно нужно будет создавать стек, в который помещать результат этого разбора. А уже потом - выполнять из стека.

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

*нашёл очень навороченное 6502 CPU emulator , но нафик такое не нужно - хочу простой калькулятор.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Клапауций 111 пишет:

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

*нашёл очень навороченное 6502 CPU emulator , но нафик такое не нужно - хочу простой калькулятор.

Вот так всегда - идеи не нужны, нужно только готовое решение.

Писать - не хочу, гуглить - не хочу, зато знаю волшебное слово: ДАЙ!!!

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

delay(333);

после этого хабр для меня превратился в юмористический журнал

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

рубля за доллар

фубля - придёт же в голову такое.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Не, ну если 3 рубля, тогда @ля нормально!

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

kisoft пишет:
Не, ну если 3 рубля, тогда @ля нормально!

 

81,56
рубля за доллар
kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Это не противоречит моему сообщению.
А вообще, какая мелочь. Положил я в своё время 3000 рублей на сберкнижку, за что обещали большие проценты. Когда я через сто лет пришёл проверить состояние книжки, мне сказали "Вы пока книжку не выбрасывайте, будет компенсация", забавно, хмм.
Ну будет нефть по три рубля, курс доллара, рублей 200.
Впрочем ладно, молчу, философия тут бессильна

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

Его смутил не курс, а безграмотность лингвиста, стилистика, неподходящая для гламуров цветовая палитра и выбор гаммы

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

JollyBiber пишет:

Его смутил не курс, а безграмотность лингвиста, стилистика, неподходящая для гламуров цветовая палитра и выбор гаммы

Я на это давно забил, внимания не обращаю, потому я и писал про три рубля, подразумевая именно эту сторону, само значение курса, а остальное - согласен, дезигнеры/девелоперы отжигают.

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

Гриша
Offline
Зарегистрирован: 27.04.2014

Клапауций 322 пишет:

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

народ, как называется действие изменяющее состояние старт в стоп и стоп в старт?

"пауза" - вроде не то, т.к. стоп в состоянии паузы - не явно понятно, что имеется ввиду.

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

bwn
Offline
Зарегистрирован: 25.08.2014

Прибор, осуществляющий сие действие, выключателем зовут. А названий у действия все таки два. Наверно так и пиши: startStop

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Может, state_change? Смена состояния таки)

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

bwn пишет:

Прибор, осуществляющий сие действие, выключателем зовут. А названий у действия все таки два.

...или, включателем?

*ага, никто не удивляется, что для того, что бы что-то включить - нужно использовать выключатель.

bwn пишет:

Наверно так и пиши: startStop

startStop - это, когда "старт в стоп".

bwn
Offline
Зарегистрирован: 25.08.2014

Клапауций 322 пишет:

...или, включателем?

*ага, никто не удивляется, что для того, что бы что-то включить - нужно использовать выключатель.

В целом верно, именуем по более важному функционалу. Если не включит, обидно, но не смертельно, а если выключить не сможет, может и северный пушистый зверек придти.((((

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

bwn пишет:

В целом верно, именуем по более важному функционалу. Если не включит, обидно, но не смертельно, а если выключить не сможет, может и северный пушистый зверек придти.((((

у меня функционал - "старт -> стоп" и "стоп -> старт" идентичен по важности.

Гриша
Offline
Зарегистрирован: 27.04.2014

StartStopRevolt   (SSRevolution) - :))))))))))

bwn
Offline
Зарегистрирован: 25.08.2014

Клапауций 322 пишет:

bwn пишет:

В целом верно, именуем по более важному функционалу. Если не включит, обидно, но не смертельно, а если выключить не сможет, может и северный пушистый зверек придти.((((

у меня функционал - "старт -> стоп" и "стоп -> старт" идентичен по важности.

Так я не про твой девайс, а по теме, почему выключатель - выключатель?

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

switch
edge
trigger
flipFlop
changeState
changeStatus
takeOff

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

kisoft пишет:
switch edge trigger flipFlop changeState changeStatus takeOff

спасибо - наверное switch заюзаю.

*блин. switch же уже используется в C++ же!

Там все места блатные расхватали...

 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Можно использовать как префикс, собственно я так и предполагал, что будет switchState или что там.

Еще вспомнил, toggle

 

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

kisoft пишет:

Можно использовать как префикс, собственно я так и предполагал, что будет switchState или что там.

Еще вспомнил, toggle

ок. спасибо.

муть полная с этими названиями переменных человеческими словами - думаю, ущербная методика.

Гриша
Offline
Зарегистрирован: 27.04.2014

Клапауций 322 пишет:

муть полная с этими названиями переменных человеческими словами - думаю, ущербная методика.

а чем революция не хороша? revolt (если коротко)

революция   revolution
	
оборот   turnover, turn, revolution, rev, turnaround, phrase
	
переворот   revolution, upheaval, overturn, takeover, cataclysm
	
вращение    rotation, turning, spin, revolution, roll, twirl
	
полный оборот   revolution
	
цикл   cycle, series, round, circle, circuit, revolution
	
кругооборот   circuit, cycle, revolution, bout
	
круговое вращение   revolution
		
периодическое возвращение   revolution

 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Клапауций 322 пишет:

kisoft пишет:

Можно использовать как префикс, собственно я так и предполагал, что будет switchState или что там.

Еще вспомнил, toggle

ок. спасибо.

муть полная с этими названиями переменных человеческими словами - думаю, ущербная методика.

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

Оффтоп: у меня коллега лазит в словари за терминами, потом я названные им таблицы в базе данных ищу очень долго и нудно, матерясь. После этого, в очередной раз говорю ему про это. А делать нечего, либо установить железный принцип наименований, либо тотальный контроль, либо забить.

 

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

Гриша пишет:

а чем революция не хороша? revolt (если коротко)

ну, смотри, как оно у меня выглядит:

void stop()       {s =  0;}
void start()      {s =  1;}
void start_stop() {s = !s;} // ???

старт, стоп,.. внезапно! революция - здрасте, я ваша тётя.

std
Offline
Зарегистрирован: 05.01.2012

это называется ход, типа ходить. go_enable какое-нибудь.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

0 -> 1 , 1 -> 0 - не нравится отрицание ? тогда можно inversion :)