69 lines
1.9 KiB
Markdown
69 lines
1.9 KiB
Markdown
---
|
|
title: "Exercices"
|
|
weight: 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)`. |