Конечные автоматы - для "школьников". Есть такое?

Сразу вопрос. Знает ли кто литературу по Конечным автоматам уровня “кружков ЮТ” ? Имеется в виду не результаты поиска в Гугле, а то, что вы пробовали.

Периодически встречаю советы сделать что то на “Конечных автоматах”. Или почитать про Конечные автоматы. Часто (если не всегда) такие советы даются людям, еще не разобравшимся с задержками на millis, и в целом только начинающим программировать.
Я сам не изучал конечные автоматы, то, что мне надо программировал без теории. Сейчас, заинтересовавшись, несколько раз пытался “почитать по Конечные автоматы”, но попадал или на литературу требующую владением теорией графов и может еще чего (я дальше графов не шел). Или на что то совсем простое, спорное и не вызывающее у меня доверия, настолько простое ,что возникает вопрос - зачем эта “теория” если есть “здравый смысл”.

Собственно вопрос - есть ли у кого ссылка на книгу по которой можно было бы объяснить конечные автоматы школьнику работающему с ардуино? Имеется в виду не результаты поиска в Гугле, а то, что вы пробовали.

P.S. Сам я давно не школьник.

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

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

угу, как раз столкнулся с таким посылом )))

примерно как Вы спросили бы на форуме БМВ-истов / Субаристов (условно) почему машина троит, а в ответ посоветовали бы разобраться с циклом Отто , для начала…

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

но раз послали знающие люди - то надо идти… :laughing:

Если ремонтировать, то да. Но Вы же «свою машину» создаёте… :wink:

:slight_smile:

Пробовал читать, но не пошло… Как добрался до кнопки- ступор, где состояние, где событие? По мне у кнопки два состояния и два события (нажата-не нажата, нажали-отпустили).

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

(Еще и в кавычки нужно цитату взять) думали как «бутерброд», когда искали бутерброд :smiley:

Первая глава вот этой книги даёт отличное понимание сути дела. И всё на пальцах, без упоминания каких-либо страшных терминов. Зачёт в универе по ней не сдадите (умных слов нет), но понимать суть дела малой будет твёрдо и “прощупанно”.

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

Причём, строится “обобщённый автомат”. Частные разновидности не особо рассматриваются, но они становятся очевидными после изучения материала.

1 лайк

Насколько я помню, вы тоже занимались с внуком программированием, но у вас большой опыт преподавания и вы способны сами понять как объяснить доходчиво, но не упуская сути. Я же сам не владею теорией, но если действительно важно дать школьнику понятие о конечных автоматах, то хотелось бы это сделать. Поэтому и спросил - есть ли что то “уровня кружка ЮТ” где объясняется и показывается как применять.
За ссылку спасибо, сам почитаю, но на первый взгляд - школьнику это будет трудновато.

а прсто пзу это КА? ведь на входе (адрес)-событие, на выходе (данные)-состояние

Студенты - это не совсем то. Если эта книга не подойдёт, можно связаться с Яшей Зайдельманом, может он чего посоветует. Он с начала восьмидесятых со школьниками возится без перерыва. Скажите, если надо, я свяжусь.

Не понял. Объясните по-другому :frowning:

Достоверным признаком события является переход состояния.

Попробую сначала прочитать по вашей ссылке. Может пойму как объяснить (или что не стоит оно того).

Может вам этот материал зайдет?
Если Английским владеете . Там именно что наглядно демонстрируется переход от «блинка без делей» к конечным автоматам и все это на ОСРВ

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

можно ли ПЗУ назвать конечным автоматом, если принять изменение адреса на его входе за событие, а изменение данных за изменение состояния? Например подключаем сид ы к шине данных, в результате изменений на шине адреса загораются сид ы в соответствии с данными, записанными по этому адресу

Всё является конечным автоматом. Что-то сложнее, что-то проще.
Если есть начало → действие → конец является конечным автоматом.

Простите, но я действительно (без тени стёба) не понимаю вопроса (возможно, это просто проф. деформация).

У конечного автомата нет данных (у него вообще памяти нет). Выходов у классического КА тоже нет (когда есть - это уже неклассический (расширенный) “КА с выходом”). Вот здесь я приводил точное определение КА и КА с выходом.