{VERSION 5 0 "IBM INTEL NT" "5.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 Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 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 "Maple Output" -1 11 1 {CSTYLE "" -1 -1 "Ti mes" 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 }} {SECT 0 {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 9 "Pr\351ambule" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "arbreVide := proc()\n # sortie : un arbre vide\n\n RETURN([]);\nend; " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%*arbreVideGf*6\"F&F&F&-%'RETURNG6#7\"F&F&F&" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 130 "arbreCons := proc(e, g, d) \n# e : \351l\351ment\n# g : arbre gauche\n# d : arbre droit\n# sortie : arbre (e, g, d)\n RETURN([e, g, d]);\nend;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%*arbreConsGf*6%%\"eG%\"gG%\"dG6\"F*F*-%'RETURNG6#7%9$ 9%9&F*F*F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "racine := pro c(a)\n# a : arbre\n# sortie : l'\351l\351ment racine\n\n RETURN( a[1] );\nend;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'racineGf*6#%\"aG6\"F(F (-%'RETURNG6#&9$6#\"\"\"F(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "arbreGauche := proc(a)\n# a : arbre\n# sortie : arbre gauche\n \n RETURN( a[2] );\nend;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%,arbreG aucheGf*6#%\"aG6\"F(F(-%'RETURNG6#&9$6#\"\"#F(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "arbreDroit := proc(a)\n# a : arbre\n# sorti e : arbre droit\n\n RETURN( a[3] );\nend;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%+arbreDroitGf*6#%\"aG6\"F(F(-%'RETURNG6#&9$6#\"\"$F(F (F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 117 "arbreEstVide? := pr oc(a)\n# a : arbre\n# sortie : bool\351en, true ssi l'arbre est vide\n \n RETURN( evalb( a = [] ) );\nend;" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#>%.arbreEstVide?Gf*6#%\"aG6\"F(F(-%'RETURNG6#-%&evalbG6#/9$7\"F(F(F( " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 128 "a := arbreCons(12, arb reCons(5, arbreVide(), arbreVide()), arbreCons(25, arbreCons(2, arbreV ide(), arbreVide()), arbreVide())); " }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#>%\"aG7%\"#77%\"\"&7\"F)7%\"#D7%\"\"#F)F)F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "racine(a);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\" #7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "arbreGauche(a);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#7%\"\"&7\"F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "arbreGauche(arbreDroit(a));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7%\"\"#7\"F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "arbreEstVide?(a);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%&falseG" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 238 "arbreEstFeuille? := proc(a) \n# a : arbre\n# sortie : booleen, true ssi l'arbre est une feuille\n \n if arbreEstVide?(a) then\n RETURN(false);\n else\n RETU RN(arbreEstVide?(arbreGauche(a)) and arbreEstVide?(arbreDroit(a)));\n \+ fi;\nend;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%1arbreEstFeuille?Gf*6 #%\"aG6\"F(F(@%-%.arbreEstVide?G6#9$-%'RETURNG6#%&falseG-F/6#3-F+6#-%, arbreGaucheGF,-F+6#-%+arbreDroitGF,F(F(F(" }}}}{SECT 0 {PARA 3 "" 0 " " {TEXT -1 19 "les arbres de maple" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "op(0, [67,68,69]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%listG" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "op(1, [67,68,69]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "op(2, [67,68,69]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#o" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "op(3, [67,68,69]);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#\"#p" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "t := array(0..2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# >%\"tG-%&arrayG6$;\"\"!\"\"#7\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "op(0,t);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%'symbolG" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "op(1,t);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&ARRAYG6$7#;\"\"!\"\"#7%/6#F(&%\"?GF,/6#\"\"\"&F.F0/6 #F)&F.F4" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "op(0, op(1,t)); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%&arrayG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "t[0] := 67;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#> &%\"tG6#\"\"!\"#n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "t[1] : = 68;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%\"tG6#\"\"\"\"#o" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "t[2] := 69;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>&%\"tG6#\"\"#\"#p" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "op(1, op(1,t));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "op(2, op(1,t));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#; \"\"!\"\"#" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "op(3, op(1,t) );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7%/\"\"!\"#n/\"\"\"\"#o/\"\"#\"# p" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "op(1, op(3, op(1,t))); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"!\"#n" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 22 "op(2, op(3, op(1,t)));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"\"\"#o" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "op(3, op(3, op(1,t)));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/\"\"#\" #p" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 10 "Exercice 3" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 220 "affichePrefixe := proc(a)\n # a : arbre\n# sortie affichage pr\351fixe\n\n if arbreEstVide?(a) th en\n printf(\"\");\n else \n affichePrefixe(arbreGauche(a));\n \+ print(racine(a));\n affichePrefixe(arbreDroit(a));\n fi;\nend; " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%/affichePrefixeGf*6#%\"aG6\"F(F( @%-%.arbreEstVide?G6#9$-%'printfG6#Q!F(C%-F$6#-%,arbreGaucheGF,-%&prin tG6#-%'racineGF,-F$6#-%+arbreDroitGF,F(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "affi chagePrefixe(a);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%1affichagePrefix eG6#7%\"#77%\"\"&7\"F*7%\"#D7%\"\"#F*F*F*" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 216 "afficheInfixe := proc(a)\n# a : arbre\n# sortie af fichage infixe\n\n if arbreEstVide?(a) then\n printf(\"\");\n els e \n print(racine(a));\n afficheInfixe(arbreGauche(a));\n aff icheInfixe(arbreDroit(a));\n fi;\nend;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%.afficheInfixeGf*6#%\"aG6\"F(F(@%-%.arbreEstVide?G6#9$-%'print fG6#Q!F(C%-%&printG6#-%'racineGF,-F$6#-%,arbreGaucheGF,-F$6#-%+arbreDr oitGF,F(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "afficheInfi xe(a);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#7" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#D" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"#" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 224 "affichePostfixe := proc(a)\n# a : arbre\n# sortie affichage p ostfixe\n\n if arbreEstVide?(a) then\n printf(\"\");\n else \n \+ affichePostfixe(arbreGauche(a));\n affichePostfixe(arbreDroit(a)); \n print(racine(a));\n fi;\nend;" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#>%0affichePostfixeGf*6#%\"aG6\"F(F(@%-%.arbreEstVide?G6#9$-%'printfG 6#Q!F(C%-F$6#-%,arbreGaucheGF,-F$6#-%+arbreDroitGF,-%&printG6#-%'racin eGF,F(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "affichePostfi xe(a);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"#" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#D" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 10 "Exercice 4" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 274 "a := arbreCons(\"*\", arbreCons(\"+\", arbreCons(74, arbreVide(), arbre Vide()), arbreCons(\"/\", arbreCons(45, arbreVide(), arbreVide()), arb reCons(7, arbreVide(), arbreVide()))), arbreCons(\"-\", arbreCons(1.2, arbreVide(), arbreVide()), arbreCons(3.6, arbreVide(), arbreVide()))) ;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"aG7%Q\"*6\"7%Q\"+F'7%\"#u7\"F ,7%Q\"/F'7%\"#XF,F,7%\"\"(F,F,7%Q\"-F'7%$\"#7!\"\"F,F,7%$\"#OF8F,F," } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "afficheInfixe(a);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#Q\"*6\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q\"+6\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#u" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q\"/6\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#X" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q\"-6\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"#7!\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"#O!\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "affichePrefixe(a);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #\"#u" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q\"+6\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#X" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q\"/6\"" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q\"*6\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"#7!\"\"" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#Q\"-6\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"#O !\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 159 "b := arbreCons(\" +\", arbreCons(9.4, arbreVide(), arbreVide()), arbreCons(\"/\", arbreC ons(12, arbreVide(), arbreVide()), arbreCons(0, arbreVide(), arbreVide ())));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"bG7%Q\"+6\"7%$\"#%*!\"\" 7\"F,7%Q\"/F'7%\"#7F,F,7%\"\"!F,F," }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "affichePrefixe(b);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #$\"#%*!\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q\"+6\"" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#\"#7" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q\"/6\" " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 807 "evaluation := proc(a)\n# a : arbre repr\351sentant une expression arithm\351tique\n# sortie : r\351el, valeur de l'expre ssion\n\n local e;\n\n if arbreEstVide?(a) then\n RETURN(0);\n e lse\n if arbreEstFeuille?(a) then\n RETURN(racine(a));\n el se\n if racine(a) = \"+\" then\n RETURN( evaluation(arbreG auche(a)) + evaluation(arbreDroit(a)) );\n elif racine(a) = \"-\" then\n RETURN( evaluation(arbreGauche(a)) - evaluation(arbreDr oit(a)) );\n elif racine(a) = \"*\" then\n RETURN( evaluat ion(arbreGauche(a)) * evaluation(arbreDroit(a)) );\n elif racine( a) = \"/\" then\n e := evaluation(arbreDroit(a));\n if e <> 0 then\n RETURN( evaluation(arbreGauche(a)) / evaluation( arbreDroit(a)) );\n else\n RETURN(false)\n fi; \n fi;\n fi;\n fi;\nend;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%+evaluationGf*6#%\"aG6#%\"eG6\" F*@%-%.arbreEstVide?G6#9$-%'RETURNG6#\"\"!@%-%1arbreEstFeuille?GF.-F16 #-%'racineGF.@*/F9Q\"+F*-F16#,&-F$6#-%,arbreGaucheGF.\"\"\"-F$6#-%+arb reDroitGF.FE/F9Q\"-F*-F16#,&FAFEFF!\"\"/F9Q\"*F*-F16#*&FAFEFFFE/F9Q\"/ F*C$>8$FF@%0FYF3-F16#*&FAFEFFFO-F16#%&falseGF*F*F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "evaluation(a);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$!+9dGI>!\"(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "evaluation(b);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&$\"#%*!\"\"\" \"\"%&falseGF'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 955 "evaluati onX := proc(a, x)\n# a : arbre repr\351sentant une expression arithm \351tique\n# x : r\351el, valeur de la variable x\n# sortie : r\351el, valeur de l'expression\n\n local e;\n\n if arbreEstVide?(a) then\n \+ RETURN(0);\n else\n if arbreEstFeuille?(a) then\n if racin e(a) = \"x\" then\n RETURN(x);\n else\n RETURN(raci ne(a));\n fi;\n else\n if racine(a) = \"+\" then\n \+ RETURN( evaluationX(arbreGauche(a), x) + evaluationX(arbreDroit(a), x ) );\n elif racine(a) = \"-\" then\n RETURN( evaluationX(a rbreGauche(a), x) - evaluationX(arbreDroit(a), x) );\n elif racin e(a) = \"*\" then\n RETURN( evaluationX(arbreGauche(a), x) * ev aluationX(arbreDroit(a), x) );\n elif racine(a) = \"/\" then\n \+ e := evaluationX(arbreDroit(a), x);\n if e <> 0 then\n \+ RETURN( evaluationX(arbreGauche(a), x) / evaluationX(arbreDroit( a), x) );\n else\n RETURN(false)\n fi;\n f i;\n fi;\n fi;\nend;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%,evaluat ionXGf*6$%\"aG%\"xG6#%\"eG6\"F+@%-%.arbreEstVide?G6#9$-%'RETURNG6#\"\" !@%-%1arbreEstFeuille?GF/@%/-%'racineGF/Q\"xF+-F26#9%-F26#F:@*/F:Q\"+F +-F26#,&-F$6$-%,arbreGaucheGF/F?\"\"\"-F$6$-%+arbreDroitGF/F?FL/F:Q\"- F+-F26#,&FHFLFM!\"\"/F:Q\"*F+-F26#*&FHFLFMFL/F:Q\"/F+C$>8$FM@%0FjnF4-F 26#*&FHFLFMFV-F26#%&falseGF+F+F+" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 102 "c := arbreCons(\"+\", arbreCons(5, arbreVide(), arbr eVide()), arbreCons(\"x\", arbreVide(), arbreVide()));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"cG7%Q\"+6\"7%\"\"&7\"F*7%Q\"xF'F*F*" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "evaluationX(c, 10);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#\"#:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}} {MARK "0 0 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }