Если я действительно сделал “правильно, хорошо и оптимально” можно так и сказать? Если нет - так я и обратился к Вам, что бы пояснили что я сделал не так …в коде …Там кода минимум, даже разбираться с Вашими знаниями не нужно… По алгоритму у меня порядок, у меня больше вопрос по указателям, как я передаю локальный массив по цепочке, я же не накосясил? Но Вы решили меня “обкакать”
Евгений, и тут Вы немного напутали… я не спрашивал в том сообщении, а наоборот показал человеку как живут переменные…
Я расценивал (и продолжаю расценивать) второй и третий абзацы поста №95 как серьёзную подсказку – материал для обдумывания и направление работы. Ещё раз выражаю сожаление, что вместо того, чтобы подумать о ней, Вы решили, я хотел Вас
Мне жаль, что Вы так восприняли пост, на который я потратил целый час. Но, это Ваше право – воспринимать те или иные посты так, или иначе.
Впрочем, всё это я Вам уже говорил и попрощался с Вами. Не понимаю, зачем Вы ещё раз ко мне обратились. До свиданья!
До свиданья, друг мой, до свиданья.
Милый мой, ты у меня в груди.
Предназначенное расставанье
Обещает встречу впереди…
Почему же… Как раз четко все в первом моем сообщении написано. И код, который я выложил тут абсолютно делает то, что и нужно. Скорее всего отвечающие не хотели вникнуть в суть вопроса… Мне жаль, что так получилось…
Посмотрите, все три мои варианта абсолютно одинаковый результат, но он отличается от кода с рекурсией…
Мне не нужна цепочка значений. Мне нужно всего лишь одно значение Индекс следующего возможного для выбора пункта, либо ноль, если таковых нет или был последний пункт…
Так же в моей программе Индекс текущего элемента сбрасывается в ноль, если он в данный момент выбран, но “где-то” там сделалось так, что теперь этот пункт(элемент) выбирать нельзя.
На экране это выглядит так: Была стрелочка возле этого пункта и пропала…
Да, сейчас начнутся новые возмущения… что так нельзя… что это неправильно… Но я поэтому с вами и ругаюсь, потому как вы не видя в целом начинаете делать выводы… У меня был вопрос, я его как можно подробнее описал, но оказалось, что этого мало, нужно еще инфы, но тут начинается ком…)))
Я не могу в “двух словах” сказать полную работу моей программы… А коротко оказывается тоже плохо ( Я попросил как можно оптимизировать работу функции, результат которой полностью и подробно описан в первом (#0) сообщении… Но тут на меня напали… я дурак, я делаю неправильно… Но сами-то отвечающие, смотрю, не слишком сильны… но мне сказать, что я дурак горазды все
А когда пойдут года, столетья
порастёт быльём аккаунт сей
он придёт, как новое виденье и…
насрёт на форум побыстрей.
а у меня сложилось впечатление что здесь не любят только ленивых

Вы так восприняли пост, на который я потратил целый час.
Я бы воспринял Ваш пост нормально, если бы Вы не читали тут этот спор ни о чем, а посмотрели мой первый пост(собственно вопрос) и код, который просили от меня Вам показать, и прокомментировали . А смотреть как я кусаюсь тут с теми, “кто выходит за границы массива”, но меня считают “неумехой”, ну зачем Вам это нужно?
Обязательно… именно так и будет)))
Только засирают тут этот форум сами же постояльцы
Я всегда с миром и добром прихожу… И по носам… по задранным щелкаю))) Шучу

а у меня сложилось впечатление что здесь не любят только ленивых
Здесь не ленивых не любят, а каждый хочет выглядеть в глазах соседа круче… а как это сделать, как не закуситься с “новичком”… потыкать его своими “знаниями” Обозвать как-нибудь нехорошо… стихи сочинить, да ссылку про мастурбацию кинуть…)
А конкретики нет ни у кого… Ни один ничего по моему коду не сказал толкового… Не нужно ничего придумывать, только мой код и что в нем не так. Алгоритм, еще раз, в первом посте расписан полностью…
К Евгению это не относится, его я понимаю, так как задел его на днях в другой теме и возможно он и из-за этого так ко мне сейчас… но это его право, но в том, что он знает и может разобрать мой код - я в этом уверен полностью.
Понимаю, что ветка так засрано, что тут черт ногу сломит… Но еще раз на всякий случай напишу, что мой вопрос касался по оптимизации алгоритма, а конце перерос в правильности использования мной указателей…
Если мил человек какой вникнет в мой вопрос, то я с удовольствием с ним пообщаюсь… код если что в # 75 под номером 3
Заранее спасибо этому человеку)

