tsguide.refl.fr/content/docs/playing/exercices.md

1.9 KiB

title weight
Exercices 5

Exercices

Chemins

Ajouter des étoiles aux constellations suivantes de sorte à obtenir ok après exécution.

  1. -1 ok;

  2. -1; +2;

  3. -1 ok; -2 +3;

  4. -1 ok; -2 +3 ok;

  5. +f(a) +f(b); +g(a); @+g(b);

Altération de mémoire

Considérons la constellation suivante représentant des registres dans lesquels on peut stocker des données (ils sont tous initialisés à 0) :

' initialisation
+ia(0); +ib(0);

@-ra(X) +a(X); ' registre a
@-rb(X) +b(X); ' registre b

Pour chaque question, vous pouvez soit ajouter des étoiles à la constellation de départ ou modifier celles que vous avez ajoutées.

  1. Comment relier les étoiles d'initialisation de sorte à initialiser le registre a à 0 ?

  2. Comment afficher la valeur de a et ainsi obtenir a(0) en sortie ?

  3. Comment mettre à jour a à la valeur 1 ?

  4. Comment copier la valeur de a dans b et afficher b ?

  5. Comment supprimer le registre b et le rendre inutilisable ?

Portes logiques

On veut simuler des portes logiques par des constellations calculant des fonctions sur {0,1}.

  1. Ecrire une constellation calculant la négation de telle sorte à ce qu'elle produise 1 en sortie lorsqu'ajoutée à l'étoile @-not(0 X) X; et 0 lorsqu'ajoutée à @-not(1 X) X.

  2. Comment afficher la table de vérité de la négation avec une seule étoile, de sorte à ce qu'on obtienne en sortie table_not(0 1); table_not(1 0); ?

  3. Ecrire de deux manières différentes des constellations calculant la conjonction et la disjonction et afficher leur table de vérité de la même façon que pour la question précédente.

  4. Utiliser la disjonction et la négation pour afficher la table de vérité de l'implication sachant que A => B = not(A) \/ B.

  5. Utiliser l'implication et la conjonction pour afficher la table de vérité de l'équivalence logique sachant que A <=> B = (A => B) /\ (B => A).