Quelle est une bonne façon de définir "état", comme dans une variable d'état ou une machine d'état, à un nouveau programmeur (auparavant non)? Quels sont les bons moyens d'expliquer pourquoi ce concept est utile pour l'écriture de logiciels? Le concept d'État est-il explicitement enseigné en commençant des cours de programmation ou des livres couramment?
15
De Wikipédia :
C'est à peu près ce que cela signifie dans un contexte informatique: les données qui définissent la condition d'un objet ou d'un système.
La signification de «état» n'est pas spécifique à la programmation. Il existe des exemples d '«état» littéralement partout où vous regardez. La télévision est éteinte. Le café est chaud. Les baskets sont a) bleues; b) malodorant; c) ne pas ranger; d) assez usé. «état» dans un sens de programmation est exactement le même que «état» dans un sens non-programmation, sauf que nous l'appliquons aux objets que nous traitons: variables, objets, threads, bases de données, systèmes de fichiers, etc. Si vous avez pour l'expliquer, l'expliquer en termes familiers - il n'est pas nécessaire d'en faire un concept technique étranger.
Une horloge est un bon exemple d'un système simple qui a un certain état: une horloge peut fonctionner ou ne pas fonctionner, et elle indique une heure qui peut ou non correspondre à l'heure réelle de la journée. Il est assez facile de voir comment ces choses sont comme des variables et comment le changement d'état de l'horloge peut avoir un impact sur d'autres choses.
Comparez cela à quelque chose d'apatride, comme une déclaration: "La porte est rouge." La déclaration elle-même n'a pas d'état. Il peut être vrai ou non que la porte est rouge, mais la déclaration elle-même ne contient aucun état. Peindre la porte peut changer la vérité de la déclaration, mais la déclaration elle-même ne change jamais. De même, un nombre comme 42 n'a pas d'état: 42 est 42 et vous ne pouvez rien y changer.
Les variables ont un état, les valeurs non.
la source
L'état est l'information que votre programme manipule pour accomplir une tâche. Ce sont des données ou des informations qui sont modifiées ou manipulées tout au long de l'exécution d'un programme. L '«état» d'un programme à un instant donné fait référence à un instantané de toutes les données que le programme examine ou analyse actuellement pour passer à l'étape suivante de son exécution.
Mon université a commencé avec Scheme, nous avons donc commencé à programmer avec un modèle sans état. Nous sommes ensuite passés à C et avons été très explicites sur ce qu'est l'état, pourquoi il est utile et pourquoi cela rend les choses potentiellement très compliquées. Donc, certaines universités parlent certainement d'État, mais pas nécessairement toutes
la source
Vous pouvez utiliser l'analogie d'un feu de circulation qui peut être dans l'un des trois états: [VERT], [JAUNE] ou [ROUGE]. Elle ne doit être que dans un état à la fois. Le feu de circulation est la machine d'état réelle en cours de modélisation. Il passera normalement son état de [VERT à JAUNE], puis [JAUNE à ROUGE], puis [ROUGE à VERT].
Une transition d'état alternative (qui est en vigueur dans certains pays comme le Royaume-Uni, a deux transitions de [ROUGE à JAUNE, puis JAUNE à VERT] à la place de la transition [ROUGE à VERT].
la source