код если что в # 75 под номером 3
Ну или вот “в более правильном” варианте:
Спойлер
#define ITEM_COUNT 10
byte Ind;
byte * fillArr(byte Arr[], byte ArrCnt) {
for (byte n = 0; n < ArrCnt; n++) Arr[n] = random(2);
return Arr;
}
byte getNextIndex (byte CurrInd, const byte Arr[], byte itemCount) {
if (CurrInd >= itemCount) return 0;
for (byte n = CurrInd; n < itemCount; n++)
if (Arr[n]) return n + 1;
return 0;
}
void setup() {
Serial.begin(115200);
randomSeed(analogRead(A0));
}
void loop() {
byte IArr[ITEM_COUNT];
Ind = getNextIndex (Ind, fillArr(IArr, ITEM_COUNT), ITEM_COUNT);
Serial.println(Ind);
delay(500);
}
Основной суд над getNextIndex(). Небольшое замечание, эта функция последним
индексом ВСЕГДА вернет - 0 (т.е. это означает снять выделение с последнего выбранного пункта, так же это (индекс =0) говорит, что сейчас не выбран ни один пункт)
Выбранным (выделенным, пунктом со стрелочкой Пример на экране(Off >Off On))
может быть только один пункт, индекс которого должна вернуть getNextIndex

А кто говорил что другой?
Я не просто так у переменной массива в луп взял адрес переменной (&), а в других обращениях без амперсанда (или как он там этот крючок называется?) к переменным (т.н. параметрам) Но если в луп убрать амперсанд ничего не изменится… В данном случае я про код из # 90
Надеюсь, что я прав с указателями… Но пока никто не осмелился прокомментировать это по факту, а не просто: “Ты дурак, потому что я тут давно уже и я так хочу”

Локальные переменные в луупе живут один проход луупа.
Мне в принципе и нужно было ее(его - массив) сделать локальной, т.е. я массив сделал локально осмысленно , и пошел на “хитрость” передачи его в функцию, которая вернет результатом его же (т.е. переданный в функцию параметром массив) и передать дальше в другую функцию… Согласен, с глобальным (НЕ статик) массивом можно было бы не морочится с указателями, но две причины почему я так сделал. 1 - глобально - “зло”. Вторая - учится работать с указателями… И все таки три - экономия памяти. Пока я кнопку не нажму этого массива не существует…

, и пошел на “хитрость” передачи его в функцию, которая вернет результатом его же
это написан бред. В общем случае функция С не умеет возвращать массив, она возвращает указатель.
Ка я вижу, ты продолжаешь спорить с докторами о том, каким аспирином тебя кормить. Я что-то слышал о связи погребальных традиций и лечения сколиоза, кифоза и лордоза.
Код из №74, как ты и сам проверял, работоспособный. Содержащий потенциальные проблемы, очень “черезжопный”, но рабочий.
Кстати для программиста достаточно того, что рабочий. Можно не трахать мозги никому. Работает и барух хашем!
Потенциальные проблемы в использовании локального массива, про это тебе 100500 раз сказали.
“Черезжопный” код потому, для малого к-ва узлов выбора код чрезмерно усложнен.

это написан бред. В общем случае функция С не умеет возвращать массив, она возвращает указатель.
Это уже буквоедство… я про массивы-указатели выше Дим-димычу рассказывал…
Ок, скажу только что да, я в курсе что функция массив вернуть “не может”, а вертает указатель на него… Почему в кавычках “не может”? Насколько помню, если задать новый тип из массива, и потом результат функции можно уже этот тип назначать…Ошибаюсь?

Ка я вижу, ты продолжаешь спорить с докторами
Да ни с кем я не спорю… А пытаюсь выудить полезную информацию)))

