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 alea: $(OBJS) $(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