Devoir 2 (todo-lists) : sémantique de NO_TASK

Devoir 2 (todo-lists) : sémantique de NO_TASK

par Jean-Cédric Chappelier,
Number of replies: 5

comme j'ai eu la question ce matin, je partage la réponse à tout le monde :
NO_TASK veut bien dire « pas de tâche DANS LA FILE » , c.-à-d. « pas de tache référencée » ; on aurait aussi pu l'appeler NO_TASK_REFERED, ou NO_REFERENCE_TO_TASK ou qqchose comme ça.

In reply to Jean-Cédric Chappelier

Re: Devoir 2 (todo-lists) : sémantique de NO_TASK

par Thomas Théo Bienaimé,
Bonjour Monsieur,
Est-ce-que le NO_TASK est utilisé dans une fille d'attente comme un node indiquant qu'il n'y a pas de tache, ou comme une tache dans un node indiquant que le node ne contient pas de tache.
Je suis un perdu avec la phrase "pas de tâche DANS LA FILE" et avec cette question https://moodlearchive.epfl.ch/2019-2020/mod/forum/discuss.php?d=35718.
In reply to Thomas Théo Bienaimé

Re: Devoir 2 (todo-lists) : sémantique de NO_TASK

par Thomas Théo Bienaimé,
Quand j'écris dans un y comme un x , je veut dire que le NO_TASK a un même rapport que un x par rapport à un y.
Ma question peut ainsi se réecrire en : Le NO_TASK indique qu'il n'y a pas de tache pour une file d'attente ou pas de tache contenu dans un node.
In reply to Thomas Théo Bienaimé

Re: Devoir 2 (todo-lists) : sémantique de NO_TASK

par Jean-Cédric Chappelier,

désolé mais je ne comprends pas vos questions (et je crains que vous ne cherchiez trop loin). Je vais quand même essayer de clarifier.
Tout d'abord, la réponse ici https://moodlearchive.epfl.ch/2019-2020/mod/forum/discuss.php?d=35718#p74481 ne qualifiait pas la sémantique de NO_TASK mais celle de queue_is_empty : c'était une question sur « à quel niveau veut-on évaluer si la file est vide ? » et non pas une question sur qu'est-ce que « pas de tâche référencée ». Ma réponse là-bas était qu'une file qui contient un noeud contenant comme valeur « pas de tâche référencée » n'est pas une file vide (tout comme un ensemble d'ensembles qui contient l'ensemble vide n'est pas vide :  \left{ \emtpyset \right} \neq \emtpyset

Maintenant pour en revenir à votre question :

  1. libre aux utilisateurs de nos files d'utiliser NO_TASK pour dire ce qu'ils veulent ; ce n'est pas à nous de décider ; c'est un peu dans ce sens que j'ai commencé ce fil ci : NO_TASK ne veut pas forcément dire « pas de tâche du tout dans l'absolu » (ce n'est pas à nous de le définir) mais simplement « il n'y a pas de tâche référencée (à cet endroit là) dans notre file »
  2. par contre, nous décidons que pop une valeur d'une file vide (au sens défini ci-dessus de queue_is_empty) retourne la valeur NO_TASK. C'est en fait le seul sens que nous nous lui donnons (libres aux utilisateurs de nos files d'en inventer d'autres, ce n'est pas notre affaire ; en clair, si eux veulent push des NO_TASK, libre à eux ; cela ne doit en rien influencer le fonctionnement de nos files d'attente).
Est-ce plus clair ?
In reply to Jean-Cédric Chappelier

Re: Devoir 2 (todo-lists) : sémantique de NO_TASK

par Thomas Théo Bienaimé,

Merci pour votre réponse en effet c'est clair maintenant. Cependant une autre question me viens quand à la façon que l'on doit imprimmer une file contenant des NO_TASK.

Etant donné que dans l'exemple de déroulement cette situation n'apparait pas, est ce qu'on est libre de décider la manière dont elle est géré? Ou doit-on considérer que task_print doit savoir imprimmer NO_TASK .

In reply to Thomas Théo Bienaimé

Re: Devoir 2 (todo-lists) : sémantique de NO_TASK

par Jean-Cédric Chappelier,

Hmm... je crois que vous avez raté quelque chose. Regardez le prototype de queue_print() ainsi que le main() fourni (même si NO_TASK n'est pas utilisé dans notre exemple ; cela devrait être assez clair)