Каков хороший способ определить «состояние», как в переменной состояния или конечном автомате, для нового (ранее не) программиста? Какие есть хорошие способы объяснить, почему эта концепция полезна для написания программного обеспечения? Понятно ли понятие государства в начальных курсах по программированию или в книгах?
15
Из Википедии :
Это в значительной степени означает, что это означает в вычислительном контексте: данные, которые определяют состояние какого-либо объекта или системы.
Значение «состояния» не является специфическим для программирования. Есть примеры «государства» буквально везде, куда бы вы ни посмотрели. Телевизор выключен. Кофе горячий. Кроссовки а) синие; б) вонючий; в) не убирать; г) довольно изношен. «состояние» в смысле программирования точно так же, как «состояние» в смысле не программирования, за исключением того, что мы применяем его к объектам, с которыми мы имеем дело: переменные, объекты, потоки, базы данных, файловые системы и т. д. Если у вас есть Чтобы объяснить это, объясните это в терминах, которые знакомы - нет необходимости превращать это в иностранную техническую концепцию.
Часы - хороший пример простой системы, которая имеет некоторое состояние: часы могут работать или не работать, и они показывают время, которое может соответствовать или не соответствовать фактическому времени дня. Довольно легко увидеть, как эти вещи похожи на переменные и как изменение состояния часов может повлиять на другие вещи.
Сравните это с чем-то безгражданством, например с заявлением: «Дверь красная». Само утверждение не имеет государства. Может быть или не быть правдой, что дверь красная, но само утверждение не содержит никакого состояния. Покраска двери может изменить истинность утверждения, но само утверждение никогда не изменится. Аналогично, число, подобное 42, не имеет состояния: 42 - это 42, и вы ничего не можете изменить в этом.
Переменные имеют состояние, а значения - нет.
источник
Состояние - это информация, которой манипулирует ваша программа для выполнения какой-либо задачи. Это данные или информация, которые изменяются или обрабатываются во время выполнения программы. «Состояние» программы в данный момент времени относится к снимку всех данных, которые программа просматривает или анализирует в настоящее время, чтобы перейти к следующему этапу ее выполнения.
Мой университет начал с Scheme, поэтому мы начали программировать с моделью без состояния. Затем мы переключились на C и очень четко рассказали о том, что такое состояние, почему оно полезно и почему оно делает вещи потенциально очень сложными. Поэтому некоторые университеты, безусловно, говорят о государстве, но не обязательно все из них
источник
Вы можете использовать аналогию светофора, который может находиться в одном из трех состояний: [ЗЕЛЕНЫЙ], [ЖЕЛТЫЙ] или [КРАСНЫЙ]. Это должно быть только в одном состоянии одновременно. Светофор - это фактический конечный автомат, который моделируется. Обычно он будет переходить из состояния [ЗЕЛЕНЫЙ в ЖЕЛТЫЙ], затем [ЖЕЛТЫЙ в КРАСНЫЙ], затем [КРАСНЫЙ в ЗЕЛЕНЫЙ].
Альтернативный переход состояния (который действует в некоторых странах, например, в Великобритании) имеет два перехода [КРАСНЫЙ к ЖЕЛТЫМ, затем ЖЕЛТЫЙ к ЗЕЛЕНОМУ] вместо перехода [КРАСНЫЙ к ЗЕЛЕНОМУ].
источник