constante entier N <- 20 { Type agrege de stockage d'un ensemble } { d'au maximum 20 chaines de caracteres } structure ensembleDeChaines entier n <- 0 Tableau [N] de chaine s fin structure { Action d'affichage des chaines } { de caracteres contenues dans un ensemble } { de chaines de caracteres } { edc : L'ensembleDeChaines à afficher } action affichage(edc) Entrées ensembleDeChaines edc Locales entier i pour i de 0 à edc.n faire afficherln(edc.s[i]) fait fin action { Fonction d'ajout d'une chaine de caracteres } { à un ensemble de chaines de caracteres } { Retourne vrai si l'ajout a abouti } { Retourne faux si plus de place } { e : L'ensembleDeChaines où l'ajout } { est effectué } { s : La chaine ajoutée } booleen fonction ajout(e,s) Entrées / Sorties ensembleDeChaines e Entrées chaine s Locales res booleen si e.n < N alors e.s[e.n] <- s e.n <- e.n+1 res <- vrai sinon res <- faux fsi retourner res fin fonction { Fonction de test de l'appartenance } { d'une chaine de caracteres } { a un ensemble de chaines de caracteres } { Retour de vrai si present, faux sinon } { e : L'ensembleDeChaines où la recherche } { est effectuée } { s : La chaine recherchée } booleen fonction appartient(e,s) Entrées ensembleDeChaines e chaine s Locales booleen res i entier res <- faux i <- 0 tantque ( res == faux ) et ( i < e.n ) faire res <- (e.s[i] == s) i <- i+1 fait retourner res fin fonction { Action de fusion de deux ensembles } { de chaines de caracteres dans un ensemble } { de chaines de caracteres } { Retour de faux si fusion impossible } { car pas assez de place et ne touche pas } { au parametre en sortie } { Retour de vrai sinon } { e1 : Le premier ensembleDeChaines } { e2 : Le premier ensembleDeChaines } { e : L'ensembleDeChaines issu de la fusion } booleen fonction fusion(e1,e2,e) Entrées ensembleDeChaines e1 ensembleDeChaines e2 Sorties ensembleDeChaines e Locales entier i booleen res si e1.n+e2.n <= N alors e.n <- 0 pour i de 0 à e1.n-1 faire ajout(e,e1.s[i]) fait pour i de 0 à e2.n-1 faire ajout(e,e2.s[i]) fait res <- vrai sinon res <- faux fsi retourner res fin fonction { Fonction de retrait d'une chaine } { de caracteres a un ensemble de chaines } { de caracteres } { Retour de vrai si le retrait a abouti } { Retour de faux sinon } { e : L'ensembleDeChaines où le retrait } { est réalisé } { s : La chaine retirée } booleen fonction retrait(e,s) Entrées / Sorties ensembleDeChaines e Entrées chaine s Locales booleen res entier i res <- faux i <- 0 tantque ( res == faux ) et ( i < e.n ) faire res <- (e.s[i] == s) i <- i+1 fait si res alors pour i de i à e.n-1 faire e.s[i-1] <- e.s[i] fait e.n <- e.n-1 fsi retourner res fin fonction { Fonction de test si un ensemble de chaines } { de caracteres est vide } { Retour de vrai si c'est le cas, faux sinon } { e : L'ensembleDeChaines testé } booleen fonction estVide(e) Données ensembleDeChaines e retourner (e.n == 0) fin fonction