constante entier N <- 20 { Type agrege de stockage d'un ensemble } { d'au maximum 20 chaines de caracteres } structure ensembleDeChaines n : entier <- 0 s : Tableau [N] de chaine fin structure { Affichage des chaines de caracteres } { contenues dans un ensemble de chaines } { de caracteres } action affichage(edc) Données edc : ensembleDeChaines Locales i : entier pour i de 0 à edc.n faire Ecran.afficherln(edc.s[i]) fait fin action { Ajout d'une chaine de caracteres } { a un ensemble de chaines de caracteres } { Retourne vrai si l'ajout a abouti } { Retourne faux si plus de place } booleen fonction ajout(e,s) Données / Résultats e : ensembleDeChaines Données s : chaine 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 { Test de l'appartenance d'une chaine } { de caracteres a un ensemble de chaines } { de caracteres } { Retourne vrai si present, faux sinon } booleen fonction appartient(e,s) Données e : ensembleDeChaines s : chaine 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 { Fusion de deux ensembles de chaines } { de caracteres en un nouvel ensemble } { de chaines de caracteres } { Retourne null si fusion impossible } { car pas assez de place } ensembleDeChaines fonction fusion(e1,e2) Données e1 : ensembleDeChaines e2 : ensembleDeChaines Locales e : ensembleDeChaines i : entier si e1.n+e2.n <= N alors 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 sinon e <- null fsi retourner e fin fonction { Retrait d'une chaine de caracteres } { a un ensemble de chaines de caracteres } { Retourne vrai si le retrait a abouti } { Retourne faux sinon } booleen fonction retrait(e,s) Données / Résultats e : ensembleDeChaines Données s : chaine Locales res : booleen i : entier 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 { Test si un ensemble de chaines } { de caracteres est vide } booleen fonction estVide(EnsembleDeChaines e) retourner (e.n = 0) fin fonction