/* Fichier à remettre pour l'exercice 2 du tp#2 session Été 08 Nom: Prénom: Login: Commentaires: */ #include using namespace std; /* ---------------------------- Déclaration de la structure (à faire) ------------------------------- */ /* ---------------------------- Déclaration des fonctions (à faire) ------------------------------- */ /* Cette fonction sert à allouer de la mémoire pour le tableau tabprt et tous ses éléments. Elle accepte en entrée deux arguments: (Test** tabptr) un tableau de pointeurs de pointeurs (int x) un entier signifiant la taille du tableau La fonction retourne un tableau de pointeurs de pointeurs ainsi mis à jour. */ Test** MemAlloc(Test** tabptr, int x); /* Cette fonction sert à libérer l'espace mémoire alloué pour le tableau tabprt et tous ses éléments. Elle accepte en entrée deux arguments: (Test** tabptr) un tableau de pointeurs de pointeurs (int x) un entier signifiant la taille du tableau La fonction ne retourne rien */ void LibMem(Test** tabptr, int x); /* Cette fonction sert à compter le nombre d'éléments du type Test en utilisant pour cela la technique de chaînage. Elle accepte en entrée un argument: (Test** tabptr) un tableau de pointeurs de pointeurs La fonction retourne un int représentant le nombre d'éléments */ int CompteStr(Test** tabptr); /* Cette fonction sert à calculer la somme de tous les index. Elle accepte en entrée un argument: (Test** tabptr) un tableau de pointeurs de pointeurs La fonction retourne un int représentant la somme totale */ int SommeIndex(Test** tabptr); /* Cette fonction cherche la Nieme occurrence (Nbre) d'une chaîne donnée (pattern) dans une autre chaîne (data). Elle accepte en entrée 3 arguments: (Test** tabptr) un tableau de pointeurs de pointeurs (char* pattern) la chaîne recherchée (int Nbre) le nombre de fois qu'une occurrence doit être trouvée Elle renvoie un pointeur sur l'élément de data où commence la N occurrence de pattern. Dans le cas contraire, elle renvoie un pointeur NULL. */ char* ChercheNOcc(Test** tabptr, char* pattern, int Nbre); int main() { Test** tabptr = NULL; char* pattern = "les"; /* ---------------------------------------------------------- Génération d'un nombre aléatoire pour la taille du tableau un nombre entier entre 1 et 20 à compléter ---------------------------------------------------------- */ // Allocation du tableau tabptr = MemAlloc(tabptr,x); // Calcul du nombre d'éléments dans le tableau cout << "le tableau contien: " << »CompterStr(tabptr) << " structures" << endl; // Calcul de la somme totale des index cout << "l'additon des index est égale à: " << SommeIndex(tabptr) << endl; // Recherche des occurrences char *p = NULL; cout << "Test -1-" << endl; p = chercheNOcc(tabptr,pattern,1); if (p!=NULL) cout << ": " << p << endl; else cout << "La 1ere occurrence n'est pas disponible" << endl; cout << "Test -2-" << endl; p = chercheNOcc(tabptr,pattern,3); if (p!=NULL) cout << ": " << p << endl; else cout << "La 3e occurrence n'est pas disponible" << endl; cout << "Test -3-" << endl; p = chercheNOcc(tabptr,pattern,5); if (p!=NULL) cout << ": " << p << endl; else cout << "La 5e occurrence n'est pas disponible" << endl; cout << "\n\n"; // Libération de la mémoire LibMem(tabptr,x); // Fin du programme. Tout est ok! return 0; }