Académique Documents
Professionnel Documents
Culture Documents
1.1 On se trouve dans un répertoire ne contenant que les fichiers quat.txt et rain.txt. Le fichier quat.txt
contient les 2 lignes de texte suivantes :
Fort
Belle
Elle
Dort
Indiquez les effets du lancement des commandes Unix suivantes à partir d’un shell. Signalez les erreurs
éventuelles. Chaque question est indépendante : on fera comme si la commande précédente n’avait pas été
exécutée.
a) $ cat quat.txt
affiche le texte contenu dans quat.txt (Fort et Belle sur deux lignes)
b) $ cat < rain.txt
affiche le texte contenu dans rain.txt
c) $ cat *a*.txt
affiche le texte contenu dans quat.txt et rain.txt
d) $ cat quat.txt > rain.txt
remplace le texte contenu dans rain.txt par celui contenu dans quat.txt (n’affiche rien)
e) $ cat quat.txt >> rain.txt
ajoute le texte contenu dans quat.txt après celui contenu dans rain.txt (n’affiche rien)
f) $ cat quat.txt < rain.txt
affiche le texte contenu dans quat.txt (ne lit pas le contenu de rain.txt)
g) $ cat > rain.txt
remplace le texte contenu dans rain.txt par le texte entré au clavier
h) $ cat
affiche le texte entré au clavier, ligne après ligne
i) $ cat rain.txt > rain.txt
vide le contenu de raint.txt : la redirection de la sortie vers rain.txt met son contenu à vide, puis
la commande cat rain.txt est exécutée, donc le texte vide de rain.txt est ”copié” dans rain.txt)
j) $ cat rain.txt quat.txt | grep or
affiche Fort et Dort (sur deux lignes)
k) $ echo quat.txt
affiche le texte quat.txt
l) $ ls quat.txt
affiche (le nom du fichier) : quat.txt
m) $ ls *
affiche : quat.txt rain.txt
n) $ ls rain
affiche que le fichier n’est pas trouvé
o) $ ls > abc
crée un fichier abc dont le contenu est le texte quat.txt rain.txt
p) $ ls abc > abc
crée un fichier abc dont le contenu est le texte abc : la redirection de la sortie vers abc crée ce
fichier, puis la commande ls abc est exécutée, le ficher abc existe, donc le texte abc est ”copié”
dans abc)
q) $ head -n1 *.txt
affiche Fort et Elle (sur deux lignes)
r) $ cat *.txt | head -n1
affiche Fort
s) $ head -n2 >> rain.txt
lit deux lignes de texte au clavier et les ajoute à la fin du fichier rain.txt
t) $ grep s
lit un texte au cliver et affiche celles qui contiennent un s, ligne après ligne
1.2 On se trouve dans un répertoire contenant uniquement le fichier nommé gentil et un répertoire nommé
Prison, qui contient lui-même le seul fichier mechant. Indiquer la ou les commandes qui :
Le but final de l’exercice est de construire un circuit qui simule le remplissage d’une cuve. Cette cuve se remplit
petit à petit quand un robinet est ouvert mais se vide d’un seul coup par sécurité quand elle est pleine et va
déborder. La cuve est composée de trois parties. On modélise la présence de liquide dans la partie numéro i
par la variable pi . La variable r indique si le robinet est ouvert (r = 1) ou fermé (r = 0). Quand la cuve est
vide, p1 = p2 = p3 = 0. Puis, tant que le robinet est ouvert, l’état de la cuve passe successivement par les
états p1 = 1 et p2 = p3 = 0, puis p1 = p2 = 1 et p3 = 0, puis p1 = p2 = p3 = 1, puis la cuve se vide (et on
recommence). Quand le robinet est fermé, la cuve ne change pas d’état.
Dans un premier temps, nous allons construire un circuit avec 4 bits d’entrée r, p1 , p2 et p3 et 3 bits de sortie
p01 , p02 et p03 . Ce circuit indique le prochain état de la cuve à partir de son état courant et de l’état du robinet.
On notera que toutes les combinaisons de valeurs pour les entrées pi ne correspondent pas à un état réaliste
de la cuve (ex : on ne peut pas avoir p1 = 0 si p2 = 1 ou p3 = 1). Aux huit combinaisons de valeurs d’entrée
irréalistes, on fera correspondre (arbitrairement) les sorties p01 = p02 = p03 = 1.
3.1 Ecrire la table de vérité de la fonction logique qui indique les valeurs des sorties p01 , p02 et p03 en fonction
des valeurs des entrées r, p1 , p2 et p3 .
3.2 En utilisant la méthode des tables de Karnaugh, écrire les fonctions booléennes correspondant aux valeurs
de sorties de p01 , p02 et p03 .
3.3 Dessiner le circuit permettant d’obtenir p01 à partir de r, p1 , p2 et p3 . Pour ceci, on n’a le droit d’utiliser
que la porte logique unaire NON et les portes logiques OU et ET. On ne demande pas de dessiner les circuits
correspondant à p02 et p03 .
3.4 Maintenant, on veut réaliser le circuit de simulation de remplissage de cuve. Il s’agit d’un circuit à mémoire
qui a une entrée nommée CLR, une entrée d’horloge nommée CK, une entrée r qui indique l’état du robinet,
et trois sorties p1 , p2 et p3 qui indiquent l’état de remplissage de la cuve avec les mêmes conventions que les
questions précédentes. Lorsque l’entrée CLR est à 0, les trois sorties sont toujours à 0. Lorsque CLR est à 1, à
chaque impulsion d’horloge le résultat en sortie indique le nouvel état de la cuve en fonction du précédent et
de l’état du robinet.
Dessiner le circuit qui est décrit ci-dessus. Pour ceci, on n’utilisera que le circuit réalisant la fonction logique
de la question 3.1, des bascules D et des portes logiques NON, OU ou ET. Dans cette question, le circuit
correspondant à la question 3.1 est considéré comme une boı̂te noire, on le dessinera comme un rectangle (à
quatre entrées et trois sorties) et on ne dessinera donc pas les portes logiques qui le composent.