08.04.2014 Views

Algorithmique et Langage - Pages de Michel Deloizy - Free

Algorithmique et Langage - Pages de Michel Deloizy - Free

Algorithmique et Langage - Pages de Michel Deloizy - Free

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!