diff --git a/content/docs/playing/elementary.md b/content/docs/playing/elementary.md index 82aa28b..6114dfa 100644 --- a/content/docs/playing/elementary.md +++ b/content/docs/playing/elementary.md @@ -12,7 +12,7 @@ Ouvrez votre éditeur de code favori et pratiquons avec le LSC ! Une interaction simple entre deux étoiles avec transfert de la constante `a` : ``` +f(X) X; 's1 -@-f(a); 's2 +-f(a); 's2 ``` Les deux étoiles `s1` et `s2` se sont fusionnées en interagissant le long de @@ -24,7 +24,7 @@ On peut étendre ce transfert en traversant plusieurs étoiles : +f1(X1) X1; -f1(X2) +f2(X2); -f2(X3) +f3(X3); -@-f3(a); +-f3(a); ``` ## Effacement @@ -35,7 +35,7 @@ conservation d'étoiles. ``` +f(X) +g(X); -@-f(a); +-f(a); ``` Ci-dessus, on a bien une interaction, mais le résultat est un rayon polarisé @@ -46,7 +46,7 @@ On peut rajouter une étoile afin d'obtenir un résultat : ``` -g(X) X; +f(X) +g(X); -@-f(a); +-f(a); ``` ## Multi-focus diff --git a/content/docs/playing/exercices.md b/content/docs/playing/exercices.md index aa5af71..6dadf63 100644 --- a/content/docs/playing/exercices.md +++ b/content/docs/playing/exercices.md @@ -7,8 +7,63 @@ weight: 5 ## Chemins -## Effacement partiel +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 -## Tables de vérité \ No newline at end of file +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)`. \ No newline at end of file