Задачи для начинающих
Зачем? Этот аспект мне интересен меньше всего.
-----
Затем, чтобы понимать что надо дать, как надо дать и что надо требовать чтобы удостоверится что до обучаемого "дошло" (цель обучения достигнута)...
А пока не "дошло" - следующий шаг бессмыслен - максимум - заучит наизусть что есть что и что забудет на следующий день, а навыка "сложить из того что есть" - не появится.
В случае задачи со светофором, по не озвученным тобою требованиям, требовалось сформулировать ДВА "если" или обеспечить ТРИ ветви выполнения кода.
Данное решение удовлетворит тебя (хотя мне лично непонятно почему), но не будет решением задачи по светофору.
как можно получить решение понятное начинающим
-----
Мне вообще не понятно как можно говорить об каком-то "понятном решении" не зная базиса который есть у того кто должен понять.
По условию у тебя начинающий, без предварительных знаний в программировании.
В моем понимании - есть три группы таковых:
- детсадовцы (без возможности понимать какие-то формализмы)
- школьники (с возможностью понимать формализмы)
- возрастные взрослые (закончившие школу до ИТ эры)
Группу - старшешкольники и молодые взрослые - опустил - т.к. у них есть предварительные знания в объеме школьного курса.
Для каждой группы все будет по-разному.
Для самой младшей группы тебе придется сделать физические предметы представляющие собой части решения и обучать и складывать в решение под мантру поясняющую что именно делается. Дней за 10-15 сложишь и будет моргать светофор. На самостоятельное повторение или модификацию - не рассчитывай - они на это еще не способны.
приходим к довольно простой главной функции
-----
Да? А они в школе функции проходили? Хотя бы на уровне определения функции как отображение из многих в одно соответствие?
И уж точно гарантировать
-----
Задекларируй как задачу что тебе надо написать условия проверки горения лампочек используя оператор-иф - если знают необходимый минимум - могут написать.
Модифицируй задачу - в полученном светофоре зажигать нужный набор лампочек по внешней команде.
Модифицируй задачу еще раз - написать контроллер светофора - что-то что будет сообщать что должно гореть...
А цикл, тем более - бесконечный цикл в который запихано ВСЕ - им еще долго изучать...