TP N°1 : Allocation dynamique de la mémoire
TP N°1 : Allocation dynamique de la mémoire
Objectif
Le but de ce TP est d’écrire des programmes utilisant des chaînes de caractères et des tableaux en se
basant sur les pointeurs et l’allocation dynamique de la mémoire tout en utilisant un format
d’affichage imposé.
I. Un mot est dit palindrome s’il reste le même qu'on le lise de gauche à droite ou de droite à
gauche.
La première ligne de l'entrée contient un mot de taille quelconque.
Ecrivez une fonction qui retourne 1 si le texte est un palindrome et 0 sinon, cette fonction possède
un seul argument qui est le mot en question, ce dernier doit être représenté par un tableau créé en
utilisant une allocation dynamique de la mémoire.
Exemple :
Entrez un mot à tester : Rester
Rester n’est pas palindrome.
II. Ecrire une fonction concat() qui possède comme argument deux tableaux A et B ainsi que la taille
des deux tableaux et qui retourne un tableau C contenant les éléments de A suivi de ceux de B.
Votre programme principal doit permettre à l’utilisateur de saisir les éléments de A et de B avant
de faire appel à la fonction concat() puis d’afficher le contenu du tableau retourné par la fonction,
sachant que les trois tableaux sont créés en utilisant une allocation dynamique de la mémoire.
Exemple :
Entrer les éléments du tableau A :
A[0] = 10, A[1] = 12, A[2] = 5, A[3] = 15
Entrer les éléments du tableau B :
B[0] = 1, B[1] = 2, B[2] = 25
Le tableau résultant est :
C[0] = 10, C[1] = 12, C[2] = 5, C[3] = 15, C[4] = 1, C[5] = 2, C[6] = 25
Remarque : Les nombres et les textes en gras sont saisis directement par le clavier.
95
TP N°2 : Manipulation des listes chaînée
TP N°2 : Manipulation des listes chaînées
Objectif
Le but de ce TP est d’écrire plusieurs fonctions permettant de manipuler les listes chaînées.
Etant donnée un ensemble d’étudiants qu’on veut représenter par une liste chaînée, chaque étudiant est
représenté par son nom et sa moyenne, écrire une fonction correspondante à chacune des opérations
suivantes :
Ajouter un élément enfin de la liste;
Afficher les éléments de la liste;
Après avoir terminé ces opérations, écrire une fonction qui permet de trier les éléments de la liste par
ordre décroissant des moyennes des étudiants.
Votre programme principal doit permettre à l’utilisateur de créer une liste d’étudiants en utilisant les
fonctions définies ci-dessus et d’afficher les éléments de la liste. Par la suite, Vous faites appel à la
fonction de tri et vous affichez les éléments de la liste triée.
Exemple
Etudiant 1
Nom : Mohamed
Moyenne : 12.30
Etudiant 2
Nom : Sara
Moyenne : 11.80
Etudiant 3
Nom : Réda
Moyenne : 15.40
*********************LISTE TRIEE*********************
Etudiant 1
Nom : Réda
Moyenne : 15.40
Etudiant 2
Nom : Mohamed
Moyenne : 12.30
Etudiant 3
Nom : Sara
Moyenne : 11.80
96
TP N° 3 : Manipulation des piles
TP N° 3 : Manipulation des piles
Objectif
L’objectif de ce TP est d’écrire une fonction permettant d’effectuer un tri par insertion d’un ensemble
d’entiers en utilisant les piles.
Etant donnée une pile A dont les éléments sont des entiers, l’objectif est de construire une pile B
contenant les mêmes éléments que A mais dans un ordre trié avec le minimum au sommet de la pile B.
Pour ce faire, écrire en langage C les fonctions de manipulation des piles correspondantes aux
opérations suivantes :
Empiler un élément ;
Dépiler un élément ;
Retourner le sommet d’une pile ;
Tester si une pile est vide ;
Afficher les éléments d’une pile.
Pour la création de la pile B, écrire une fonction trier qui utilise une pile C vide au début en se basant
sur l’algorithme suivant :
Algorithme Tri;
Var A, B, C : pile;
x : entier;
Début
//Les piles B et C sont vide au début
Tant que (A n’est pas vide) faire
Si (B est vide ou sommet(A) ≤ sommet(B)) alors
x = depiler(A);
empiler(B, x);
Tant que (C n’est pas vide) faire
x = depiler(C);
empiler(B, x);
Fin Tant que
Else
x = depiler(B);
empiler(C, x);
Finsi
Fin Tant que
Fin
97
TP N° 3 : Manipulation des piles
Votre programme principal doit permettre à l’utilisateur de créer une pile A qui contient les
éléments d’un tableau t = {4, 2, 3, 5, 8, 2, 6, 9, 3, 10}, afficher les éléments de la pile A et de faire
appel à la fonction trier afin de créer la pile B et d’afficher ces éléments trié.
98
TP N° 4 : Manipulation des files
TP N° 4 : Manipulation des files
Objectif
L’objectif de ce TP est d’écrire une fonction permettant d’effectuer la fusion de deux files d’entiers
triées par ordre croissant.
Etant donnée deux files A et B dont les éléments sont des entiers triées par ordre croissant, l’objectif
est de construire une file C contenant les éléments de A et de B triée par ordre croissant où le
minimum est le premier élément de la file C. Pour se faire, écrire en langage C les fonctions de
manipulation des files correspondantes aux opérations suivantes :
Enfiler un élément ;
Défiler un élément ;
Retourner le premier élément d’une file ;
Tester si une file est vide ;
Afficher les éléments d’une file.
Pour la création de la file C, écrire une fonction fusionner qui utilise une file C vide au début en se
basant sur l’algorithme suivant :
Algorithme Fusion;
Var A, B, C : file;
x : entier;
Début
//La file C est initialement vide
Tant que (A n’est pas vide et B n’est pas vide) faire
Si (premier(A) ≤ premier(B)) alors
x = defiler(A);
Else
x = defiler(B);
C = enfiler(C, x);
Fin Tant que
Tant que (A n’est pas vide) faire
X = defiler(A);
C = enfiler(C, x);
Fin Tant que
Tant que (B n’est pas vide) faire
X = defiler(B);
C = enfiler(C, x);
Fin Tant que
Fin
99
TP N° 4 : Manipulation des files
Votre programme principal doit permettre à l’utilisateur de créer deux file A et B qui contiennent les
éléments des tableaux t = {2, 6, 13, 15, 18} et s = {6, 8, 11, 16, 30} respectivement, afficher les
éléments des files A et B et de faire appel à la fonction fusionner afin de créer la file C et d’afficher
ces éléments triés.
100