Algorithmique et Langage - Pages de Michel Deloizy - Free
Algorithmique et Langage - Pages de Michel Deloizy - Free
Algorithmique et Langage - Pages de Michel Deloizy - Free
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
TP3 : TABLEAUX DE DONNÉES<br />
I. Acquisition <strong>de</strong> données<br />
I.1. Déclarer un tableau <strong>de</strong> 40 entiers<br />
Écrire une fonction perm<strong>et</strong>tant <strong>de</strong> saisir au clavier les nb premiers éléments du tableau (0 ≤ nb < 40).<br />
Le prototype <strong>de</strong> c<strong>et</strong>te fonction sera :<br />
void AcqTab(int *tab, unsigned nb);<br />
I.2. Écrire une fonction affichant à l'écran les n premiers nombres d'un tableau, en passant une ligne toutes les nbl<br />
valeurs.<br />
Le prototype <strong>de</strong> c<strong>et</strong>te fonction sera :<br />
void AffTab(int *tab, unsigned n, unsigned nbl);<br />
II. Nombres aléatoires<br />
II.1. Écrire une fonction qui remplit un tableau avec n valeurs aléatoires. On utilisera la fonction rand(), définie<br />
dans stdlib.h. Afficher les résultats obtenus.<br />
Exécuter plusieurs fois le programme. Conclure.<br />
II.2. 3 Initialiser le générateur <strong>de</strong> nombres aléatoires en utilisant la fonction srand() (voir prototype). L'initialisation<br />
sera réalisée à l'ai<strong>de</strong> <strong>de</strong> la fonction time() (définie dans time.h).<br />
Observer <strong>de</strong> nouveau les résultats obtenus.<br />
II.3. Écrire une nouvelle fonction qui effectue un tirage <strong>de</strong> 6 valeurs aléatoires distinctes, <strong>et</strong> comprises entre 1 <strong>et</strong> 49.<br />
Le prototype <strong>de</strong> c<strong>et</strong>te fonction sera :<br />
unsigned *Loto(void);<br />
C<strong>et</strong>te fonction r<strong>et</strong>ourne un pointeur sur le tableau contenant les 6 valeurs du tirage.<br />
III. Tris<br />
III.1. Constituer un tableau <strong>de</strong> N valeurs aléatoires. Classer en ordre croissant ce tableau en utilisant les algorithmes<br />
suivants :<br />
tri à bulle<br />
tri par sélection<br />
tri <strong>de</strong> Hoare<br />
III.2. 3 Mesurer les durées d'exécution <strong>de</strong>s différents algorithmes appliqués sur les mêmes tableaux, en utilisant la<br />
fonction clock() pour différentes valeurs <strong>de</strong> N.<br />
Comparer les résultats obtenus avec la fonction qsort() définie dans stdlib.h.<br />
III.3. Définir un tableau <strong>de</strong> chaînes <strong>de</strong> caractères.<br />
Classer en ordre croissant, puis en ordre décroissant ce tableau en utilisant la fonction qsort.<br />
3 Exercices optionnels.