Vous êtes sur la page 1sur 2

UNIVERSITE IBN ZOHR Semestre 4 : LPSIE Structures de données

FSA Ait Melloul 2020 − 2021 en Langage C

TP 1
Structures & Allocation dynamique

Exercice 1 :
On souhaite mémoriser un ensemble de noms et de numéros de téléphones afin de constituer
un répertoire téléphonique. Cet ensemble sera représenté par un tableau, de taille maximum
TMAX = 100. Les éléments de ce tableau sont de type Personne, structure contenant un nom
et un numéro de téléphone. Le numéro de téléphone sera représenté par un tableau d’entiers,
et le nom par un tableau de lettres. Les éléments du tableau seront forcément consécutifs, sans
”trou” entre deux personnes.

1. Définir la constante TMAX et le type Personne;

2. Définir les opérations suivantes associées au type Répertoire :

(a) init repertoire, qui initialise le répertoire vide;


(b) taille, qui renvoie le nombre de numéros mémorisés dans le répertoire;
(c) ajouter, qui permet d’ajouter un nouveau numéro dans le répertoire;
(d) indice num, qui, en fonction d’un numéro de téléphone, rend l’indice de sa première
occurrence dans le répertoire, et rend -1 si celui-ci n’apparaı̂t pas dans le répertoire;
(e) affiche nom, qui affiche le nom de la personne dont on connaı̂t le numéro.

3. On souhaite pouvoir supprimer certains doublons de numéros dans le répertoire. Pour


cela, écrire les fonctions suivantes :

(a) nb occ numero, qui calcule le nombre d’occurrences du même numéro de téléphone
(même si les noms associés sont différents);
(b) supprime element, qui permet de supprimer le ième élément du répertoire;
(c) supprime 1 apparition, qui permet de supprimer dans un répertoire, la deuxième
apparition d’un numéro de téléphone donné;
(d) supprime apparitions, qui permet de supprimer tous les doublons d’un numéro de
téléphone donné dans le répertoire;
(e) supprime doublons, qui permet de supprimer tous les doublons dans un répertoire.

Exercice 2 :
Considérons la structure TypeTableau composée des champs suivants :

• Adresse d’un tableau;

• Nombre d’éléments du tableau.

Écrire les fonctions suivantes :

1. Une fonction creationTableau qui crée un tableau de n éléments avec le prototype :


TypeTableau creationTableau(int n);

1
UNIVERSITE IBN ZOHR Semestre 4 : LPSIE Structures de données
FSA Ait Melloul 2020 − 2021 en Langage C

2. Une fonction destructionTableau qui libère la mémoire occupée par un tableau dont le
prototype est le suivant :
void destructionTableau(TypeTableau T);

3. Une fonction simpleLectureTableau qui saisit les éléments d’un tableau. On supposera
dans cette fonction que le tableau a déjà été alloué précédemment. Son prototype est le
suivant :
void simpleLectureTableau(TypeTableau T);

4. Une fonction affichage qui affiche le contenu d’un tableau, dont le prototype est :
void affichage(TypeTableau T);

5. Une fonction doubleTableau qui crée un nouveau tableau de même taille que T mais dont
les éléments sont le double des éléments de T. Son prototype est le suivant : TypeTableau
doubleTableau(TypeTableau T);

6. Écrire un programme principal qui saisit un tableau au clavier, calcule le double de chaque
élément du tableau et affiche les résultats.

Vous aimerez peut-être aussi