Systèmes Informatiques

TP 5


Ce TP va nous permettre de mettre en oeuvre l'ensemble des notions vues au cours des précedents TPs.

1) Récupérez ces deux fichiers source en C, créez un Makefile permettant de les compiler.
( le compilateur est maintenant : cc )
main.c
rand.c

Le Makefile est fortement inspiré de celui du TP4

OBJS: main.o rand.o
CC=cc

alea: $(OBJS)
    $(CC) $(OBJS) -o $@

.c.o:
    $(CC) -c $<

Le Makefile doit produire un programme s'appelant alea

- Que donne la compilation et l'exécution de ces deux fichiers ?

Le programme crée un fichier nommé resultat qui contient des lignes de nombres aléatoires.

2) Dans le fichier resultat, faites une extraction de la 1ère, 3ème et de la 6 à 8 ème et la 11 ème colonne en une seule commande
- cut -d: -f1,3,6-8,11 resultat

3) Triez le fichier resultat en fonction de la dernière colonne, ensuite cumulez le résultat de la commande 2) et 3) en une commande
- sort -n -t: -k11 resultat
- cut -d: -f1,3,6-8,11 resultat | sort -n -t:  -k6

4) Modifiez dans le fichier source le caractère séparateur de colonne, recompilez, re-exécutez
- ligne 27, changer           fprintf(fd,"%f:",aleatoire());
en          fprintf(fd,"%f!",aleatoire());
par exemple

5) Avez-vous pensé à travailler dans un répertoire précis (TP/TP5 par exemple) ?
- oui ?

6) Sous emacs, remplacez le caractère séparateur par un blanc " "
- Esc-% puis ! puis <espace>, puis ! pour 'turbo-replace'

7) Sous emacs, écrivez une macro qui efface une ligne sur deux
- on crée la macro : C-x (  C-n C-k C-k C-)
- on marque le début de région à modifier : C-<espace>
- on va à la fin du fichier en marquant la fin de région : Esc->

Pui on applique la macro à la région : Esc-x apply-macro-to-region-lines

8) Dans le fichier résultat, en colonne 11, combien trouve-t'on d'occurences du chiffre 5 ? Relancez plusieurs fois le programme et comparez
- cut -d: -f11 resultat | grep 5 | wc -l
pour recréer un nouveau fichier : alea
puis à nouveau le cut ci-dessus