Jaki jest dobry sposób zdefiniowania „stanu”, jak w zmiennej stanu lub maszynie stanu, dla nowego (wcześniej nie) programisty? Jakie są dobre sposoby wyjaśnienia, dlaczego ta koncepcja jest przydatna do pisania oprogramowania? Czy koncepcja państwa jest wyraźnie nauczana na początku programowania lub książek programistycznych?
15
Z Wikipedii :
To właściwie oznacza w kontekście komputerowym: dane, które określają stan jakiegoś obiektu lub systemu.
Znaczenie „stanu” nie jest specyficzne dla programowania. Istnieją przykłady „stanu” dosłownie wszędzie, gdzie spojrzysz. Telewizor jest wyłączony. Kawa jest gorąca. Adidasy są a) niebieskie; b) śmierdzący; c) nie odkładać; d) dość zużyte. „stan” w sensie programistycznym jest taki sam jak „stan” w sensie nieprogramowym, z tym wyjątkiem, że stosujemy go do obiektów, z którymi mamy do czynienia: zmiennych, obiektów, wątków, baz danych, systemów plików itp. Jeśli masz aby to wyjaśnić, wyjaśnij je znanymi terminami - nie ma potrzeby przekształcania go w obcą, techniczną koncepcję.
Zegar jest dobrym przykładem prostego systemu, który ma pewien stan: zegar może być uruchomiony lub nie, i wskazuje czas, który może, ale nie musi, odpowiadać rzeczywistej porze dnia. Łatwo jest zobaczyć, jak te rzeczy są jak zmienne i jak zmiana stanu zegara może wpłynąć na inne rzeczy.
Porównaj to z czymś bezstanowym, na przykład stwierdzeniem: „Drzwi są czerwone”. Samo zdanie nie ma stanu. To może być prawda, że drzwi są czerwone, ale sama instrukcja nie zawiera żadnego stanu. Malowanie drzwi może zmienić prawdziwość oświadczenia, ale samo oświadczenie nigdy się nie zmienia. Podobnie liczba taka jak 42 nie ma żadnego stanu: 42 to 42 i nie można nic w tym zmienić.
Zmienne mają stan, wartości nie.
źródło
Stan to informacje, którymi program manipuluje w celu wykonania określonego zadania. Są to dane lub informacje zmieniane lub modyfikowane w trakcie działania programu. „Stan” programu w danym momencie odnosi się do migawki wszystkich danych, które program aktualnie przegląda lub analizuje, aby przejść do następnego etapu jego wykonania.
Mój uniwersytet zaczął od Scheme, więc zaczęliśmy programować w modelu bezstanowym. Następnie przełączyliśmy się na C i bardzo jasno określiliśmy, jaki jest stan, dlaczego jest on użyteczny i dlaczego sprawia, że sprawy są potencjalnie bardzo skomplikowane. Tak więc niektóre uniwersytety z pewnością mówią o państwie, ale niekoniecznie o wszystkich
źródło
Możesz użyć analogii sygnalizacji świetlnej, która może znajdować się w jednym z trzech stanów: [ZIELONY], [ŻÓŁTY] lub [CZERWONY]. Może być tylko w jednym stanie na raz. Sygnalizacja świetlna to modelowana maszyna stanu rzeczywistego. Zwykle zmieni stan z [ZIELONY na ŻÓŁTY], następnie [ŻÓŁTY na CZERWONY], a następnie [CZERWONY na ZIELONY].
Alternatywne przejście stanu (które obowiązuje w niektórych krajach, takich jak Wielka Brytania, ma dwa przejścia [CZERWONY na ŻÓŁTY, a następnie ŻÓŁTY na ZIELONY] zamiast przejścia [CZERWONY na ZIELONY].
źródło