“Черезжопный” код потому, для малого к-ва узлов выбора код чрезмерно усложнен.
Мой код усложнен? Сам алгоритм… или имеешь ввиду то, что я замутил с указателями?
Если сам алгоритм сложный ну покажи проще… только рабочий код, а не на словах… Если дело в указателях, то см выше… уже сказал почему так сделал

Ну и нужно было так сказать,
Имеющий глаза - увидит

Может все таки признаешь, что мой алгоритм круче чем ваш с BOOMom, а?
Во-первых, на брудершафт мы не пили. Во-вторых - да пофиг, конечно круче, круче вас, сударь, только вареные яйца

обсудим
Нет. Мне уже неинтересно, тему в черный список. Можете не отвечать, я уже не увижу
А я отвечу… не Вам(!) а всем)))

Имеющий глаза - увидит
Что именно я должен был увидеть?

Во-первых, на брудершафт мы не пили.
Ну сорян… тут все на меня накинулись, уже и не поймешь с кем на Вы а с кем так как и со мной)))

Мне уже неинтересно, тему в черный список. Можете не отвечать, я уже не увижу
А что Вы мне можете ответить? Если было что сказать по делу - сказали бы уже давно… в ветке скоро 150 сообщений будет и в основном брань… А обозвать меня, обругать, сказать что я дурак и свалить… это тут на форуме в норме… потому как злые вы тут все… Ну не все)))
Еще раз говорю, у меня был конкретный вопрос, зачем мне навязывать то что к вопросу не относится, какие-то меню рекурсию, которая возвращает не то что нужно… Если вопрос был не понятен, можно же уточнить, но зачем меня обвинять в неправильности действий??? Я написал алгоритм, можно же было сделать свою версию этого алгоритма не навязывая дополнительных условий, которые меняют суть вопроса, но улучшает и упрощает мою реализацию. В этом и был смысл вопроса, а оказалось, что я “говно” и попер против всех, потому как сам не знаю что хочу… Вот это точно бред. Я знаю, что вы все тут шибко умные и видите через стены все, но можно же было просто ответить по существу и не разводить этот бред на 100500 постов

можно же было сделать свою версию этого алгоритма не навязывая дополнительных условий,
Ты так ничего и не понял.
Нет, нельзя. Ты не ровня даже Бууму. И никто и не думал тебе “свои версии” показывать. Указали на ошибки - благодари… ну или не благодари. И конечно укажут на все ошибки, которые заметили.
А специалисты дальше первой ошибки просто читать не станут. На этом месте ты и ломаешься уже не первый раз. Начинаешь верещать: “Да я не аптом спрашивал!”. Никого не волнует о чем ты спрашивал. Ты показал что-то с ошибкой или бредовостью. Пока это место не будет закрыто, к твоему начальному вопросу никто и не подумает возвращаться.
Я честно пытался тебе это объяснить раньше, что не будет равного общения. Ну пока не подтянешься хотя бы до уровня Буума (пусть он меня простит за то, что поминаю всуе ).

Потенциальные проблемы в использовании локального массива,
Мыло мочало… Есть на железке кнопка, нажатие на которую активирует выбор неких пунктов. Далее с выбранным пунктом(элементом) можно сделать некое действие, к вопросу это не относится… Так вот кнопку хорошо если раз в месяц нажму… Более до последнего элемента, который можно выбрать этой кнопкой вообще дело может не дойти (если не трогать кнопку, то индекс автоматом сбрасывается в 0 через 15 секунд) Так зачем ради этого хранить массив глобально???

Ну пока не подтянешься хотя бы до уровня Буума
Ну или не опустишься?
Ваши мерки уровня моих знаний тут примитивны… это бесспорно Потому как вы себя просто считаете выше небес… богами, и только потому, что я не имею постоянного аккаунта. По сути это так.
Сам говоришь, что мой код работает. Но он типа быдлокод или как ты его там назвал, только потому что его написал я а не постоялец… С указателями тебя смутило? Тогда лучше скажи что именно я не правильно сделал… А просто говорить, что это потенциально опасно - ну и что? я не ОС пишу… а скетчик в пару килобайт памяти… что там может пойти не так??? Нет, данный код же ничего не сломает, тогда что??? Что не так в моем коде???)))