{VERSION 6 0 "IBM INTEL NT" "6.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "2D Comment" 2 18 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 256 "" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 0 }{CSTYLE "" -1 257 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 260 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 261 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 262 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 263 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 264 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 265 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 266 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 268 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 269 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 270 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 271 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 272 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 273 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 274 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 275 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 276 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 277 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 278 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 279 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 280 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 281 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 282 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 283 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 284 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 285 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 286 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 287 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 288 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 289 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 290 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 291 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 292 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 293 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 294 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Tim es" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 } {PSTYLE "Heading 1" -1 3 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 4 1 0 1 0 2 2 0 1 }{PSTYLE "Warning" -1 7 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 2 2 2 2 2 1 1 1 3 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 12 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple P lot" -1 13 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Title" -1 18 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 1 2 2 2 1 1 1 1 }3 1 0 0 12 12 1 0 1 0 2 2 19 1 }{PSTYLE "Author" -1 19 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 8 8 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 256 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 257 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 3 0 0 0 0 1 0 1 0 2 2 0 1 }} {SECT 0 {PARA 18 "" 0 "" {TEXT -1 14 "Arbres n-aires" }{TEXT 256 0 "" }}{PARA 19 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 77 "Dans cette feuille de calcul, nous d\351finirons une structure repr \351sentant un " }{TEXT 258 12 "arbre n-aire" }{TEXT -1 54 " (arbre t el que chaque n\234ud donne naissance \340 au plus " }{TEXT 259 1 "n" }{TEXT -1 228 " fils).\nNotre application \351tant le codage d'un dict ionnaire, nous supposerons que chaque n\234ud de l'arbre est \351tique t\351 par une cha\356ne de caract\350res.\nAinsi, par exemple l'arbre \+ n-aire suivant repr\351sente le codage du dictionnaire: " }{XPPEDIT 18 0 "\"EPI\"\"EPIER\"\"EPIERA\"\"EPIERAI\"\"EPIERAS\"\"EMU\"\"SU\"\"S ALI\"\"JEU\";" "6#QQEPI\"EPIER\"EPIERA\"EPIERAI\"EPIERAS\"EMU\"SU\"SAL I\"JEU6\"" }{TEXT -1 144 ". \nLe point \340 la suite d'une lettre indi quera la fin d'un mot, ainsi \"EPIE\" n'est pas un mot du dictionnaire , mais est un pr\351fixe pour les mots " }{XPPEDIT 18 0 "\"EPIER\",\"E PIERA\",\"EPIERAI\",\"EPIERAS\"" "6&Q&EPIER6\"Q'EPIERAF$Q(EPIERAIF$Q(E PIERASF$" }{TEXT -1 1 "." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 65 "L'arb re sera repr\351sent\351 par une structure de listes imbriqu\351es: \n " }{XPPEDIT 18 0 "arbre := [\"\", [\"E\", [\"P\", [\"I.\", [\"E\", [\" R.\", [\"A.\", [\"I.\"], [\"S.\"]]]]]], [\"M\", [\"U.\"]]], [\"S\", [ \"U.\"], [\"A\", [\"L\", [\"I.\"]]]], [\"J\", [\"E\", [\"U.\"]]]];" "6 #>%&arbreG7&Q!6\"7%Q\"EF'7$Q\"PF'7$Q#I.F'7$F)7$Q#R.F'7%Q#A.F'7#F-7#Q#S .F'7$Q\"MF'7#Q#U.F'7%Q\"SF'7#F97$Q\"AF'7$Q\"LF'7#F-7$Q\"JF'7$F)7#F9" } }}{PARA 256 "" 0 "" {GLPLOT2D 304 302 302 {PLOTDATA 2 "6G-%%TEXTG6&7$$ \"#]\"\"!$\"$!>F)Q\"E6\"-%'COLOURG6&%$RGBG$F)F)F2$\"*++++\"!\")-%%FONT G6%%*HELVETICAG%%BOLDG\"#7-%'CURVESG6#7$7$F'$\"$v\"F)7$$\"$D\"F)$\"$+ \"F)-F$6&7$F'$\"$!HF)Q\"PF-F.F6-F=6#7$7$F'$\"$v#F)7$F'$\"$+#F)-F$6&7$F '$\"$!RF)Q#I.F-F.F6-F=6#7$7$F'$\"$v$F)7$F'$\"$+$F)-F$6&7$F'$\"$!\\F)F, F.F6-F=6#7$7$F'$\"$v%F)7$F'$\"$+%F)-F$6&7$F'$\"$!fF)Q#R.F-F.F6-F=6#7$7 $F'$\"$v&F)7$F'$\"$+&F)-F$6&7$F'$\"$!pF)Q#A.F-F.F6-F=6#7$7$F'$\"$v'F)7 $F'$\"$+'F)-F$6&7$$\"#DF)$\"$!zF)FfnF.F6-F=6#7$7$F_r$\"$v(F)7$F'$\"$+( F)-F$6&7$$\"#vF)FarQ#S.F-F.F6-F=6#7$7$F_sFgrFir-F$6&7$F_sFKQ\"MF-F.F6- F=6#7$7$F_sFRFT-F$6&7$F_sFZQ#U.F-F.F6-F=6#7$7$F_sF[o7$F_sF^o-F$6&7$$\" $]#F)F*Q\"SF-F.F6-F=6#7$7$FjtFAFC-F$6&7$$\"$D#F)FKFatF.F6-F=6#7$7$FduF R7$FjtFU-F$6&7$FRFKQ\"AF-F.F6-F=6#7$7$FRFRFju-F$6&7$FRFZQ\"LF-F.F6-F=6 #7$7$FRF[o7$FRF^o-F$6&7$FRFcoFfnF.F6-F=6#7$7$FRFio7$FRF\\p-F$6&7$$\"$D %F)F*Q\"JF-F.F6-F=6#7$7$FgwFAFC-F$6&7$FgwFKF,F.F6-F=6#7$7$FgwFR7$FgwFU -F$6&7$FgwFZFatF.F6-F=6#7$7$FgwF[o7$FgwF^o-%*AXESSTYLEG6#%%NONEG" 1 2 0 1 10 0 2 9 1 1 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2 " "Curve 3" "Curve 4" "Curve 5" "Curve 6" "Curve 7" "Curve 8" "Curve 9 " "Curve 10" "Curve 11" "Curve 12" "Curve 13" "Curve 14" "Curve 15" "C urve 16" "Curve 17" "Curve 18" "Curve 19" "Curve 20" "Curve 21" "Curve 22" "Curve 23" "Curve 24" "Curve 25" "Curve 26" "Curve 27" "Curve 28 " "Curve 29" "Curve 30" "Curve 31" "Curve 32" "Curve 33" "Curve 34" "C urve 35" "Curve 36" }}{TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "restart;\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 77 "La \+ racine de l'arbre est un noeud \351tiquet\351 par une cha\356ne de car act\350res vide:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "tree:=[ \"\"]:\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 23 "La proc\351dure r\351 cursive " }{TEXT 257 6 "insert" }{TEXT -1 25 " permet d'ajouter le mot " }{TEXT 260 5 "word " }{TEXT -1 11 "\340 un arbre " }{TEXT 261 4 "tr ee" }{TEXT -1 13 ". Le bool\351en " }{TEXT 262 1 "b" }{TEXT -1 26 " in dique s'il a la valeur " }{TEXT 263 4 "true" }{TEXT -1 102 " le rajout d'un point \340 la fin du mot dans l'arbre,\nsinon aucun point n'est \+ rajout\351 \340 la fin du mot.\n " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 418 "insert:=proc(tree::list,word::string,b::boolean)\nlo cal letter,i,s,M;\nif word=\"\" then return `if`(b,subsop(1=cat(tree[1 ],\".\"),tree),tree) end if;\nletter:=word[1]:\nfor i from 2 to nops(t ree) do\n if op(1,tree[i])[1]=letter then\n return(subsop(i=procn ame(tree[i],word[2..length(word)],b),tree))\n end if\nend do;\nM:=[op (tree),[letter]]:\nreturn(subsop(nops(M)=procname(M[nops(M)],word[2..l ength(word)],b),M))\nend proc:\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "tree:=insert(tree,\"EPI\",false);" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%%treeG7$Q!6\"7$Q\"EF'7$Q\"PF'7#Q\"IF'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "tree:=insert(tree,\"EPI\",true); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%treeG7$Q!6\"7$Q\"EF'7$Q\"PF'7#Q#I .F'" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 51 "Notez la diff\351rence sui vant la valeur bool\351enne de " }{TEXT 264 1 "b" }{TEXT -1 110 ": dan s le premier cas \"EPI\" n'est pas un mot du dictionnaire puisque son \+ dernier caract\350re \"I\" n'est pas suivi" }}{PARA 0 "" 0 "" {TEXT -1 16 "d'un point dans " }{TEXT 287 4 "tree" }{TEXT -1 61 ", mais pour ra servir de pr\351fixe pour d'autres mots \340 ajouter." }}{PARA 0 " " 0 "" {TEXT -1 113 "Dans le second cas, \"EPI\" est un mot du diction naire puisque son dernier caract\350re \"I\" est suivi d'un point dans " }{TEXT 265 4 "tree" }{TEXT -1 1 "." }}}{PARA 0 "" 0 "" {TEXT -1 0 " " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "tree:=insert(tree,\"EPIE R\",true);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%treeG7$Q!6\"7$Q\"EF'7 $Q\"PF'7$Q#I.F'7$F)7#Q#R.F'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "tree:=insert(tree,\"EMU\",true);" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#>%%treeG7$Q!6\"7%Q\"EF'7$Q\"PF'7$Q#I.F'7$F)7#Q#R.F'7$Q\"MF'7#Q#U.F' " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "tree:=insert(tree,\"SU \",true);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%treeG7%Q!6\"7%Q\"EF'7$ Q\"PF'7$Q#I.F'7$F)7#Q#R.F'7$Q\"MF'7#Q#U.F'7$Q\"SF'F3" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "tree:=insert(tree,\"SALI\",true);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%%treeG7%Q!6\"7%Q\"EF'7$Q\"PF'7$Q#I.F '7$F)7#Q#R.F'7$Q\"MF'7#Q#U.F'7%Q\"SF'F37$Q\"AF'7$Q\"LF'7#F-" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "tree:=insert(tree,\"EPIERAI \",true);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%treeG7%Q!6\"7%Q\"EF'7$ Q\"PF'7$Q#I.F'7$F)7$Q#R.F'7$Q\"AF'7#F-7$Q\"MF'7#Q#U.F'7%Q\"SF'F67$F27$ Q\"LF'F3" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "tree:=insert(tr ee,\"EPIERA\",true);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%treeG7%Q!6 \"7%Q\"EF'7$Q\"PF'7$Q#I.F'7$F)7$Q#R.F'7$Q#A.F'7#F-7$Q\"MF'7#Q#U.F'7%Q \"SF'F67$Q\"AF'7$Q\"LF'F3" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "tree:=insert(tree,\"EPIERAS\",true);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%treeG7%Q!6\"7%Q\"EF'7$Q\"PF'7$Q#I.F'7$F)7$Q#R.F'7%Q#A.F'7#F-7 #Q#S.F'7$Q\"MF'7#Q#U.F'7%Q\"SF'F87$Q\"AF'7$Q\"LF'F3" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "tree:=insert(tree,\"JEU\",true);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%%treeG7&Q!6\"7%Q\"EF'7$Q\"PF'7$Q#I.F '7$F)7$Q#R.F'7%Q#A.F'7#F-7#Q#S.F'7$Q\"MF'7#Q#U.F'7%Q\"SF'F87$Q\"AF'7$Q \"LF'F37$Q\"JF'7$F)F8" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 86 "On obtie nt la repr\351sentation en listes imbriqu\351es correspondant \340 l'e xemple pr\351c\351dent." }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 256 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 13 "La proc \351dure " }{TEXT 266 5 "width" }{TEXT -1 28 ", utilis\351e par la pro c\351dure " }{TEXT 285 8 "drawtree" }{TEXT -1 32 ", calcule la largeur de l'arbre " }{TEXT 286 4 "tree" }{TEXT -1 2 ": " }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 422 "width:=proc(tree::list)\nlocal s,nb,level,m axlevel,i;\nlevel:=-1: maxlevel:=0: s:=convert(tree,string);\nfor i to length(s) do\n if s[i]=\"[\" then \n level:=level+1: \n if lev el>maxlevel then maxlevel:=level end if:\n if assigned(nb[level]) t hen nb[level]:=nb[level]+1 else nb[level]:=1 end if\n elif s[i]=\"]\" then\n level:=level-1\n end if: \nend do:\n`if`(maxlevel> 0,max(seq(nb[k],k=1..maxlevel)),1)\nend proc:\n" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 13 "width(tree); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"&" }}}{PARA 0 "" 0 "" {TEXT -1 1 ":" }}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 29 "with(plottools): with(plots):" }}{PARA 7 "" 1 "" {TEXT -1 62 "Warning, the names arrow and changecoords have been redef ined\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 13 "La proc\351dure " } {TEXT 284 9 "drawtree " }{TEXT -1 47 "permet une repr\351sentation gra phique de l'arbre " }{TEXT 269 4 "tree" }{TEXT -1 2 ": " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 489 "drawtree:=proc(tree::list)\nlocal \+ dr,P;\n\ndr:=proc(t::list,leftlim,oldx,oldy)\n local x,y,nb,i,l;\n l: =leftlim;\n nb:=width(t);\n x:=l+iquo(50*nb,2); \n y:=oldy+80;\n i f op(1,t)<>\"\" then \n P:=P,textplot([x,y+10,op(1,t)],color=blue,f ont=[HELVETICA,BOLD,12]),display(line([x,y-5],[oldx,oldy]))\n end if; \n for i from 2 to nops(t) do\n dr(t[i],l,x,y+20): \n nb:=max(n b,width(t[i]));\n l:=l+(nb-1)*50;\n end do\nend proc:\n \nP:=NULL: dr(tree,0,0,0): display(P,axes=none)\nend proc: \n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "drawtree(tree);" }}{PARA 13 "" 1 " " {GLPLOT2D 310 268 268 {PLOTDATA 2 "6G-%%TEXTG6&7$$\"#]\"\"!$\"$!>F)Q \"E6\"-%'COLOURG6&%$RGBG$F)F)F2$\"*++++\"!\")-%%FONTG6%%*HELVETICAG%%B OLDG\"#7-%'CURVESG6#7$7$F'$\"$v\"F)7$$\"$D\"F)$\"$+\"F)-F$6&7$F'$\"$!H F)Q\"PF-F.F6-F=6#7$7$F'$\"$v#F)7$F'$\"$+#F)-F$6&7$F'$\"$!RF)Q#I.F-F.F6 -F=6#7$7$F'$\"$v$F)7$F'$\"$+$F)-F$6&7$F'$\"$!\\F)F,F.F6-F=6#7$7$F'$\"$ v%F)7$F'$\"$+%F)-F$6&7$F'$\"$!fF)Q#R.F-F.F6-F=6#7$7$F'$\"$v&F)7$F'$\"$ +&F)-F$6&7$F'$\"$!pF)Q#A.F-F.F6-F=6#7$7$F'$\"$v'F)7$F'$\"$+'F)-F$6&7$$ \"#DF)$\"$!zF)FfnF.F6-F=6#7$7$F_r$\"$v(F)7$F'$\"$+(F)-F$6&7$$\"#vF)Far Q#S.F-F.F6-F=6#7$7$F_sFgrFir-F$6&7$F_sFKQ\"MF-F.F6-F=6#7$7$F_sFRFT-F$6 &7$F_sFZQ#U.F-F.F6-F=6#7$7$F_sF[o7$F_sF^o-F$6&7$$\"$]#F)F*Q\"SF-F.F6-F =6#7$7$FjtFAFC-F$6&7$$\"$D#F)FKFatF.F6-F=6#7$7$FduFR7$FjtFU-F$6&7$FRFK Q\"AF-F.F6-F=6#7$7$FRFRFju-F$6&7$FRFZQ\"LF-F.F6-F=6#7$7$FRF[o7$FRF^o-F $6&7$FRFcoFfnF.F6-F=6#7$7$FRFio7$FRF\\p-F$6&7$$\"$D%F)F*Q\"JF-F.F6-F=6 #7$7$FgwFAFC-F$6&7$FgwFKF,F.F6-F=6#7$7$FgwFR7$FgwFU-F$6&7$FgwFZFatF.F6 -F=6#7$7$FgwF[o7$FgwF^o-%*AXESSTYLEG6#%%NONEG" 1 2 0 1 10 0 2 9 1 1 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" "Curve 3" "Curve \+ 4" "Curve 5" "Curve 6" "Curve 7" "Curve 8" "Curve 9" "Curve 10" "Curve 11" "Curve 12" "Curve 13" "Curve 14" "Curve 15" "Curve 16" "Curve 17 " "Curve 18" "Curve 19" "Curve 20" "Curve 21" "Curve 22" "Curve 23" "C urve 24" "Curve 25" "Curve 26" "Curve 27" "Curve 28" "Curve 29" "Curve 30" "Curve 31" "Curve 32" "Curve 33" "Curve 34" "Curve 35" "Curve 36 " }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 13 "La proc\351dure " }{TEXT 268 6 "delete" }{TEXT -1 28 " permet de s upprimer le mot " }{TEXT 288 4 "word" }{TEXT -1 12 " de l'arbre " } {TEXT 270 4 "tree" }{TEXT -1 50 ": en fait la proc\351dure ne fait que supprimer dans " }{TEXT 271 4 "tree" }{TEXT -1 42 " le point suivant \+ le dernier caract\350re de " }{TEXT 272 4 "word" }{TEXT -1 100 ".\nLe \+ mot dispara\356t ainsi du dictionnaire mais garde son r\364le de pr \351fixe \351ventuel pour d'autres mots." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 317 "delete:=proc(tree::list,word::string)\nlocal del,t; \n\ndel:=proc(a::list,s::string)\nlocal m,i;\nm:=s:\nfor i from 2 to n ops(a) do\n m:=cat(m,op(1,a[i])[1]):\n if op(1,a[i])[2]=\".\" then \+ \n t:=insert(t,m,`if`(m=word,false,true))\n end if;\n procname(a[ i],m):\n m:=s\n end do:\nend proc:\n\nt:=[\"\"]: del(tree,\"\"); t\n end proc:\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "tree; delete (tree,\"EPIER\");" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7&Q!6\"7%Q\"EF%7$ Q\"PF%7$Q#I.F%7$F'7$Q#R.F%7%Q#A.F%7#F+7#Q#S.F%7$Q\"MF%7#Q#U.F%7%Q\"SF% F67$Q\"AF%7$Q\"LF%F17$Q\"JF%7$F'F6" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# 7&Q!6\"7%Q\"EF%7$Q\"PF%7$Q#I.F%7$F'7$Q\"RF%7%Q#A.F%7#F+7#Q#S.F%7$Q\"MF %7#Q#U.F%7%Q\"SF%F67$Q\"AF%7$Q\"LF%F17$Q\"JF%7$F'F6" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 66 "Le point derri\350re le \"R\" de \"EPIER\" a \+ \351t\351 supprim\351.\n\nLa proc\351dure " }{TEXT 273 10 "deletenode " }{TEXT -1 32 " permet de supprimer de l'arbre " }{TEXT 275 4 "tree" }{TEXT -1 25 " tous les descendants de " }{TEXT 276 4 "node" }{TEXT -1 34 ", c'est \340 dire tous les mots dont " }{TEXT 274 4 "node" } {TEXT -1 19 " \351tait un pr\351fixe: " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 403 "deletenode:=proc(tree::list,node::string)\nlocal del ,n,t;\n\ndel:=proc(a::list,s::string)\nlocal m,i,l,b;\nm:=s:\nfor i fr om 2 to nops(a) do\n m:=cat(m,op(1,a[i])[1]): l:=length(m):\n if op( 1,a[i])[2]=\".\" then b:=true else b:=false end if: \n if l= n and m[1..n]<>node ) then t:=insert(t,m,b) end if;\n procname(a[i],m ):\n m:=s\n end do:\nend proc:\n\nt:=[\"\"]: n:=length(node): del(tr ee,\"\"); t\nend proc:\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "tree; deletenode(tree,\"EPIER\"); drawtree(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7&Q!6\"7%Q\"EF%7$Q\"PF%7$Q#I.F%7$F'7$Q#R.F%7%Q#A.F%7#F+ 7#Q#S.F%7$Q\"MF%7#Q#U.F%7%Q\"SF%F67$Q\"AF%7$Q\"LF%F17$Q\"JF%7$F'F6" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#7&Q!6\"7%Q\"EF%7$Q\"PF%7$Q#I.F%7#F'7$Q \"MF%7#Q#U.F%7%Q\"SF%F/7$Q\"AF%7$Q\"LF%7#F+7$Q\"JF%7$F'F/" }}{PARA 13 "" 1 "" {GLPLOT2D 307 311 311 {PLOTDATA 2 "6?-%%TEXTG6&7$$\"#]\"\"!$\" $!>F)Q\"E6\"-%'COLOURG6&%$RGBG$F)F)F2$\"*++++\"!\")-%%FONTG6%%*HELVETI CAG%%BOLDG\"#7-%'CURVESG6#7$7$F'$\"$v\"F)7$$\"$D\"F)$\"$+\"F)-F$6&7$$ \"#DF)$\"$!HF)Q\"PF-F.F6-F=6#7$7$FK$\"$v#F)7$F'$\"$+#F)-F$6&7$FK$\"$!R F)Q#I.F-F.F6-F=6#7$7$FK$\"$v$F)7$FK$\"$+$F)-F$6&7$FK$\"$!\\F)F,F.F6-F= 6#7$7$FK$\"$v%F)7$FK$\"$+%F)-F$6&7$$\"#vF)FMQ\"MF-F.F6-F=6#7$7$FcpFTFV -F$6&7$FcpFfnQ#U.F-F.F6-F=6#7$7$FcpF]o7$FcpF`o-F$6&7$$\"$]#F)F*Q\"SF-F .F6-F=6#7$7$FfqFAFC-F$6&7$$\"$D#F)FMF]qF.F6-F=6#7$7$F`rFT7$FfqFW-F$6&7 $FTFMQ\"AF-F.F6-F=6#7$7$FTFTFfr-F$6&7$FTFfnQ\"LF-F.F6-F=6#7$7$FTF]o7$F TF`o-F$6&7$FTFeoFhnF.F6-F=6#7$7$FTF[p7$FTF^p-F$6&7$$\"$D%F)F*Q\"JF-F.F 6-F=6#7$7$FctFAFC-F$6&7$FctFMF,F.F6-F=6#7$7$FctFT7$FctFW-F$6&7$FctFfnF ]qF.F6-F=6#7$7$FctF]o7$FctF`o-%*AXESSTYLEG6#%%NONEG" 1 2 0 1 10 0 2 9 1 1 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" "Curve 3" " Curve 4" "Curve 5" "Curve 6" "Curve 7" "Curve 8" "Curve 9" "Curve 10" "Curve 11" "Curve 12" "Curve 13" "Curve 14" "Curve 15" "Curve 16" "Cur ve 17" "Curve 18" "Curve 19" "Curve 20" "Curve 21" "Curve 22" "Curve 2 3" "Curve 24" "Curve 25" "Curve 26" "Curve 27" "Curve 28" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 21 "Parcours r \351cursif en " }{TEXT 277 8 "pr\351ordre" }{TEXT -1 12 " de l'arbre \+ " }{TEXT 294 4 "tree" }{TEXT -1 27 ", dans le sens: n\234ud - fils" } {TEXT 278 1 "1" }{TEXT -1 7 " - fils" }{TEXT 279 1 "2" }{TEXT -1 11 " \+ ... - fils" }{TEXT 280 1 "n" }{TEXT -1 1 "." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 211 "preorder:=proc(tree::list)\nlocal path, disp;\n\n disp:=proc(t::list)\n local k;\n path:= path,op(1,t);\n for k from 2 t o nops(t) do\n procname(t[k]);\n end do;\nend proc;\n \npath:=N ULL; disp(tree); path \nend proc:\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "tree;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7&Q!6\"7%Q\"E F%7$Q\"PF%7$Q#I.F%7$F'7$Q#R.F%7%Q#A.F%7#F+7#Q#S.F%7$Q\"MF%7#Q#U.F%7%Q \"SF%F67$Q\"AF%7$Q\"LF%F17$Q\"JF%7$F'F6" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "preorder(tree);" }}{PARA 11 "" 1 "" {XPPMATH 20 "65Q! 6\"Q\"EF$Q\"PF$Q#I.F$F%Q#R.F$Q#A.F$F'Q#S.F$Q\"MF$Q#U.F$Q\"SF$F,Q\"AF$Q \"LF$F'Q\"JF$F%F," }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 " " 0 "" {TEXT -1 23 "La proc\351dure r\351cursive " }{TEXT 289 5 "find \+ " }{TEXT -1 18 "permet de trouver " }{TEXT 281 4 "word" }{TEXT -1 14 " dans l'arbre " }{TEXT 282 4 "tree" }{TEXT -1 16 ": elle retourne " } {TEXT 290 4 "true" }{TEXT -1 5 " (ou " }{TEXT 291 5 "false" }{TEXT -1 14 ") suivant que " }{TEXT 292 4 "word" }{TEXT -1 28 " a \351t\351 (ou non) trouv\351 dans " }{TEXT 293 4 "tree" }{TEXT -1 2 ". " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 269 "find:=proc(tree::list,word::string )\nlocal letter,i;\nif word=\"\" and op(1,tree)[2]=\".\" then return t rue end if;\nletter:=word[1];\nfor i from 2 to nops(tree) do\n if op( 1,tree[i])[1]=letter then return procname(tree[i],word[2..length(word) ]) end if\nend do;\nfalse\nend proc:\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 109 "find(tree,\"EPI\"),find(tree,\"EPIE\"),find(tree,\"E PIER\"),find(tree,\"EPIERAI\"),\nfind(tree,\"JE\"),find(tree,\"JEU\"); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6(%%trueG%&falseGF#F#F$F#" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 79 "Proc\351dure permettant de constit uer un dictionnaire de mots \340 partir de l'arbre " }{TEXT 283 4 "tre e" }{TEXT -1 1 ":" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 317 "maked ict:=proc(tree::list)\nlocal dict,words;\n\ndict:=proc(t::list,s::stri ng)\nlocal word,i;\nword:=s:\nfor i from 2 to nops(t) do\n word:=cat( word,op(1,t[i])[1]):\n if op(1,t[i])[2]=\".\" then words:=words,word \+ end if;\n procname(t[i],word):\n word:=s\n end do:\nend proc:\n\nwo rds:=NULL: dict(tree,\"\"): [words]\nend proc:\n " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "makedict(tree);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7+Q$EPI6\"Q&EPIERF%Q'EPIERAF%Q(EPIERAIF%Q(EPIERASF%Q$EM UF%Q#SUF%Q%SALIF%Q$JEUF%" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 71 "Second exem ple \340 partir d'une liste tri\351e comportant davantage de mots:" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 242 "tree1:=[\"\"]:\ntxt:=sort( [\"ENTRER\",\"FIL\",\"EGEEN\",\"EGAL\",\"GRASSES\",\"EMULE\",\"FINE\", \"FINAL\",\"EMUE\",\"FILS\",\"EGEE\",\n\"GRASSE\",\"FINES\",\"EMUS\", \"FILE\",\"GRAS\",\"GRAPPE\",\"EGO\",\"EMU\",\"ENTREE\",\"FINS\"]); \n for k in txt do tree1:=insert(tree1,k,true) od: tree1;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%$txtG77Q%EGAL6\"Q%EGEEF'Q&EGEENF'Q$EGOF'Q$EMUF'Q %EMUEF'Q&EMULEF'Q%EMUSF'Q'ENTREEF'Q'ENTRERF'Q$FILF'Q%FILEF'Q%FILSF'Q&F INALF'Q%FINEF'Q&FINESF'Q%FINSF'Q'GRAPPEF'Q%GRASF'Q'GRASSEF'Q(GRASSESF' " }}{PARA 12 "" 1 "" {XPPMATH 20 "6#7&Q!6\"7&Q\"EF%7&Q\"GF%7$Q\"AF%7#Q #L.F%7$F'7$Q#E.F%7#Q#N.F%7#Q#O.F%7$Q\"MF%7&Q#U.F%7#F07$Q\"LF%F97#Q#S.F %7$Q\"NF%7$Q\"TF%7$Q\"RF%7%F'F97#Q#R.F%7$Q\"FF%7%Q\"IF%7%F-F9F<7&F?F*7 $F0F \+ " 0 "" {MPLTEXT 1 0 16 "makedict(tree1);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#77Q%EGAL6\"Q%EGEEF%Q&EGEENF%Q$EGOF%Q$EMUF%Q%EMUEF%Q&EMULEF%Q%EMU SF%Q'ENTREEF%Q'ENTRERF%Q$FILF%Q%FILEF%Q%FILSF%Q&FINALF%Q%FINEF%Q&FINES F%Q%FINSF%Q'GRAPPEF%Q%GRASF%Q'GRASSEF%Q(GRASSESF%" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 16 "drawtree(tree1);" }{TEXT -1 0 "" }}{PARA 13 "" 1 "" {GLPLOT2D 482 430 430 {PLOTDATA 2 "6_p-%%TEXTG6&7$$\"$]\"\"\"! $\"$!>F)Q\"E6\"-%'COLOURG6&%$RGBG$F)F)F2$\"*++++\"!\")-%%FONTG6%%*HELV ETICAG%%BOLDG\"#7-%'CURVESG6#7$7$F'$\"$v\"F)7$$\"$D$F)$\"$+\"F)-F$6&7$ $\"#vF)$\"$!HF)Q\"GF-F.F6-F=6#7$7$FK$\"$v#F)7$F'$\"$+#F)-F$6&7$$\"#DF) $\"$!RF)Q\"AF-F.F6-F=6#7$7$Ffn$\"$v$F)7$FK$\"$+$F)-F$6&7$Ffn$\"$!\\F)Q #L.F-F.F6-F=6#7$7$Ffn$\"$v%F)7$Ffn$\"$+%F)-F$6&7$$\"$D\"F)FhnF,F.F6-F= 6#7$7$FfpF_oFao-F$6&7$FfpFgoQ#E.F-F.F6-F=6#7$7$FfpF^p7$FfpFap-F$6&7$Ff p$\"$!fF)Q#N.F-F.F6-F=6#7$7$Ffp$\"$v&F)7$Ffp$\"$+&F)-F$6&7$$\"$D#F)Fhn Q#O.F-F.F6-F=6#7$7$FgrF_oFao-F$6&7$FDFMQ\"MF-F.F6-F=6#7$7$FDFTFV-F$6&7 $FDFhnQ#U.F-F.F6-F=6#7$7$FDF_o7$FDFbo-F$6&7$FTFgoF_qF.F6-F=6#7$7$FTF^p 7$FDFap-F$6&7$F_oFgoQ\"LF-F.F6-F=6#7$7$F_oF^pFft-F$6&7$F_oFhqF_qF.F6-F =6#7$7$F_oF_r7$F_oFbr-F$6&7$F^pFgoQ#S.F-F.F6-F=6#7$7$F^pF^pFft-F$6&7$$ \"$]&F)FMQ\"NF-F.F6-F=6#7$7$FbvFTFV-F$6&7$FbvFhnQ\"TF-F.F6-F=6#7$7$Fbv F_o7$FbvFbo-F$6&7$FbvFgoQ\"RF-F.F6-F=6#7$7$FbvF^p7$FbvFap-F$6&7$FbvFhq F,F.F6-F=6#7$7$FbvF_r7$FbvFbr-F$6&7$$\"$D&F)$\"$!pF)F_qF.F6-F=6#7$7$Ff x$\"$v'F)7$Fbv$\"$+'F)-F$6&7$F_rFhxQ#R.F-F.F6-F=6#7$7$F_rF^yF`y-F$6&7$ $\"$D(F)F*Q\"FF-F.F6-F=6#7$7$F^zFAFC-F$6&7$F^zFMQ\"IF-F.F6-F=6#7$7$F^z FT7$F^zFW-F$6&7$$\"$]'F)FhnFioF.F6-F=6#7$7$Fa[lF_o7$F^zFbo-F$6&7$$\"$D 'F)FgoF_qF.F6-F=6#7$7$F[\\lF^p7$Fa[lFap-F$6&7$F^yFgoFjuF.F6-F=6#7$7$F^ yF^pFa\\l-F$6&7$$\"$v)F)FhnFdvF.F6-F=6#7$7$F\\]lF_oFg[l-F$6&7$$\"$D)F) FgoFjnF.F6-F=6#7$7$Fe]lF^p7$F\\]lFap-F$6&7$Fe]lFhqFioF.F6-F=6#7$7$Fe]l F_r7$Fe]lFbr-F$6&7$$\"$D*F)FgoF_qF.F6-F=6#7$7$Fg^lF^pF[^l-F$6&7$Fg^lFh qFjuF.F6-F=6#7$7$Fg^lF_r7$Fg^lFbr-F$6&7$$\"%D5F)FgoFjuF.F6-F=6#7$7$Fh_ lF^pF[^l-F$6&7$$\"%]7F)F*FOF.F6-F=6#7$7$Fa`lFAFC-F$6&7$Fa`lFMFewF.F6-F =6#7$7$Fa`lFT7$Fa`lFW-F$6&7$Fa`lFhnFjnF.F6-F=6#7$7$Fa`lF_o7$Fa`lFbo-F$ 6&7$$\"%D7F)FgoQ\"PF-F.F6-F=6#7$7$FjalF^p7$Fa`lFap-F$6&7$FjalFhqF\\blF .F6-F=6#7$7$FjalF_r7$FjalFbr-F$6&7$FjalFhxF_qF.F6-F=6#7$7$FjalF^y7$Fja lFay-F$6&7$$\"%v7F)FgoFjuF.F6-F=6#7$7$FeclF^pFabl-F$6&7$FeclFhqQ\"SF-F .F6-F=6#7$7$FeclF_r7$FeclFbr-F$6&7$FeclFhxF_qF.F6-F=6#7$7$FeclF^y7$Fec lFay-F$6&7$Fecl$\"$!zF)FjuF.F6-F=6#7$7$Fecl$\"$v(F)7$Fecl$\"$+(F)-%*AX ESSTYLEG6#%%NONEG" 1 2 0 1 10 0 2 9 1 1 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" "Curve 3" "Curve 4" "Curve 5" "Curve 6" "Curve 7" "Curve 8" "Curve 9" "Curve 10" "Curve 11" "Curve 12" "Cu rve 13" "Curve 14" "Curve 15" "Curve 16" "Curve 17" "Curve 18" "Curve \+ 19" "Curve 20" "Curve 21" "Curve 22" "Curve 23" "Curve 24" "Curve 25" "Curve 26" "Curve 27" "Curve 28" "Curve 29" "Curve 30" "Curve 31" "Cur ve 32" "Curve 33" "Curve 34" "Curve 35" "Curve 36" "Curve 37" "Curve 3 8" "Curve 39" "Curve 40" "Curve 41" "Curve 42" "Curve 43" "Curve 44" " Curve 45" "Curve 46" "Curve 47" "Curve 48" "Curve 49" "Curve 50" "Curv e 51" "Curve 52" "Curve 53" "Curve 54" "Curve 55" "Curve 56" "Curve 57 " "Curve 58" "Curve 59" "Curve 60" "Curve 61" "Curve 62" "Curve 63" "C urve 64" "Curve 65" "Curve 66" "Curve 67" "Curve 68" "Curve 69" "Curve 70" "Curve 71" "Curve 72" "Curve 73" "Curve 74" "Curve 75" "Curve 76 " "Curve 77" "Curve 78" "Curve 79" "Curve 80" "Curve 81" "Curve 82" }} }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 74 "Troisi\350me exemple \340 partir d'un texte-source (ici un po\350me de L\351o Ferr\351): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2456 "txt:=\"La m\351moire et la mer\n \+ \nLa mar\351e, je l'ai dans le c\234ur\nQui me remonte comme un signe \nJe meurs de ma petite s\234ur, \nde mon enfance et de mon cygne\nUn \+ bateau, \347a d\351pend comment\nOn l'arrime au port de justesse\nIl p leure de mon firmament\nDes ann\351es lumi\350res et j'en laisse\nJe s uis le fant\364me jersey\nCelui qui vient les soirs de frime\nTe lance r la brume en baiser\nEt te ramasser dans ses rimes\nComme le tr\351ma il de juillet\nO\371 luisait le loup solitaire\nCelui que je voyais br iller\nAux doigts de sable de la terre\n\nRappelle-toi ce chien de mer \nQue nous lib\351rions sur parole\nEt qui gueule dans le d\351sert\nD es go\351mons de n\351cropole\nJe suis s\373r que la vie est l\340\nAv ec ses poumons de flanelle\nQuand il pleure de ces temps l\340\nLe fro id tout gris qui nous appelle\nJe me souviens des soirs l\340-bas\nEt \+ des sprints gagn\351s sur l'\351cume\nCette bave des chevaux ras\nAu r az des rocs qui se consument\n\326 l'ange des plaisirs perdus\n\326 ru meurs d'une autre habitude\nMes d\351sirs d\350s lors ne sont plus\nQu 'un chagrin de ma solitude\n\nEt le diable des soirs conquis\nAvec ses p\342leurs de rescousse\nEt le squale des paradis\nDans le milieu mou ill\351 de mousse\nReviens fille verte des fjords\nReviens violon des \+ violonades\nDans le port fanfarent les cors\nPour le retour des camara des\n\326 parfum rare des salants\nDans le poivre feu des ger\347ures \nQuand j'allais, g\351om\351trisant,\nMon \342me au creux de ta bless ure\nDans le d\351sordre de ton cul\nPoiss\351 dans des draps d'aube f ine\nJe voyais un vitrail de plus,\nEt toi fille verte, mon spleen\n\n Les coquillages figurant\nSous les sunlights cass\351s liquides\nJouen t de la castagnette tant\nQu'on dirait l'Espagne livide\nDieux de gran its, ayez piti\351\nDe leur vocation de parure\nQuand le couteau vient s'immiscer\nDans leur castagnette figure\nEt je voyais ce qu'on press ent\nQuand on pressent l'entrevoyure\nEntre les persiennes du sang\nEt que les globules figurent\nUne math\351matique bleue,\nSur cette mer \+ jamais \351tale\nD'o\371 me remonte peu \340 peu\nCette m\351moire des \351toiles\n\nCette rumeur qui vient de l\340\nSous l'arc copain o \371 je m'aveugle\nCes mains qui me font du fla-fla\nCes mains ruminan tes qui meuglent\nCette rumeur me suit longtemps\nComme un mendiant so us l'anath\350me\nComme l'ombre qui perd son temps\n\300 dessiner mon \+ th\351or\350me\nEt sous mon maquillage roux\nS'en vient battre comme u ne porte\nCette rumeur qui va debout\nDans la rue, aux musiques mortes \nC'est fini, la mer, c'est fini\nSur la plage, le sable b\352le\nComm e des moutons d'infini...\nQuand la mer berg\350re m'appelle\n\nL\351o Ferr\351\":\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "txt:=sort (StringTools[Split](txt,\" :!,.';\\n\")): " }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 61 "tree2:=[\"\"]:\nfor k in txt do tree2:=insert(tree2 ,k,true) od: " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "makedict(t ree2);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#7^\\lQ#Au6\"Q$AuxF%Q%AvecF%Q \"CF%Q&CeluiF%Q$CesF%Q&CetteF%Q&CommeF%Q\"DF%Q%DansF%Q#DeF%Q$DesF%Q&Di euxF%Q&EntreF%Q(EspagneF%Q#EtF%Q&Ferr|dyF%Q#IlF%Q#JeF%Q'JouentF%Q#LaF% Q#LeF%Q$LesF%Q$L|dyoF%Q$MesF%Q$MonF%Q#OnF%Q#O|dzF%Q'Poiss|dyF%Q%PourF% Q#QuF%Q&QuandF%Q$QueF%Q$QuiF%Q-Rappelle-toiF%Q(ReviensF%Q\"SF%Q%SousF% Q$SurF%Q#TeF%Q#UnF%Q$UneF%Q#aiF%Q'allaisF%Q)anath|cymeF%Q%angeF%Q'ann| dyesF%Q(appelleF%Q$arcF%Q'arrimeF%Q#auF%Q%aubeF%Q&autreF%Q$auxF%Q(aveu gleF%Q%ayezF%Q'baiserF%Q'bateauF%Q'battreF%Q%baveF%Q(berg|cyreF%Q)bles sureF%Q&bleueF%Q(brillerF%Q&brumeF%Q%b|eyleF%Q\"cF%Q*camaradesF%Q'cass |dysF%Q,castagnetteF%Q#ceF%Q$cesF%Q&cetteF%Q(chagrinF%Q(chevauxF%Q&chi enF%Q&commeF%Q(commentF%Q(conquisF%Q*consumentF%Q'copainF%Q,coquillage sF%Q%corsF%Q(couteauF%Q&creuxF%Q$culF%Q&cygneF%Q%c|gturF%Q\"dF%Q%dansF %Q#deF%Q'deboutF%Q$desF%Q)dessinerF%Q'diableF%Q'diraitF%Q'doigtsF%Q&dr apsF%Q#duF%Q$d|cysF%Q'd|dypendF%Q'd|dysertF%Q'd|dysirsF%Q)d|dysordreF% Q#enF%Q(enfanceF%Q,entrevoyureF%Q$estF%Q#etF%Q*fanfarentF%Q(fant|_zmeF %Q$feuF%Q)figurantF%Q'figureF%Q)figurentF%Q&filleF%Q%fineF%Q%finiF%Q*f irmamentF%Q'fjordsF%Q(fla-flaF%Q)flanelleF%Q%fontF%Q&frimeF%Q&froidF%Q 'gagn|dysF%Q)ger|byuresF%Q)globulesF%Q(go|dymonsF%Q(granitsF%Q%grisF%Q 'gueuleF%Q-g|dyom|dytrisantF%Q)habitudeF%Q#ilF%Q)immiscerF%Q'infiniF%Q \"jF%Q'jamaisF%Q#jeF%Q'jerseyF%Q(juilletF%Q)justesseF%Q\"lF%Q#laF%Q'la isseF%Q'lancerF%Q#leF%Q$lesF%Q%leurF%Q*lib|dyrionsF%Q)liquidesF%Q'livi deF%Q*longtempsF%Q%lorsF%Q%loupF%Q(luisaitF%Q)lumi|cyresF%Q#l|[yF%Q'l| [y-basF%Q\"mF%Q#maF%Q&mainsF%Q+maquillageF%Q&mar|dyeF%Q-math|dymatique F%Q#meF%Q)mendiantF%Q$merF%Q)meuglentF%Q&meursF%Q'milieuF%Q$monF%Q'mor tesF%Q(mouill|dyF%Q'mousseF%Q(moutonsF%Q)musiquesF%Q(m|dymoireF%Q#neF% Q%nousF%Q*n|dycropoleF%Q&ombreF%Q#onF%Q#o|dzF%Q(paradisF%Q'parfumF%Q'p aroleF%Q'parureF%Q%perdF%Q'perdusF%Q+persiennesF%Q'petiteF%Q$peuF%Q&pi ti|dyF%Q&plageF%Q)plaisirsF%Q'pleureF%Q%plusF%Q'poivreF%Q%portF%Q&port eF%Q(poumonsF%Q)pressentF%Q(p|]yleursF%Q#quF%Q$queF%Q$quiF%Q)ramasserF %Q%rareF%Q$rasF%Q$razF%Q(remonteF%Q*rescousseF%Q'retourF%Q&rimesF%Q%ro csF%Q%rouxF%Q$rueF%Q'rumeurF%Q(rumeursF%Q+ruminantesF%Q\"sF%Q&sableF%Q (salantsF%Q%sangF%Q#seF%Q$sesF%Q&signeF%Q&soirsF%Q*solitaireF%Q)solitu deF%Q$sonF%Q%sontF%Q%sousF%Q)souviensF%Q'spleenF%Q(sprintsF%Q'squaleF% Q%suisF%Q%suitF%Q*sunlightsF%Q$surF%Q%s|gturF%Q$s|fzrF%Q#taF%Q%tantF%Q #teF%Q&tempsF%Q&terreF%Q)th|dyor|cymeF%Q$toiF%Q$tonF%Q%toutF%Q(tr|dyma ilF%Q#unF%Q$uneF%Q#vaF%Q&verteF%Q$vieF%Q&vientF%Q'violonF%Q+violonades F%Q(vitrailF%Q)vocationF%Q'voyaisF%Q\"|[wF%Q\"|axF%Q\"|[yF%Q$|]ymeF%Q# |byaF%Q&|dycumeF%Q&|dytaleF%Q(|dytoilesF%" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 41 "find(tree2,\"fjord\"),find(tree2,\"fjords\");" }} {PARA 11 "" 1 "" {XPPMATH 20 "6$%&falseG%%trueG" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 3 " " 0 "" {TEXT -1 0 "" }}}{MARK "64 0 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }