Vous êtes sur la page 1sur 3

‐GI

S2 / Structures de données ‐
Travaux dirigés
Série 01

Exercice 01 : Utilisation des pointeurs

Écrire programme C qui lit deux nombres entrés par l'utilisateur et qui les additionne à
l'aide de pointeurs.

Exercice 02 : Adressage mémoire et pointeurs

Soit le programme suivant :

Qu’affichent les expressions suivantes :

1- printf(" *P=%d et X=%d \n " , *P, X) ; ?


2- printf(" *P=%d et Y=%d \n " , *P, Y) ; ?
3- printf(" *P=%d et Y=%d \n " , *P, Y) ; ?

Exercice 03 : Pointeurs et tableaux
Soit ptr un pointeur qui "pointe" sur un tableau tab:
int tab [ ] = {3, 71, 21, 56, 35, 27, 38, 49, 50};
int *ptr; ptr = tab;

Quelles valeurs ou adresses fournissent ces expressions :


a) * ptr +2
b) *( ptr +2)
c) & ptr +1
d) & tab [4]-3
e) tab+3
e) &tab[7]- ptr
f) ptr +(* ptr -10)
h) *( ptr +*( ptr +8)- tab [7])


 
Exercice 04 : Principe du tri par sélection
Ecrire une fonction qui trouve
 L’indice de la valeur minimale d’un tableau
 Ecrire une fonction qui trouve l’indice de la valeur minimale d’un tableau à partir
d’un indice donnée

Exercice 05 : Principe du tri par insertion

I‐ Soit un Tab un tableau d’entiers de taille n.

Ecrire un programme avec la boucle while qui :


 Stock l’élément d’indice i dans une variable Key
 Qui décale tous les éléments vers la droite
 Qui met Key dans d’élément d’indice 0

Remarque :
 La boucle doit être de gauche à droite de droite à gauche

II‐ Tab est supposé trié dans l’ordre croisant (du plus petit au plus grand).
Soit Key (clé) un entier

On cherche Ecrire la boucle while qui détermine la position ou on pourra mettre l’entier
Key pour que le tableau reste correctement trié.

Exemple :


 

Exercice 06 : tri par sélection

Simuler l’algorithme du tri par sélection en remplissant le tableau suivant :


Exercice 07 : tri par insertion

Simuler l’algorithme du tri par insertion en remplissant le tableau suivant :


 

Vous aimerez peut-être aussi