diff --git a/lessons/tris/figures/arbre_tab.eps b/lessons/tris/figures/arbre_tab.eps
new file mode 100644
index 0000000000000000000000000000000000000000..cb1b47bad8822176eaf5152fa309315262e6fa2a
--- /dev/null
+++ b/lessons/tris/figures/arbre_tab.eps
@@ -0,0 +1,405 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Title: arbre_tab.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 5e
+%%CreationDate: Thu Dec 27 00:07:59 2018
+%%BoundingBox: 0 0 511 506
+%Magnification: 1.0000
+%%EndComments
+%%BeginProlog
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+ /DrawEllipse {
+	/endangle exch def
+	/startangle exch def
+	/yrad exch def
+	/xrad exch def
+	/y exch def
+	/x exch def
+	/savematrix mtrx currentmatrix def
+	x y tr xrad yrad sc 0 0 1 startangle endangle arc
+	closepath
+	savematrix setmatrix
+	} def
+
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+/pageheader {
+save
+newpath 0 506 moveto 0 0 lineto 511 0 lineto 511 506 lineto closepath clip newpath
+-12.6 554.5 translate
+1 -1 scale
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06000 0.06000 sc
+} bind def
+/pagefooter {
+$F2psEnd
+restore
+} bind def
+%%EndProlog
+pageheader
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 50
+% Ellipse
+15.000 slw
+n 1200 3600 300 300 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 2400 2400 300 300 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 3600 3600 300 300 0 360 DrawEllipse gs col0 s gr
+
+% Polyline
+0 slj
+0 slc
+n 1200 3285 m
+ 2175 2580 l gs col0 s gr 
+% Polyline
+n 3600 3300 m
+ 2640 2580 l gs col0 s gr 
+% Ellipse
+n 6007 3592 300 300 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 7207 2392 300 300 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 8407 3592 300 300 0 360 DrawEllipse gs col0 s gr
+
+% Polyline
+n 6007 3277 m
+ 6982 2572 l gs col0 s gr 
+% Polyline
+n 8407 3292 m
+ 7447 2572 l gs col0 s gr 
+% Ellipse
+n 600 4800 300 300 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 1800 4800 300 300 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 3000 4800 300 300 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4800 1200 300 300 0 360 DrawEllipse gs col0 s gr
+
+% Polyline
+n 1046 3837 m
+ 566 4512 l gs col0 s gr 
+% Polyline
+n 1380 3840 m
+ 1815 4500 l gs col0 s gr 
+% Polyline
+n 3450 3855 m
+ 3015 4515 l gs col0 s gr 
+% Polyline
+n 7215 2085 m
+ 5055 1350 l gs col0 s gr 
+% Polyline
+n 2400 2085 m
+ 4545 1365 l gs col0 s gr 
+% Polyline
+n 1725 7275 m 2325 7275 l 2325 7875 l 1725 7875 l
+ cp gs col0 s gr 
+% Polyline
+n 2325 7275 m 2925 7275 l 2925 7875 l 2325 7875 l
+ cp gs col0 s gr 
+% Polyline
+n 2925 7275 m 3525 7275 l 3525 7875 l 2925 7875 l
+ cp gs col0 s gr 
+% Polyline
+n 3525 7275 m 4125 7275 l 4125 7875 l 3525 7875 l
+ cp gs col0 s gr 
+% Polyline
+n 4125 7275 m 4725 7275 l 4725 7875 l 4125 7875 l
+ cp gs col0 s gr 
+% Polyline
+n 4725 7275 m 5325 7275 l 5325 7875 l 4725 7875 l
+ cp gs col0 s gr 
+% Polyline
+n 5325 7275 m 5925 7275 l 5925 7875 l 5325 7875 l
+ cp gs col0 s gr 
+% Polyline
+n 5925 7275 m 6525 7275 l 6525 7875 l 5925 7875 l
+ cp gs col0 s gr 
+% Polyline
+n 6525 7275 m 7125 7275 l 7125 7875 l 6525 7875 l
+ cp gs col0 s gr 
+% Polyline
+n 7125 7275 m 7725 7275 l 7725 7875 l 7125 7875 l
+ cp gs col0 s gr 
+% Polyline
+n 1725 6975 m 2325 6975 l 2325 7275 l 1725 7275 l
+ cp gs col0 s gr 
+% Polyline
+n 2325 6975 m 2925 6975 l 2925 7275 l 2325 7275 l
+ cp gs col0 s gr 
+% Polyline
+n 2925 6975 m 3525 6975 l 3525 7275 l 2925 7275 l
+ cp gs col0 s gr 
+% Polyline
+n 3525 6975 m 4125 6975 l 4125 7275 l 3525 7275 l
+ cp gs col0 s gr 
+% Polyline
+n 4125 6975 m 4725 6975 l 4725 7275 l 4125 7275 l
+ cp gs col0 s gr 
+% Polyline
+n 4725 6975 m 5325 6975 l 5325 7275 l 4725 7275 l
+ cp gs col0 s gr 
+% Polyline
+n 5325 6975 m 5925 6975 l 5925 7275 l 5325 7275 l
+ cp gs col0 s gr 
+% Polyline
+n 5925 6975 m 6525 6975 l 6525 7275 l 5925 7275 l
+ cp gs col0 s gr 
+% Polyline
+n 6525 6975 m 7125 6975 l 7125 7275 l 6525 7275 l
+ cp gs col0 s gr 
+% Polyline
+n 7125 6975 m 7725 6975 l 7725 7275 l 7125 7275 l
+ cp gs col0 s gr 
+% Arc
+gs  clippath
+2268 6698 m 2428 7015 l 2535 6961 l 2376 6644 l 2376 6644 l 2457 6940 l 2268 6698 l cp
+eoclip
+n 2175.0 6975.0 300.0 180.0000 0.0000 arc
+gs col0 s gr
+ gr
+
+% arrowhead
+n 2268 6698 m 2457 6940 l 2376 6644 l 2349 6725 l 2268 6698 l 
+ cp gs 0.00 setgray ef gr  col0 s
+% Arc
+gs  clippath
+2939 6657 m 3019 7003 l 3136 6976 l 3056 6630 l 3056 6630 l 3066 6936 l 2939 6657 l cp
+eoclip
+n 2475.0 6975.0 600.0 180.0000 0.0000 arc
+gs col0 s gr
+ gr
+
+% arrowhead
+n 2939 6657 m 3066 6936 l 3056 6630 l 3011 6702 l 2939 6657 l 
+ cp gs 0.00 setgray ef gr  col0 s
+% Arc
+gs  clippath
+4754 6651 m 4818 7000 l 4936 6978 l 4872 6630 l 4872 6630 l 4868 6936 l 4754 6651 l cp
+eoclip
+n 4125.0 6975.0 750.0 180.0000 0.0000 arc
+gs col0 s gr
+ gr
+
+% arrowhead
+n 4754 6651 m 4868 6936 l 4872 6630 l 4824 6699 l 4754 6651 l 
+ cp gs 0.00 setgray ef gr  col0 s
+% Arc
+gs  clippath
+5371 6646 m 5417 6997 l 5536 6982 l 5490 6630 l 5490 6630 l 5470 6936 l 5371 6646 l cp
+eoclip
+n 4425.0 6975.0 1050.0 180.0000 0.0000 arc
+gs col0 s gr
+ gr
+
+% arrowhead
+n 5371 6646 m 5470 6936 l 5490 6630 l 5438 6698 l 5371 6646 l 
+ cp gs 0.00 setgray ef gr  col0 s
+% Arc
+gs  clippath
+4068 8207 m 4033 7854 l 3913 7866 l 3949 8219 l 3949 8219 l 3979 7915 l 4068 8207 l cp
+eoclip
+n 5325.0 7875.0 1350.0 180.0000 0.0000 arcn
+gs col0 s gr
+ gr
+
+% arrowhead
+n 4068 8207 m 3979 7915 l 3949 8219 l 4002 8153 l 4068 8207 l 
+ cp gs 0.00 setgray ef gr  col0 s
+% Arc
+gs  clippath
+4078 8203 m 4032 7852 l 3913 7867 l 3959 8219 l 3959 8219 l 3980 7914 l 4078 8203 l cp
+eoclip
+n 5025.0 7875.0 1050.0 180.0000 0.0000 arcn
+gs col0 s gr
+ gr
+
+% arrowhead
+n 4078 8203 m 3980 7914 l 3959 8219 l 4011 8151 l 4078 8203 l 
+ cp gs 0.00 setgray ef gr  col0 s
+% Arc
+gs  clippath
+2895 8198 m 2831 7849 l 2713 7871 l 2777 8219 l 2777 8219 l 2782 7914 l 2895 8198 l cp
+eoclip
+n 3525.0 7875.0 750.0 180.0000 0.0000 arcn
+gs col0 s gr
+ gr
+
+% arrowhead
+n 2895 8198 m 2782 7914 l 2777 8219 l 2825 8150 l 2895 8198 l 
+ cp gs 0.00 setgray ef gr  col0 s
+% Arc
+gs  clippath
+2934 8181 m 2827 7842 l 2713 7878 l 2819 8217 l 2819 8217 l 2787 7913 l 2934 8181 l cp
+eoclip
+n 3225.0 7875.0 450.0 180.0000 0.0000 arcn
+gs col0 s gr
+ gr
+
+% arrowhead
+n 2934 8181 m 2787 7913 l 2819 8217 l 2858 8141 l 2934 8181 l 
+ cp gs 0.00 setgray ef gr  col0 s
+% Arc
+gs  clippath
+7181 6642 m 7216 6995 l 7336 6983 l 7300 6630 l 7300 6630 l 7271 6935 l 7181 6642 l cp
+eoclip
+n 5925.0 6975.0 1350.0 180.0000 0.0000 arc
+gs col0 s gr
+ gr
+
+% arrowhead
+n 7181 6642 m 7271 6935 l 7300 6630 l 7247 6696 l 7181 6642 l 
+ cp gs 0.00 setgray ef gr  col0 s
+/Times-Roman ff 333.33 scf sf
+4350 1050 m
+gs 1 -1 sc (0) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+1875 2250 m
+gs 1 -1 sc (1) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+6675 2250 m
+gs 1 -1 sc (2) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+675 3525 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+3075 3525 m
+gs 1 -1 sc (4) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+5475 3525 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+7875 3525 m
+gs 1 -1 sc (6) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+225 4500 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+1425 4500 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+2625 4500 m
+gs 1 -1 sc (9) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+1950 7200 m
+gs 1 -1 sc (0) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+2550 7200 m
+gs 1 -1 sc (1) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+3150 7200 m
+gs 1 -1 sc (2) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+3750 7200 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+4350 7200 m
+gs 1 -1 sc (4) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+4950 7200 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+5550 7200 m
+gs 1 -1 sc (6) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+6150 7200 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+6750 7200 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+7275 7200 m
+gs 1 -1 sc (9) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+3000 8925 m
+gs 1 -1 sc (est fils de) col0 sh gr
+/Times-Roman ff 333.33 scf sf
+3225 5775 m
+gs 1 -1 sc (est parent de) col0 sh gr
+% here ends figure;
+pagefooter
+showpage
+%%Trailer
+%EOF
diff --git a/lessons/tris/figures/arbre_tab.fig b/lessons/tris/figures/arbre_tab.fig
new file mode 100644
index 0000000000000000000000000000000000000000..2132af9aea2d3694bbaf1efa507e15f52a03bfcc
--- /dev/null
+++ b/lessons/tris/figures/arbre_tab.fig
@@ -0,0 +1,131 @@
+#FIG 3.2  Produced by xfig version 3.2.5c
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+6 225 825 8775 5175
+6 885 2085 3915 3915
+1 3 0 2 0 7 50 -1 -1 0.000 1 0.0000 1200 3600 300 300 1200 3600 1200 3900
+1 3 0 2 0 7 50 -1 -1 0.000 1 0.0000 2400 2400 300 300 2400 2400 2400 2700
+1 3 0 2 0 7 50 -1 -1 0.000 1 0.0000 3600 3600 300 300 3600 3600 3600 3900
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 2
+	 1200 3285 2175 2580
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 2
+	 3600 3300 2640 2580
+-6
+6 5625 2025 8775 3975
+1 3 0 2 0 7 50 -1 -1 0.000 1 0.0000 6007 3592 300 300 6007 3592 6007 3892
+1 3 0 2 0 7 50 -1 -1 0.000 1 0.0000 7207 2392 300 300 7207 2392 7207 2692
+1 3 0 2 0 7 50 -1 -1 0.000 1 0.0000 8407 3592 300 300 8407 3592 8407 3892
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 2
+	 6007 3277 6982 2572
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 2
+	 8407 3292 7447 2572
+-6
+1 3 0 2 0 7 50 -1 -1 0.000 1 0.0000 600 4800 300 300 600 4800 600 5100
+1 3 0 2 0 7 50 -1 -1 0.000 1 0.0000 1800 4800 300 300 1800 4800 1800 5100
+1 3 0 2 0 7 50 -1 -1 0.000 1 0.0000 3000 4800 300 300 3000 4800 3000 5100
+1 3 0 2 0 7 50 -1 -1 0.000 1 0.0000 4800 1200 300 300 4800 1200 4800 1500
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 2
+	 1046 3837 566 4512
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 2
+	 1380 3840 1815 4500
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 2
+	 3450 3855 3015 4515
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 2
+	 7215 2085 5055 1350
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 2
+	 2400 2085 4545 1365
+4 0 0 50 -1 0 20 0.0000 4 225 165 4350 1050 0\001
+4 0 0 50 -1 0 20 0.0000 4 225 165 1875 2250 1\001
+4 0 0 50 -1 0 20 0.0000 4 225 165 6675 2250 2\001
+4 0 0 50 -1 0 20 0.0000 4 225 165 675 3525 3\001
+4 0 0 50 -1 0 20 0.0000 4 225 165 3075 3525 4\001
+4 0 0 50 -1 0 20 0.0000 4 240 165 5475 3525 5\001
+4 0 0 50 -1 0 20 0.0000 4 225 165 7875 3525 6\001
+4 0 0 50 -1 0 20 0.0000 4 225 165 225 4500 7\001
+4 0 0 50 -1 0 20 0.0000 4 225 165 1425 4500 8\001
+4 0 0 50 -1 0 20 0.0000 4 240 165 2625 4500 9\001
+-6
+6 1650 5550 7800 9300
+6 1650 5550 7800 9300
+5 1 0 2 0 7 50 -1 -1 0.000 0 0 1 0 2175.000 6975.000 1875 6975 2175 6675 2475 6975
+	2 1 2.00 120.00 240.00
+5 1 0 2 0 7 50 -1 -1 0.000 0 0 1 0 2475.000 6975.000 1875 6975 2475 6375 3075 6975
+	2 1 2.00 120.00 240.00
+5 1 0 2 0 7 50 -1 -1 0.000 0 0 1 0 4125.000 6975.000 3375 6975 4125 6225 4875 6975
+	2 1 2.00 120.00 240.00
+5 1 0 2 0 7 50 -1 -1 0.000 0 0 1 0 4425.000 6975.000 3375 6975 4425 5925 5475 6975
+	2 1 2.00 120.00 240.00
+5 1 0 2 0 7 50 -1 -1 0.000 0 1 0 1 5325.000 7875.000 3975 7875 5325 9225 6675 7875
+	2 1 2.00 120.00 240.00
+5 1 0 2 0 7 50 -1 -1 0.000 0 1 0 1 5025.000 7875.000 3975 7875 5025 8925 6075 7875
+	2 1 2.00 120.00 240.00
+5 1 0 2 0 7 50 -1 -1 0.000 0 1 0 1 3525.000 7875.000 2775 7875 3525 8625 4275 7875
+	2 1 2.00 120.00 240.00
+5 1 0 2 0 7 50 -1 -1 0.000 0 1 0 1 3225.000 7875.000 2775 7875 3225 8325 3675 7875
+	2 1 2.00 120.00 240.00
+5 1 0 2 0 7 50 -1 -1 0.000 0 0 1 0 5925.000 6975.000 4575 6975 5925 5625 7275 6975
+	2 1 2.00 120.00 240.00
+6 1650 6900 7800 7950
+6 1710 7260 7740 7890
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 1725 7275 2325 7275 2325 7875 1725 7875 1725 7275
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 2325 7275 2925 7275 2925 7875 2325 7875 2325 7275
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 2925 7275 3525 7275 3525 7875 2925 7875 2925 7275
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 3525 7275 4125 7275 4125 7875 3525 7875 3525 7275
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 4125 7275 4725 7275 4725 7875 4125 7875 4125 7275
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 4725 7275 5325 7275 5325 7875 4725 7875 4725 7275
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 5325 7275 5925 7275 5925 7875 5325 7875 5325 7275
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 5925 7275 6525 7275 6525 7875 5925 7875 5925 7275
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 6525 7275 7125 7275 7125 7875 6525 7875 6525 7275
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 7125 7275 7725 7275 7725 7875 7125 7875 7125 7275
+-6
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 1725 6975 2325 6975 2325 7275 1725 7275 1725 6975
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 2325 6975 2925 6975 2925 7275 2325 7275 2325 6975
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 2925 6975 3525 6975 3525 7275 2925 7275 2925 6975
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 3525 6975 4125 6975 4125 7275 3525 7275 3525 6975
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 4125 6975 4725 6975 4725 7275 4125 7275 4125 6975
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 4725 6975 5325 6975 5325 7275 4725 7275 4725 6975
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 5325 6975 5925 6975 5925 7275 5325 7275 5325 6975
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 5925 6975 6525 6975 6525 7275 5925 7275 5925 6975
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 6525 6975 7125 6975 7125 7275 6525 7275 6525 6975
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 7125 6975 7725 6975 7725 7275 7125 7275 7125 6975
+4 0 0 50 -1 0 20 0.0000 4 225 165 1950 7200 0\001
+4 0 0 50 -1 0 20 0.0000 4 225 165 2550 7200 1\001
+4 0 0 50 -1 0 20 0.0000 4 225 165 3150 7200 2\001
+4 0 0 50 -1 0 20 0.0000 4 225 165 3750 7200 3\001
+4 0 0 50 -1 0 20 0.0000 4 225 165 4350 7200 4\001
+4 0 0 50 -1 0 20 0.0000 4 240 165 4950 7200 5\001
+4 0 0 50 -1 0 20 0.0000 4 225 165 5550 7200 6\001
+4 0 0 50 -1 0 20 0.0000 4 225 165 6150 7200 7\001
+4 0 0 50 -1 0 20 0.0000 4 225 165 6750 7200 8\001
+4 0 0 50 -1 0 20 0.0000 4 240 165 7275 7200 9\001
+-6
+-6
+4 0 0 50 -1 0 20 0.0000 4 225 1290 3000 8925 est fils de\001
+4 0 0 50 -1 0 20 0.0000 4 300 1695 3225 5775 est parent de\001
+-6
diff --git a/lessons/tris/figures/depart.eps b/lessons/tris/figures/depart.eps
new file mode 100644
index 0000000000000000000000000000000000000000..d14c753a28ebd3adc45c83077709b1f6685f6fa6
--- /dev/null
+++ b/lessons/tris/figures/depart.eps
@@ -0,0 +1,261 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: depart.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Mon May  9 11:20:58 2005
+%%For: lazeyras@eig3 (LAZEYRAS Michel - EIG prof)
+%%BoundingBox: 0 0 452 308
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 308 moveto 0 0 lineto 452 0 lineto 452 308 lineto closepath clip newpath
+-71.3 343.0 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+ /DrawEllipse {
+	/endangle exch def
+	/startangle exch def
+	/yrad exch def
+	/xrad exch def
+	/y exch def
+	/x exch def
+	/savematrix mtrx currentmatrix def
+	x y tr xrad yrad sc 0 0 1 startangle endangle arc
+	closepath
+	savematrix setmatrix
+	} def
+
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06000 0.06000 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 50
+% Polyline
+7.500 slw
+n 8025 3225 m
+ 8325 3900 l gs col0 s gr 
+% Polyline
+n 2250 4500 m
+ 1875 5100 l gs col0 s gr 
+% Polyline
+n 2625 4425 m
+ 3000 5100 l gs col0 s gr 
+% Polyline
+n 4650 4500 m
+ 4275 5100 l gs col0 s gr 
+/Times-Bold ff 300.00 scf sf
+1500 975 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2100 975 m
+gs 1 -1 sc (16) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3300 975 m
+gs 1 -1 sc (12) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+5700 975 m
+gs 1 -1 sc (10) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+4500 975 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+5100 975 m
+gs 1 -1 sc (8) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2700 975 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6000 1875 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3600 3000 m
+gs 1 -1 sc (16) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+7800 3075 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2400 4275 m
+gs 1 -1 sc (12) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+7200 4275 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+8400 4275 m
+gs 1 -1 sc (8) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+1800 5475 m
+gs 1 -1 sc (10) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6300 975 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3000 5475 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6900 975 m
+gs 1 -1 sc (7) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3900 975 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+4800 4275 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+4200 5475 m
+gs 1 -1 sc (7) dup sw pop 2 div neg 0 rm  col0 sh gr
+% Polyline
+n 7575 3225 m
+ 7275 3900 l gs col0 s gr 
+% Ellipse
+n 8400 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 7800 3000 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 7200 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 6000 1800 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 3600 2925 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 2400 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 1800 5400 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 3000 5400 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+30.000 slw
+n 4800 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+7.500 slw
+n 4200 5400 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Polyline
+n 1200 600 m 1800 600 l 1800 1200 l 1200 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 1800 600 m 2400 600 l 2400 1200 l 1800 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 600 m 3000 600 l 3000 1200 l 2400 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 3000 600 m 3600 600 l 3600 1200 l 3000 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 3600 600 m 4200 600 l 4200 1200 l 3600 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 4200 600 m 4800 600 l 4800 1200 l 4200 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 4800 600 m 5400 600 l 5400 1200 l 4800 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 5400 600 m 6000 600 l 6000 1200 l 5400 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 6000 600 m 6600 600 l 6600 1200 l 6000 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 6600 600 m 7200 600 l 7200 1200 l 6600 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 5700 1950 m
+ 3900 2775 l gs col0 s gr 
+% Polyline
+n 6300 1950 m
+ 7500 2850 l gs col0 s gr 
+% Polyline
+n 3300 3075 m
+ 2550 3975 l gs col0 s gr 
+% Polyline
+n 3900 3075 m
+ 4650 3975 l gs col0 s gr 
+% here ends figure;
+$F2psEnd
+rs
+showpage
diff --git a/lessons/tris/figures/depart.fig b/lessons/tris/figures/depart.fig
new file mode 100644
index 0000000000000000000000000000000000000000..7f3dbe5956f4ae9705e90cb49532020d3498c9cc
--- /dev/null
+++ b/lessons/tris/figures/depart.fig
@@ -0,0 +1,77 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 8400 4200 309 309 8400 4200 8475 4500
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7800 3000 309 309 7800 3000 7875 3300
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7200 4200 309 309 7200 4200 7275 4500
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6000 1800 309 309 6000 1800 6075 2100
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3600 2925 309 309 3600 2925 3675 3225
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2400 4200 309 309 2400 4200 2475 4500
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1800 5400 309 309 1800 5400 1875 5700
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3000 5400 309 309 3000 5400 3075 5700
+1 3 0 3 0 7 50 -1 -1 0.000 1 0.0000 4800 4200 309 309 4800 4200 5109 4200
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4200 5400 309 309 4200 5400 4509 5400
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 600 1800 600 1800 1200 1200 1200 1200 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1800 600 2400 600 2400 1200 1800 1200 1800 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2400 600 3000 600 3000 1200 2400 1200 2400 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3000 600 3600 600 3600 1200 3000 1200 3000 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3600 600 4200 600 4200 1200 3600 1200 3600 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4200 600 4800 600 4800 1200 4200 1200 4200 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4800 600 5400 600 5400 1200 4800 1200 4800 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5400 600 6000 600 6000 1200 5400 1200 5400 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6000 600 6600 600 6600 1200 6000 1200 6000 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6600 600 7200 600 7200 1200 6600 1200 6600 600
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 5700 1950 3900 2775
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 6300 1950 7500 2850
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3300 3075 2550 3975
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3900 3075 4650 3975
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 7575 3225 7275 3900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 8025 3225 8325 3900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 2250 4500 1875 5100
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 2625 4425 3000 5100
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4650 4500 4275 5100
+4 1 0 50 -1 2 20 0.0000 0 210 150 1500 975 1\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 2100 975 16\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 3300 975 12\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 5700 975 10\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 4500 975 2\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 5100 975 8\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 2700 975 5\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 6000 1875 1\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 3600 3000 16\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 7800 3075 5\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 2400 4275 12\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 7200 4275 2\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 8400 4275 8\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 1800 5475 10\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 6300 975 6\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 3000 5475 6\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 6900 975 7\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 3900 975 4\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 4800 4275 4\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 4200 5475 7\001
diff --git a/lessons/tris/figures/etape_1_1.eps b/lessons/tris/figures/etape_1_1.eps
new file mode 100644
index 0000000000000000000000000000000000000000..a44823fa82d39a1cc787dbc030d65fec9faeb175
--- /dev/null
+++ b/lessons/tris/figures/etape_1_1.eps
@@ -0,0 +1,263 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: etape_1_1.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Mon May  9 11:23:56 2005
+%%For: lazeyras@eig3 (LAZEYRAS Michel - EIG prof)
+%%BoundingBox: 0 0 452 309
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 309 moveto 0 0 lineto 452 0 lineto 452 309 lineto closepath clip newpath
+-71.3 343.9 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+ /DrawEllipse {
+	/endangle exch def
+	/startangle exch def
+	/yrad exch def
+	/xrad exch def
+	/y exch def
+	/x exch def
+	/savematrix mtrx currentmatrix def
+	x y tr xrad yrad sc 0 0 1 startangle endangle arc
+	closepath
+	savematrix setmatrix
+	} def
+
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06000 0.06000 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 50
+% Polyline
+7.500 slw
+n 8025 3225 m
+ 8325 3900 l gs col0 s gr 
+% Polyline
+n 2250 4500 m
+ 1875 5100 l gs col0 s gr 
+% Polyline
+n 2625 4425 m
+ 3000 5100 l gs col0 s gr 
+% Polyline
+30.000 slw
+n 4650 4500 m
+ 4275 5100 l gs col0 s gr 
+/Times-Bold ff 300.00 scf sf
+1500 975 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2100 975 m
+gs 1 -1 sc (16) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3300 975 m
+gs 1 -1 sc (12) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+5700 975 m
+gs 1 -1 sc (10) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+4500 975 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+5100 975 m
+gs 1 -1 sc (8) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2700 975 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6000 1875 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3600 3000 m
+gs 1 -1 sc (16) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+7800 3075 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2400 4275 m
+gs 1 -1 sc (12) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+7200 4275 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+8400 4275 m
+gs 1 -1 sc (8) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+1800 5475 m
+gs 1 -1 sc (10) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6300 975 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3000 5475 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+4800 4275 m
+gs 1 -1 sc (7) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+4200 5475 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6900 975 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3900 975 m
+gs 1 -1 sc (7) dup sw pop 2 div neg 0 rm  col0 sh gr
+% Polyline
+7.500 slw
+n 7575 3225 m
+ 7275 3900 l gs col0 s gr 
+% Ellipse
+n 8400 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 7800 3000 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 7200 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 6000 1800 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 3600 2925 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 2400 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 1800 5400 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 3000 5400 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+30.000 slw
+n 4800 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4200 5400 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Polyline
+7.500 slw
+n 1200 600 m 1800 600 l 1800 1200 l 1200 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 1800 600 m 2400 600 l 2400 1200 l 1800 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 600 m 3000 600 l 3000 1200 l 2400 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 3000 600 m 3600 600 l 3600 1200 l 3000 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 3600 600 m 4200 600 l 4200 1200 l 3600 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 4200 600 m 4800 600 l 4800 1200 l 4200 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 4800 600 m 5400 600 l 5400 1200 l 4800 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 5400 600 m 6000 600 l 6000 1200 l 5400 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 6000 600 m 6600 600 l 6600 1200 l 6000 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 6600 600 m 7200 600 l 7200 1200 l 6600 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 5700 1950 m
+ 3900 2775 l gs col0 s gr 
+% Polyline
+n 6300 1950 m
+ 7500 2850 l gs col0 s gr 
+% Polyline
+n 3300 3075 m
+ 2550 3975 l gs col0 s gr 
+% Polyline
+n 3900 3075 m
+ 4650 3975 l gs col0 s gr 
+% here ends figure;
+$F2psEnd
+rs
+showpage
diff --git a/lessons/tris/figures/etape_1_1.fig b/lessons/tris/figures/etape_1_1.fig
new file mode 100644
index 0000000000000000000000000000000000000000..bf53331f4b6f077f1d8cb74ae5207df37dae343d
--- /dev/null
+++ b/lessons/tris/figures/etape_1_1.fig
@@ -0,0 +1,77 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 8400 4200 309 309 8400 4200 8475 4500
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7800 3000 309 309 7800 3000 7875 3300
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7200 4200 309 309 7200 4200 7275 4500
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6000 1800 309 309 6000 1800 6075 2100
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3600 2925 309 309 3600 2925 3675 3225
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2400 4200 309 309 2400 4200 2475 4500
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1800 5400 309 309 1800 5400 1875 5700
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3000 5400 309 309 3000 5400 3075 5700
+1 3 0 3 0 7 50 -1 -1 0.000 1 0.0000 4800 4200 309 309 4800 4200 5109 4200
+1 3 0 3 0 7 50 -1 -1 0.000 1 0.0000 4200 5400 309 309 4200 5400 4509 5400
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 600 1800 600 1800 1200 1200 1200 1200 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1800 600 2400 600 2400 1200 1800 1200 1800 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2400 600 3000 600 3000 1200 2400 1200 2400 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3000 600 3600 600 3600 1200 3000 1200 3000 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3600 600 4200 600 4200 1200 3600 1200 3600 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4200 600 4800 600 4800 1200 4200 1200 4200 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4800 600 5400 600 5400 1200 4800 1200 4800 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5400 600 6000 600 6000 1200 5400 1200 5400 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6000 600 6600 600 6600 1200 6000 1200 6000 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6600 600 7200 600 7200 1200 6600 1200 6600 600
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 5700 1950 3900 2775
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 6300 1950 7500 2850
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3300 3075 2550 3975
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3900 3075 4650 3975
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 7575 3225 7275 3900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 8025 3225 8325 3900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 2250 4500 1875 5100
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 2625 4425 3000 5100
+2 1 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4650 4500 4275 5100
+4 1 0 50 -1 2 20 0.0000 0 210 150 1500 975 1\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 2100 975 16\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 3300 975 12\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 5700 975 10\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 4500 975 2\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 5100 975 8\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 2700 975 5\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 6000 1875 1\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 3600 3000 16\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 7800 3075 5\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 2400 4275 12\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 7200 4275 2\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 8400 4275 8\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 1800 5475 10\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 6300 975 6\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 3000 5475 6\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 4800 4275 7\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 4200 5475 4\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 6900 975 4\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 3900 975 7\001
diff --git a/lessons/tris/figures/etape_1_2.eps b/lessons/tris/figures/etape_1_2.eps
new file mode 100644
index 0000000000000000000000000000000000000000..a7776d64d1ea50602008e7126e7fb44001b6e433
--- /dev/null
+++ b/lessons/tris/figures/etape_1_2.eps
@@ -0,0 +1,263 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: etape_1_2.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Mon May  9 11:25:42 2005
+%%For: lazeyras@eig3 (LAZEYRAS Michel - EIG prof)
+%%BoundingBox: 0 0 453 308
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 308 moveto 0 0 lineto 453 0 lineto 453 308 lineto closepath clip newpath
+-71.3 343.0 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+ /DrawEllipse {
+	/endangle exch def
+	/startangle exch def
+	/yrad exch def
+	/xrad exch def
+	/y exch def
+	/x exch def
+	/savematrix mtrx currentmatrix def
+	x y tr xrad yrad sc 0 0 1 startangle endangle arc
+	closepath
+	savematrix setmatrix
+	} def
+
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06000 0.06000 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 50
+% Polyline
+7.500 slw
+n 2625 4425 m
+ 3000 5100 l gs col0 s gr 
+% Polyline
+n 4650 4500 m
+ 4275 5100 l gs col0 s gr 
+% Polyline
+30.000 slw
+n 7575 3225 m
+ 7275 3900 l gs col0 s gr 
+% Polyline
+n 8025 3225 m
+ 8325 3900 l gs col0 s gr 
+/Times-Bold ff 300.00 scf sf
+1500 975 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2100 975 m
+gs 1 -1 sc (16) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3300 975 m
+gs 1 -1 sc (12) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+5700 975 m
+gs 1 -1 sc (10) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+4500 975 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6000 1875 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3600 3000 m
+gs 1 -1 sc (16) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2400 4275 m
+gs 1 -1 sc (12) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+7200 4275 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+1800 5475 m
+gs 1 -1 sc (10) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6300 975 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3000 5475 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+4800 4275 m
+gs 1 -1 sc (7) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+4200 5475 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6900 975 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3900 975 m
+gs 1 -1 sc (7) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+7800 3075 m
+gs 1 -1 sc (8) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+8400 4275 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2700 975 m
+gs 1 -1 sc (8) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+5100 975 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+% Polyline
+7.500 slw
+n 2250 4500 m
+ 1875 5100 l gs col0 s gr 
+% Ellipse
+n 6000 1800 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 3600 2925 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4800 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 2400 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4200 5400 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 1800 5400 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 3000 5400 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+30.000 slw
+n 7800 3000 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 7200 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 8400 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Polyline
+7.500 slw
+n 1200 600 m 1800 600 l 1800 1200 l 1200 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 1800 600 m 2400 600 l 2400 1200 l 1800 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 600 m 3000 600 l 3000 1200 l 2400 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 3000 600 m 3600 600 l 3600 1200 l 3000 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 3600 600 m 4200 600 l 4200 1200 l 3600 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 4200 600 m 4800 600 l 4800 1200 l 4200 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 4800 600 m 5400 600 l 5400 1200 l 4800 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 5400 600 m 6000 600 l 6000 1200 l 5400 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 6000 600 m 6600 600 l 6600 1200 l 6000 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 6600 600 m 7200 600 l 7200 1200 l 6600 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 5700 1950 m
+ 3900 2775 l gs col0 s gr 
+% Polyline
+n 6300 1950 m
+ 7500 2850 l gs col0 s gr 
+% Polyline
+n 3300 3075 m
+ 2550 3975 l gs col0 s gr 
+% Polyline
+n 3900 3075 m
+ 4650 3975 l gs col0 s gr 
+% here ends figure;
+$F2psEnd
+rs
+showpage
diff --git a/lessons/tris/figures/etape_1_2.fig b/lessons/tris/figures/etape_1_2.fig
new file mode 100644
index 0000000000000000000000000000000000000000..8f68405ee69c9ba3f78b0ceebd4ff6ec8ccbf259
--- /dev/null
+++ b/lessons/tris/figures/etape_1_2.fig
@@ -0,0 +1,77 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6000 1800 309 309 6000 1800 6075 2100
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3600 2925 309 309 3600 2925 3675 3225
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4800 4200 309 309 4800 4200 4875 4500
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2400 4200 309 309 2400 4200 2475 4500
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4200 5400 309 309 4200 5400 4275 5700
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1800 5400 309 309 1800 5400 1875 5700
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3000 5400 309 309 3000 5400 3075 5700
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7200 4200 309 309 7200 4200 7509 4200
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 8400 4200 309 309 8400 4200 8709 4200
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7800 3000 309 309 7800 3000 8109 3000
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 600 1800 600 1800 1200 1200 1200 1200 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1800 600 2400 600 2400 1200 1800 1200 1800 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2400 600 3000 600 3000 1200 2400 1200 2400 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3000 600 3600 600 3600 1200 3000 1200 3000 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3600 600 4200 600 4200 1200 3600 1200 3600 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4200 600 4800 600 4800 1200 4200 1200 4200 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4800 600 5400 600 5400 1200 4800 1200 4800 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5400 600 6000 600 6000 1200 5400 1200 5400 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6000 600 6600 600 6600 1200 6000 1200 6000 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6600 600 7200 600 7200 1200 6600 1200 6600 600
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 5700 1950 3900 2775
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 6300 1950 7500 2850
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3300 3075 2550 3975
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3900 3075 4650 3975
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 2250 4500 1875 5100
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 2625 4425 3000 5100
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4650 4500 4275 5100
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 7575 3225 7275 3900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 8025 3225 8325 3900
+4 1 0 50 -1 2 20 0.0000 0 210 300 3300 975 12\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 5700 975 10\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 4500 975 2\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 2400 4275 12\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 7200 4275 2\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 1800 5475 10\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 6300 975 6\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 3000 5475 6\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 4800 4275 7\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 4200 5475 4\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 6900 975 4\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 3900 975 7\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 7800 3075 8\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 8400 4275 5\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 2700 975 8\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 5100 975 5\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 3600 3000 1\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 6000 1875 16\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 1500 975 16\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 2100 975 1\001
diff --git a/lessons/tris/figures/etape_1_2b.eps b/lessons/tris/figures/etape_1_2b.eps
new file mode 100644
index 0000000000000000000000000000000000000000..6e47f1e84847adbd660acffd00eb5793d4822c36
--- /dev/null
+++ b/lessons/tris/figures/etape_1_2b.eps
@@ -0,0 +1,259 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: etape_1_2.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Mon May  9 11:54:09 2005
+%%For: lazeyras@eig3 (LAZEYRAS Michel - EIG prof)
+%%BoundingBox: 0 0 452 308
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 308 moveto 0 0 lineto 452 0 lineto 452 308 lineto closepath clip newpath
+-71.3 343.0 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+ /DrawEllipse {
+	/endangle exch def
+	/startangle exch def
+	/yrad exch def
+	/xrad exch def
+	/y exch def
+	/x exch def
+	/savematrix mtrx currentmatrix def
+	x y tr xrad yrad sc 0 0 1 startangle endangle arc
+	closepath
+	savematrix setmatrix
+	} def
+
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06000 0.06000 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 50
+% Polyline
+7.500 slw
+n 2625 4425 m
+ 3000 5100 l gs col0 s gr 
+% Polyline
+n 4650 4500 m
+ 4275 5100 l gs col0 s gr 
+% Polyline
+n 7575 3225 m
+ 7275 3900 l gs col0 s gr 
+% Polyline
+n 8025 3225 m
+ 8325 3900 l gs col0 s gr 
+/Times-Bold ff 300.00 scf sf
+3300 975 m
+gs 1 -1 sc (12) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+5700 975 m
+gs 1 -1 sc (10) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+4500 975 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2400 4275 m
+gs 1 -1 sc (12) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+7200 4275 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+1800 5475 m
+gs 1 -1 sc (10) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6300 975 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3000 5475 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+4800 4275 m
+gs 1 -1 sc (7) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+4200 5475 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6900 975 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3900 975 m
+gs 1 -1 sc (7) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+7800 3075 m
+gs 1 -1 sc (8) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+8400 4275 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2700 975 m
+gs 1 -1 sc (8) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+5100 975 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3600 3000 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6000 1875 m
+gs 1 -1 sc (16) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+1500 975 m
+gs 1 -1 sc (16) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2100 975 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+% Polyline
+n 2250 4500 m
+ 1875 5100 l gs col0 s gr 
+% Ellipse
+n 6000 1800 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 3600 2925 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4800 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 2400 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4200 5400 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 1800 5400 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 3000 5400 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 7200 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 8400 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 7800 3000 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Polyline
+n 1200 600 m 1800 600 l 1800 1200 l 1200 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 1800 600 m 2400 600 l 2400 1200 l 1800 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 600 m 3000 600 l 3000 1200 l 2400 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 3000 600 m 3600 600 l 3600 1200 l 3000 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 3600 600 m 4200 600 l 4200 1200 l 3600 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 4200 600 m 4800 600 l 4800 1200 l 4200 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 4800 600 m 5400 600 l 5400 1200 l 4800 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 5400 600 m 6000 600 l 6000 1200 l 5400 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 6000 600 m 6600 600 l 6600 1200 l 6000 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 6600 600 m 7200 600 l 7200 1200 l 6600 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 5700 1950 m
+ 3900 2775 l gs col0 s gr 
+% Polyline
+n 6300 1950 m
+ 7500 2850 l gs col0 s gr 
+% Polyline
+n 3300 3075 m
+ 2550 3975 l gs col0 s gr 
+% Polyline
+n 3900 3075 m
+ 4650 3975 l gs col0 s gr 
+% here ends figure;
+$F2psEnd
+rs
+showpage
diff --git a/lessons/tris/figures/etape_1_3.eps b/lessons/tris/figures/etape_1_3.eps
new file mode 100644
index 0000000000000000000000000000000000000000..70755d83868aba0fc9aaf391c68477fc47677a76
--- /dev/null
+++ b/lessons/tris/figures/etape_1_3.eps
@@ -0,0 +1,263 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: etape_1_3.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Mon May  9 11:28:21 2005
+%%For: lazeyras@eig3 (LAZEYRAS Michel - EIG prof)
+%%BoundingBox: 0 0 452 309
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 309 moveto 0 0 lineto 452 0 lineto 452 309 lineto closepath clip newpath
+-71.3 343.9 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+ /DrawEllipse {
+	/endangle exch def
+	/startangle exch def
+	/yrad exch def
+	/xrad exch def
+	/y exch def
+	/x exch def
+	/savematrix mtrx currentmatrix def
+	x y tr xrad yrad sc 0 0 1 startangle endangle arc
+	closepath
+	savematrix setmatrix
+	} def
+
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06000 0.06000 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 50
+% Polyline
+7.500 slw
+n 8025 3225 m
+ 8325 3900 l gs col0 s gr 
+% Polyline
+30.000 slw
+n 5700 1950 m
+ 3900 2775 l gs col0 s gr 
+% Polyline
+n 3300 3075 m
+ 2550 3975 l gs col0 s gr 
+% Polyline
+n 2250 4500 m
+ 1875 5100 l gs col0 s gr 
+/Times-Bold ff 300.00 scf sf
+4500 975 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+7200 4275 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6300 975 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3000 5475 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+4800 4275 m
+gs 1 -1 sc (7) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+4200 5475 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6900 975 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3900 975 m
+gs 1 -1 sc (7) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+7800 3075 m
+gs 1 -1 sc (8) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+8400 4275 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2700 975 m
+gs 1 -1 sc (8) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+5100 975 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6000 1875 m
+gs 1 -1 sc (16) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3600 3000 m
+gs 1 -1 sc (12) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2400 4275 m
+gs 1 -1 sc (10) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+1800 5475 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+1500 975 m
+gs 1 -1 sc (16) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2100 975 m
+gs 1 -1 sc (12) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3300 975 m
+gs 1 -1 sc (10) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+5700 975 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+% Polyline
+7.500 slw
+n 7575 3225 m
+ 7275 3900 l gs col0 s gr 
+% Ellipse
+n 4800 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 4200 5400 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 3000 5400 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 7200 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 7800 3000 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 8400 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+30.000 slw
+n 6000 1800 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 3600 2925 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 2400 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 1800 5400 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Polyline
+7.500 slw
+n 1200 600 m 1800 600 l 1800 1200 l 1200 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 1800 600 m 2400 600 l 2400 1200 l 1800 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 600 m 3000 600 l 3000 1200 l 2400 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 3000 600 m 3600 600 l 3600 1200 l 3000 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 3600 600 m 4200 600 l 4200 1200 l 3600 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 4200 600 m 4800 600 l 4800 1200 l 4200 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 4800 600 m 5400 600 l 5400 1200 l 4800 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 5400 600 m 6000 600 l 6000 1200 l 5400 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 6000 600 m 6600 600 l 6600 1200 l 6000 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 6600 600 m 7200 600 l 7200 1200 l 6600 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 6300 1950 m
+ 7500 2850 l gs col0 s gr 
+% Polyline
+n 3900 3075 m
+ 4650 3975 l gs col0 s gr 
+% Polyline
+n 2625 4425 m
+ 3000 5100 l gs col0 s gr 
+% Polyline
+n 4650 4500 m
+ 4275 5100 l gs col0 s gr 
+% here ends figure;
+$F2psEnd
+rs
+showpage
diff --git a/lessons/tris/figures/etape_1_3.fig b/lessons/tris/figures/etape_1_3.fig
new file mode 100644
index 0000000000000000000000000000000000000000..c175cc9a4587bda48ad111bf26265d2f8b95dd65
--- /dev/null
+++ b/lessons/tris/figures/etape_1_3.fig
@@ -0,0 +1,77 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4800 4200 309 309 4800 4200 4875 4500
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4200 5400 309 309 4200 5400 4275 5700
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3000 5400 309 309 3000 5400 3075 5700
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7200 4200 309 309 7200 4200 7509 4200
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7800 3000 309 309 7800 3000 8109 3000
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 8400 4200 309 309 8400 4200 8709 4200
+1 3 0 3 0 7 50 -1 -1 0.000 1 0.0000 6000 1800 309 309 6000 1800 6309 1800
+1 3 0 3 0 7 50 -1 -1 0.000 1 0.0000 3600 2925 309 309 3600 2925 3909 2925
+1 3 0 3 0 7 50 -1 -1 0.000 1 0.0000 2400 4200 309 309 2400 4200 2709 4200
+1 3 0 3 0 7 50 -1 -1 0.000 1 0.0000 1800 5400 309 309 1800 5400 2109 5400
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 600 1800 600 1800 1200 1200 1200 1200 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1800 600 2400 600 2400 1200 1800 1200 1800 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2400 600 3000 600 3000 1200 2400 1200 2400 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3000 600 3600 600 3600 1200 3000 1200 3000 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3600 600 4200 600 4200 1200 3600 1200 3600 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4200 600 4800 600 4800 1200 4200 1200 4200 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4800 600 5400 600 5400 1200 4800 1200 4800 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5400 600 6000 600 6000 1200 5400 1200 5400 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6000 600 6600 600 6600 1200 6000 1200 6000 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6600 600 7200 600 7200 1200 6600 1200 6600 600
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 6300 1950 7500 2850
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3900 3075 4650 3975
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 2625 4425 3000 5100
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4650 4500 4275 5100
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 7575 3225 7275 3900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 8025 3225 8325 3900
+2 1 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 5700 1950 3900 2775
+2 1 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3300 3075 2550 3975
+2 1 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 2250 4500 1875 5100
+4 1 0 50 -1 2 20 0.0000 0 210 150 4500 975 2\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 7200 4275 2\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 6300 975 6\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 3000 5475 6\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 4800 4275 7\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 4200 5475 4\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 6900 975 4\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 3900 975 7\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 7800 3075 8\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 8400 4275 5\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 2700 975 8\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 5100 975 5\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 6000 1875 16\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 3600 3000 12\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 2400 4275 10\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 1800 5475 1\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 1500 975 16\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 2100 975 12\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 3300 975 10\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 5700 975 1\001
diff --git a/lessons/tris/figures/etape_2_1.eps b/lessons/tris/figures/etape_2_1.eps
new file mode 100644
index 0000000000000000000000000000000000000000..c8bc2116467d0f585d4da2d087d03104c76f5629
--- /dev/null
+++ b/lessons/tris/figures/etape_2_1.eps
@@ -0,0 +1,252 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: etape_2_1.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Mon May  9 11:33:45 2005
+%%For: lazeyras@eig3 (LAZEYRAS Michel - EIG prof)
+%%BoundingBox: 0 0 452 309
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 309 moveto 0 0 lineto 452 0 lineto 452 309 lineto closepath clip newpath
+-71.3 343.0 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+ /DrawEllipse {
+	/endangle exch def
+	/startangle exch def
+	/yrad exch def
+	/xrad exch def
+	/y exch def
+	/x exch def
+	/savematrix mtrx currentmatrix def
+	x y tr xrad yrad sc 0 0 1 startangle endangle arc
+	closepath
+	savematrix setmatrix
+	} def
+
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06000 0.06000 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 50
+% Polyline
+7.500 slw
+n 3300 3075 m
+ 2550 3975 l gs col0 s gr 
+% Polyline
+n 5700 1950 m
+ 3900 2775 l gs col0 s gr 
+% Polyline
+30.000 slw
+n 6600 600 m 7200 600 l 7200 1200 l 6600 1200 l
+ cp gs col0 s gr 
+/Times-Bold ff 300.00 scf sf
+4500 975 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+7200 4275 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+4800 4275 m
+gs 1 -1 sc (7) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3900 975 m
+gs 1 -1 sc (7) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+7800 3075 m
+gs 1 -1 sc (8) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+8400 4275 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2700 975 m
+gs 1 -1 sc (8) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+5100 975 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+1800 5475 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+5700 975 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6900 975 m
+gs 1 -1 sc (16) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6000 1875 m
+gs 1 -1 sc (12) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3600 3000 m
+gs 1 -1 sc (10) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2400 4275 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+1500 975 m
+gs 1 -1 sc (12) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2100 975 m
+gs 1 -1 sc (10) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3300 975 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3000 5475 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6300 975 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+% Polyline
+7.500 slw
+n 2250 4500 m
+ 1875 5100 l gs col0 s gr 
+% Ellipse
+n 4800 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 3000 5400 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 7200 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 7800 3000 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 8400 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 1800 5400 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 2400 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 3600 2925 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 6000 1800 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Polyline
+n 1200 600 m 1800 600 l 1800 1200 l 1200 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 1800 600 m 2400 600 l 2400 1200 l 1800 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 600 m 3000 600 l 3000 1200 l 2400 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 3000 600 m 3600 600 l 3600 1200 l 3000 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 3600 600 m 4200 600 l 4200 1200 l 3600 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 4200 600 m 4800 600 l 4800 1200 l 4200 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 4800 600 m 5400 600 l 5400 1200 l 4800 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 5400 600 m 6000 600 l 6000 1200 l 5400 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 6000 600 m 6600 600 l 6600 1200 l 6000 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 6300 1950 m
+ 7500 2850 l gs col0 s gr 
+% Polyline
+n 3900 3075 m
+ 4650 3975 l gs col0 s gr 
+% Polyline
+n 2625 4425 m
+ 3000 5100 l gs col0 s gr 
+% Polyline
+n 7575 3225 m
+ 7275 3900 l gs col0 s gr 
+% Polyline
+n 8025 3225 m
+ 8325 3900 l gs col0 s gr 
+% here ends figure;
+$F2psEnd
+rs
+showpage
diff --git a/lessons/tris/figures/etape_2_1.fig b/lessons/tris/figures/etape_2_1.fig
new file mode 100644
index 0000000000000000000000000000000000000000..6d23d4da24950ffe62d634ab9ff11d67ad1983bd
--- /dev/null
+++ b/lessons/tris/figures/etape_2_1.fig
@@ -0,0 +1,73 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4800 4200 309 309 4800 4200 4875 4500
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3000 5400 309 309 3000 5400 3075 5700
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7200 4200 309 309 7200 4200 7509 4200
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7800 3000 309 309 7800 3000 8109 3000
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 8400 4200 309 309 8400 4200 8709 4200
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1800 5400 309 309 1800 5400 2109 5400
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2400 4200 309 309 2400 4200 2709 4200
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3600 2925 309 309 3600 2925 3909 2925
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6000 1800 309 309 6000 1800 6309 1800
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 600 1800 600 1800 1200 1200 1200 1200 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1800 600 2400 600 2400 1200 1800 1200 1800 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2400 600 3000 600 3000 1200 2400 1200 2400 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3000 600 3600 600 3600 1200 3000 1200 3000 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3600 600 4200 600 4200 1200 3600 1200 3600 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4200 600 4800 600 4800 1200 4200 1200 4200 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4800 600 5400 600 5400 1200 4800 1200 4800 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5400 600 6000 600 6000 1200 5400 1200 5400 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6000 600 6600 600 6600 1200 6000 1200 6000 600
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 6300 1950 7500 2850
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3900 3075 4650 3975
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 2625 4425 3000 5100
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 7575 3225 7275 3900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 8025 3225 8325 3900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 2250 4500 1875 5100
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3300 3075 2550 3975
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 5700 1950 3900 2775
+2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6600 600 7200 600 7200 1200 6600 1200 6600 600
+4 1 0 50 -1 2 20 0.0000 0 210 150 4500 975 2\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 7200 4275 2\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 4800 4275 7\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 3900 975 7\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 7800 3075 8\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 8400 4275 5\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 2700 975 8\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 5100 975 5\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 1800 5475 1\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 5700 975 1\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 6900 975 16\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 6000 1875 12\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 3600 3000 10\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 2400 4275 6\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 1500 975 12\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 2100 975 10\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 3300 975 6\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 3000 5475 4\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 6300 975 4\001
diff --git a/lessons/tris/figures/etape_2_2.eps b/lessons/tris/figures/etape_2_2.eps
new file mode 100644
index 0000000000000000000000000000000000000000..9ded05d5260390c640b86cc1cfae31e70d1d3b9e
--- /dev/null
+++ b/lessons/tris/figures/etape_2_2.eps
@@ -0,0 +1,243 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: etape_2_2.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Mon May  9 11:33:13 2005
+%%For: lazeyras@eig3 (LAZEYRAS Michel - EIG prof)
+%%BoundingBox: 0 0 452 309
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 309 moveto 0 0 lineto 452 0 lineto 452 309 lineto closepath clip newpath
+-71.3 343.0 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+ /DrawEllipse {
+	/endangle exch def
+	/startangle exch def
+	/yrad exch def
+	/xrad exch def
+	/y exch def
+	/x exch def
+	/savematrix mtrx currentmatrix def
+	x y tr xrad yrad sc 0 0 1 startangle endangle arc
+	closepath
+	savematrix setmatrix
+	} def
+
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06000 0.06000 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 50
+% Polyline
+7.500 slw
+n 5700 1950 m
+ 3900 2775 l gs col0 s gr 
+% Polyline
+30.000 slw
+n 6000 600 m 6600 600 l 6600 1200 l 6000 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 6600 600 m 7200 600 l 7200 1200 l 6600 1200 l
+ cp gs col0 s gr 
+/Times-Bold ff 300.00 scf sf
+4500 975 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+7200 4275 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+7800 3075 m
+gs 1 -1 sc (8) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+8400 4275 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2700 975 m
+gs 1 -1 sc (8) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+5100 975 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+1800 5475 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+5700 975 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6900 975 m
+gs 1 -1 sc (16) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2400 4275 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3300 975 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6000 1875 m
+gs 1 -1 sc (10) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3600 3000 m
+gs 1 -1 sc (7) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+4800 4275 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6300 975 m
+gs 1 -1 sc (12) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+1500 975 m
+gs 1 -1 sc (10) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2100 975 m
+gs 1 -1 sc (7) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3900 975 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+% Polyline
+7.500 slw
+n 3300 3075 m
+ 2550 3975 l gs col0 s gr 
+% Ellipse
+n 4800 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 7200 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 7800 3000 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 8400 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 1800 5400 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 2400 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 3600 2925 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 6000 1800 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Polyline
+n 1200 600 m 1800 600 l 1800 1200 l 1200 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 1800 600 m 2400 600 l 2400 1200 l 1800 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 600 m 3000 600 l 3000 1200 l 2400 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 3000 600 m 3600 600 l 3600 1200 l 3000 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 3600 600 m 4200 600 l 4200 1200 l 3600 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 4200 600 m 4800 600 l 4800 1200 l 4200 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 4800 600 m 5400 600 l 5400 1200 l 4800 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 5400 600 m 6000 600 l 6000 1200 l 5400 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 6300 1950 m
+ 7500 2850 l gs col0 s gr 
+% Polyline
+n 3900 3075 m
+ 4650 3975 l gs col0 s gr 
+% Polyline
+n 7575 3225 m
+ 7275 3900 l gs col0 s gr 
+% Polyline
+n 8025 3225 m
+ 8325 3900 l gs col0 s gr 
+% Polyline
+n 2250 4500 m
+ 1875 5100 l gs col0 s gr 
+% here ends figure;
+$F2psEnd
+rs
+showpage
diff --git a/lessons/tris/figures/etape_2_2.fig b/lessons/tris/figures/etape_2_2.fig
new file mode 100644
index 0000000000000000000000000000000000000000..a8fc12a4d3c3d9dfa77e76db8a0b733196d57415
--- /dev/null
+++ b/lessons/tris/figures/etape_2_2.fig
@@ -0,0 +1,69 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4800 4200 309 309 4800 4200 4875 4500
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7200 4200 309 309 7200 4200 7509 4200
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7800 3000 309 309 7800 3000 8109 3000
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 8400 4200 309 309 8400 4200 8709 4200
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1800 5400 309 309 1800 5400 2109 5400
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2400 4200 309 309 2400 4200 2709 4200
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3600 2925 309 309 3600 2925 3909 2925
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6000 1800 309 309 6000 1800 6309 1800
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 600 1800 600 1800 1200 1200 1200 1200 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1800 600 2400 600 2400 1200 1800 1200 1800 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2400 600 3000 600 3000 1200 2400 1200 2400 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3000 600 3600 600 3600 1200 3000 1200 3000 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3600 600 4200 600 4200 1200 3600 1200 3600 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4200 600 4800 600 4800 1200 4200 1200 4200 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4800 600 5400 600 5400 1200 4800 1200 4800 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5400 600 6000 600 6000 1200 5400 1200 5400 600
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 6300 1950 7500 2850
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3900 3075 4650 3975
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 7575 3225 7275 3900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 8025 3225 8325 3900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 2250 4500 1875 5100
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3300 3075 2550 3975
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 5700 1950 3900 2775
+2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6000 600 6600 600 6600 1200 6000 1200 6000 600
+2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6600 600 7200 600 7200 1200 6600 1200 6600 600
+4 1 0 50 -1 2 20 0.0000 0 210 150 4500 975 2\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 7200 4275 2\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 7800 3075 8\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 8400 4275 5\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 2700 975 8\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 5100 975 5\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 1800 5475 1\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 5700 975 1\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 6900 975 16\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 2400 4275 6\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 3300 975 6\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 6000 1875 10\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 3600 3000 7\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 4800 4275 4\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 6300 975 12\001
+4 1 0 50 -1 2 20 0.0000 0 210 300 1500 975 10\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 2100 975 7\001
+4 1 0 50 -1 2 20 0.0000 0 210 150 3900 975 4\001
diff --git a/lessons/tris/figures/etape_2_3.eps b/lessons/tris/figures/etape_2_3.eps
new file mode 100644
index 0000000000000000000000000000000000000000..638fd87a624aa081e958b4a9b687984c6d5d6ac6
--- /dev/null
+++ b/lessons/tris/figures/etape_2_3.eps
@@ -0,0 +1,233 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: etape_2_3.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Thu May 19 09:04:12 2005
+%%For: lazeyras@eig3 (LAZEYRAS Michel - EIG prof)
+%%BoundingBox: 0 0 452 237
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 237 moveto 0 0 lineto 452 0 lineto 452 237 lineto closepath clip newpath
+-71.3 271.0 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+ /DrawEllipse {
+	/endangle exch def
+	/startangle exch def
+	/yrad exch def
+	/xrad exch def
+	/y exch def
+	/x exch def
+	/savematrix mtrx currentmatrix def
+	x y tr xrad yrad sc 0 0 1 startangle endangle arc
+	closepath
+	savematrix setmatrix
+	} def
+
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06000 0.06000 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 50
+% Polyline
+30.000 slw
+n 6600 600 m 7200 600 l 7200 1200 l 6600 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 5400 600 m 6000 600 l 6000 1200 l 5400 1200 l
+ cp gs col0 s gr 
+/Times-Bold ff 300.00 scf sf
+4500 975 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+7200 4275 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6900 975 m
+gs 1 -1 sc (16) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2400 4275 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3300 975 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3600 3000 m
+gs 1 -1 sc (7) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+4800 4275 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6300 975 m
+gs 1 -1 sc (12) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2100 975 m
+gs 1 -1 sc (7) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+3900 975 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+5700 975 m
+gs 1 -1 sc (10) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+6000 1875 m
+gs 1 -1 sc (8) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+7800 3075 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+8400 4275 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+1500 975 m
+gs 1 -1 sc (8) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+2700 975 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold ff 300.00 scf sf
+5100 975 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+% Polyline
+n 6000 600 m 6600 600 l 6600 1200 l 6000 1200 l
+ cp gs col0 s gr 
+% Ellipse
+7.500 slw
+n 4800 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 7200 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 7800 3000 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 8400 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 2400 4200 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 3600 2925 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Ellipse
+n 6000 1800 309 309 0 360 DrawEllipse gs col0 s gr
+
+% Polyline
+n 1200 600 m 1800 600 l 1800 1200 l 1200 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 1800 600 m 2400 600 l 2400 1200 l 1800 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 600 m 3000 600 l 3000 1200 l 2400 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 3000 600 m 3600 600 l 3600 1200 l 3000 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 3600 600 m 4200 600 l 4200 1200 l 3600 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 4200 600 m 4800 600 l 4800 1200 l 4200 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 4800 600 m 5400 600 l 5400 1200 l 4800 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 6300 1950 m
+ 7500 2850 l gs col0 s gr 
+% Polyline
+n 3900 3075 m
+ 4650 3975 l gs col0 s gr 
+% Polyline
+n 7575 3225 m
+ 7275 3900 l gs col0 s gr 
+% Polyline
+n 8025 3225 m
+ 8325 3900 l gs col0 s gr 
+% Polyline
+n 3300 3075 m
+ 2550 3975 l gs col0 s gr 
+% Polyline
+n 5700 1950 m
+ 3900 2775 l gs col0 s gr 
+% here ends figure;
+$F2psEnd
+rs
+showpage
diff --git a/lessons/tris/figures/etape_2_3.fig b/lessons/tris/figures/etape_2_3.fig
new file mode 100644
index 0000000000000000000000000000000000000000..6db4b3dc227474dc03f10d3c2e02dd3816cb2018
--- /dev/null
+++ b/lessons/tris/figures/etape_2_3.fig
@@ -0,0 +1,65 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4800 4200 309 309 4800 4200 4875 4500
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7200 4200 309 309 7200 4200 7509 4200
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7800 3000 309 309 7800 3000 8109 3000
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 8400 4200 309 309 8400 4200 8709 4200
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2400 4200 309 309 2400 4200 2709 4200
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3600 2925 309 309 3600 2925 3909 2925
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6000 1800 309 309 6000 1800 6309 1800
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 600 1800 600 1800 1200 1200 1200 1200 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1800 600 2400 600 2400 1200 1800 1200 1800 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2400 600 3000 600 3000 1200 2400 1200 2400 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3000 600 3600 600 3600 1200 3000 1200 3000 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3600 600 4200 600 4200 1200 3600 1200 3600 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4200 600 4800 600 4800 1200 4200 1200 4200 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4800 600 5400 600 5400 1200 4800 1200 4800 600
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 6300 1950 7500 2850
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3900 3075 4650 3975
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 7575 3225 7275 3900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 8025 3225 8325 3900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3300 3075 2550 3975
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 5700 1950 3900 2775
+2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6000 600 6600 600 6600 1200 6000 1200 6000 600
+2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6600 600 7200 600 7200 1200 6600 1200 6600 600
+2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5400 600 6000 600 6000 1200 5400 1200 5400 600
+4 1 0 50 -1 2 20 0.0000 0 195 135 4500 975 2\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 7200 4275 2\001
+4 1 0 50 -1 2 20 0.0000 0 195 270 6900 975 16\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 2400 4275 6\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 3300 975 6\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 3600 3000 7\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 4800 4275 4\001
+4 1 0 50 -1 2 20 0.0000 0 195 270 6300 975 12\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 2100 975 7\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 3900 975 4\001
+4 1 0 50 -1 2 20 0.0000 0 195 270 5700 975 10\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 6000 1875 8\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 7800 3075 5\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 8400 4275 1\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 1500 975 8\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 2700 975 5\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 5100 975 1\001
diff --git a/lessons/tris/figures/quicksort.eps b/lessons/tris/figures/quicksort.eps
new file mode 100644
index 0000000000000000000000000000000000000000..a88dd4d773f89b1ab29fb077ffb35fdac9ffdcfb
--- /dev/null
+++ b/lessons/tris/figures/quicksort.eps
@@ -0,0 +1,324 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: quicksort.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Sat May  7 00:48:49 2005
+%%For: albuquer@liiEvo800 (Albuquerque Paul)
+%%BoundingBox: 0 0 257 291
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 291 moveto 0 0 lineto 257 0 lineto 257 291 lineto closepath clip newpath
+-68.9 345.6 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+/reencdict 12 dict def /ReEncode { reencdict begin
+/newcodesandnames exch def /newfontname exch def /basefontname exch def
+/basefontdict basefontname findfont def /newfont basefontdict maxlength dict def
+basefontdict { exch dup /FID ne { dup /Encoding eq
+{ exch dup length array copy newfont 3 1 roll put }
+{ exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall
+newfont /FontName newfontname put newcodesandnames aload pop
+128 1 255 { newfont /Encoding get exch /.notdef put } for
+newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat
+newfontname newfont definefont pop end } def
+/isovec [
+8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde
+8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis
+8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron
+8#220 /dotlessi 8#230 /oe 8#231 /OE
+8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling
+8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis
+8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot
+8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus
+8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph
+8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine
+8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf
+8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute
+8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring
+8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute
+8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute
+8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve
+8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply
+8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex
+8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave
+8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring
+8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute
+8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute
+8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve
+8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide
+8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex
+8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def
+/Times-Roman /Times-Roman-iso isovec ReEncode
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06000 0.06000 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 90
+% Polyline
+15.000 slw
+n 3600 2400 m 4200 2400 l 4200 3000 l 3600 3000 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 4800 1200 m 5400 1200 l 5400 1800 l 4800 1800 l
+ cp gs col0 s gr 
+% Polyline
+n 3600 3600 m 4200 3600 l 4200 4200 l 3600 4200 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 4200 3600 m 4800 3600 l 4800 4200 l 4200 4200 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 3600 m 3000 3600 l 3000 4200 l 2400 4200 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 3000 3600 m 3600 3600 l 3600 4200 l 3000 4200 l
+ cp gs col0 s gr 
+% Polyline
+n 4800 3600 m 5400 3600 l 5400 4200 l 4800 4200 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+/Times-Roman-iso ff 300.00 scf sf
+4995 1110 m
+gs 1 -1 sc (P) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+5010 2310 m
+gs 1 -1 sc (P) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3210 2310 m
+gs 1 -1 sc (P) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2010 3540 m
+gs 1 -1 sc (P) col0 sh gr
+% Polyline
+n 4770 4770 m 5370 4770 l 5370 5370 l 4770 5370 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 4170 4770 m 4770 4770 l 4770 5370 l 4170 5370 l
+ cp gs col0 s gr 
+% Polyline
+n 3570 4770 m 4170 4770 l 4170 5370 l 3570 5370 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 2970 4770 m 3570 4770 l 3570 5370 l 2970 5370 l
+ cp gs col0 s gr 
+% Polyline
+n 2370 4770 m 2970 4770 l 2970 5370 l 2370 5370 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 1770 4770 m 2370 4770 l 2370 5370 l 1770 5370 l
+ cp gs col0 s gr 
+% Polyline
+n 1170 4770 m 1770 4770 l 1770 5370 l 1170 5370 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+/Times-Roman-iso ff 300.00 scf sf
+2670 5760 m
+gs 1 -1 sc (suite tri\351e) col0 sh gr
+% here ends figure;
+% 
+% here starts figure with depth 50
+% Polyline
+15.000 slw
+n 1200 2400 m 1800 2400 l 1800 3000 l 1200 3000 l
+ cp gs col0 s gr 
+% Polyline
+n 1800 2400 m 2400 2400 l 2400 3000 l 1800 3000 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 2400 m 3000 2400 l 3000 3000 l 2400 3000 l
+ cp gs col0 s gr 
+% Polyline
+n 4200 2400 m 4800 2400 l 4800 3000 l 4200 3000 l
+ cp gs col0 s gr 
+% Polyline
+n 1200 3600 m 1800 3600 l 1800 4200 l 1200 4200 l
+ cp gs col0 s gr 
+% Polyline
+n 1800 3600 m 2400 3600 l 2400 4200 l 1800 4200 l
+ cp gs col0 s gr 
+% Polyline
+n 4800 2400 m 5400 2400 l 5400 3000 l 4800 3000 l
+ cp gs col0 s gr 
+% Polyline
+n 3000 2400 m 3600 2400 l 3600 3000 l 3000 3000 l
+ cp gs col0 s gr 
+% Polyline
+n 1200 1200 m 1800 1200 l 1800 1800 l 1200 1800 l
+ cp gs col0 s gr 
+% Polyline
+n 1800 1200 m 2400 1200 l 2400 1800 l 1800 1800 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 1200 m 3000 1200 l 3000 1800 l 2400 1800 l
+ cp gs col0 s gr 
+% Polyline
+n 3000 1200 m 3600 1200 l 3600 1800 l 3000 1800 l
+ cp gs col0 s gr 
+% Polyline
+n 3600 1200 m 4200 1200 l 4200 1800 l 3600 1800 l
+ cp gs col0 s gr 
+% Polyline
+n 4200 1200 m 4800 1200 l 4800 1800 l 4200 1800 l
+ cp gs col0 s gr 
+/Times-Roman-iso ff 300.00 scf sf
+1425 2775 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2025 2790 m
+gs 1 -1 sc (1) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1425 3975 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2025 3990 m
+gs 1 -1 sc (1) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3675 2775 m
+gs 1 -1 sc (12) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4950 2775 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4350 2775 m
+gs 1 -1 sc (31) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1425 1575 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2535 1575 m
+gs 1 -1 sc (31) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2025 1590 m
+gs 1 -1 sc (1) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3120 1590 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3795 1575 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4425 1575 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4920 1575 m
+gs 1 -1 sc (12) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2595 2790 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3180 2790 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3675 3975 m
+gs 1 -1 sc (12) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4935 3990 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4365 3960 m
+gs 1 -1 sc (31) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3180 3975 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2565 3975 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1380 5145 m
+gs 1 -1 sc (1) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1965 5130 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2550 5130 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3180 5115 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3675 5130 m
+gs 1 -1 sc (12) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4920 5130 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4290 5130 m
+gs 1 -1 sc (31) col0 sh gr
+% here ends figure;
+$F2psEnd
+rs
+showpage
diff --git a/lessons/tris/figures/quicksort.fig b/lessons/tris/figures/quicksort.fig
new file mode 100644
index 0000000000000000000000000000000000000000..917e033c99c4e4912cd5bc97b6330b83407d26ee
--- /dev/null
+++ b/lessons/tris/figures/quicksort.fig
@@ -0,0 +1,102 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+6 1185 915 5415 4215
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 1200 2400 1800 2400 1800 3000 1200 3000 1200 2400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 1800 2400 2400 2400 2400 3000 1800 3000 1800 2400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 2400 2400 3000 2400 3000 3000 2400 3000 2400 2400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 4200 2400 4800 2400 4800 3000 4200 3000 4200 2400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 1200 3600 1800 3600 1800 4200 1200 4200 1200 3600
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 1800 3600 2400 3600 2400 4200 1800 4200 1800 3600
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 4800 2400 5400 2400 5400 3000 4800 3000 4800 2400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 3000 2400 3600 2400 3600 3000 3000 3000 3000 2400
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 3600 2400 4200 2400 4200 3000 3600 3000 3600 2400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 1200 1200 1800 1200 1800 1800 1200 1800 1200 1200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 1800 1200 2400 1200 2400 1800 1800 1800 1800 1200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 2400 1200 3000 1200 3000 1800 2400 1800 2400 1200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 3000 1200 3600 1200 3600 1800 3000 1800 3000 1200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 3600 1200 4200 1200 4200 1800 3600 1800 3600 1200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 4200 1200 4800 1200 4800 1800 4200 1800 4200 1200
+2 2 0 2 0 11 90 -1 -1 0.000 0 0 7 0 0 5
+	 4800 1200 5400 1200 5400 1800 4800 1800 4800 1200
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 3600 3600 4200 3600 4200 4200 3600 4200 3600 3600
+2 2 0 2 0 11 90 -1 -1 0.000 0 0 7 0 0 5
+	 4200 3600 4800 3600 4800 4200 4200 4200 4200 3600
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 2400 3600 3000 3600 3000 4200 2400 4200 2400 3600
+2 2 0 2 0 11 90 -1 -1 0.000 0 0 7 0 0 5
+	 3000 3600 3600 3600 3600 4200 3000 4200 3000 3600
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 4800 3600 5400 3600 5400 4200 4800 4200 4800 3600
+4 0 0 50 -1 0 20 0.0000 4 225 150 1425 2775 3\001
+4 0 0 50 -1 0 20 0.0000 4 225 150 2025 2790 1\001
+4 0 0 50 -1 0 20 0.0000 4 225 150 1425 3975 3\001
+4 0 0 50 -1 0 20 0.0000 4 225 150 2025 3990 1\001
+4 0 0 50 -1 0 20 0.0000 4 225 300 3675 2775 12\001
+4 0 0 50 -1 0 20 0.0000 4 225 300 4950 2775 41\001
+4 0 0 50 -1 0 20 0.0000 4 255 300 4350 2775 31\001
+4 0 0 50 -1 0 20 0.0000 4 225 150 1425 1575 3\001
+4 0 0 50 -1 0 20 0.0000 4 255 300 2535 1575 31\001
+4 0 0 50 -1 0 20 0.0000 4 225 150 2025 1590 1\001
+4 0 0 50 -1 0 20 0.0000 4 225 300 3120 1590 41\001
+4 0 0 50 -1 0 20 0.0000 4 225 150 3795 1575 5\001
+4 0 0 50 -1 0 20 0.0000 4 195 150 4425 1575 7\001
+4 0 0 50 -1 0 20 0.0000 4 225 300 4920 1575 12\001
+4 0 0 90 -1 0 20 0.0000 4 195 165 4995 1110 P\001
+4 0 0 90 -1 0 20 0.0000 4 195 165 5010 2310 P\001
+4 0 0 90 -1 0 20 0.0000 4 195 165 3210 2310 P\001
+4 0 0 50 -1 0 20 0.0000 4 195 150 2595 2790 7\001
+4 0 0 50 -1 0 20 0.0000 4 225 150 3180 2790 5\001
+4 0 0 50 -1 0 20 0.0000 4 225 300 3675 3975 12\001
+4 0 0 50 -1 0 20 0.0000 4 225 300 4935 3990 41\001
+4 0 0 50 -1 0 20 0.0000 4 255 300 4365 3960 31\001
+4 0 0 50 -1 0 20 0.0000 4 195 150 3180 3975 7\001
+4 0 0 50 -1 0 20 0.0000 4 225 150 2565 3975 5\001
+4 0 0 90 -1 0 20 0.0000 4 195 165 2010 3540 P\001
+-6
+6 1155 4755 5385 5385
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 4770 4770 5370 4770 5370 5370 4770 5370 4770 4770
+2 2 0 2 0 11 90 -1 -1 0.000 0 0 7 0 0 5
+	 4170 4770 4770 4770 4770 5370 4170 5370 4170 4770
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 3570 4770 4170 4770 4170 5370 3570 5370 3570 4770
+2 2 0 2 0 11 90 -1 -1 0.000 0 0 7 0 0 5
+	 2970 4770 3570 4770 3570 5370 2970 5370 2970 4770
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 2370 4770 2970 4770 2970 5370 2370 5370 2370 4770
+2 2 0 2 0 11 90 -1 -1 0.000 0 0 7 0 0 5
+	 1770 4770 2370 4770 2370 5370 1770 5370 1770 4770
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 1170 4770 1770 4770 1770 5370 1170 5370 1170 4770
+4 0 0 50 -1 0 20 0.0000 4 225 150 1380 5145 1\001
+4 0 0 50 -1 0 20 0.0000 4 225 150 1965 5130 3\001
+4 0 0 50 -1 0 20 0.0000 4 225 150 2550 5130 5\001
+4 0 0 50 -1 0 20 0.0000 4 195 150 3180 5115 7\001
+4 0 0 50 -1 0 20 0.0000 4 225 300 3675 5130 12\001
+4 0 0 50 -1 0 20 0.0000 4 225 300 4920 5130 41\001
+4 0 0 50 -1 0 20 0.0000 4 255 300 4290 5130 31\001
+-6
+4 0 0 90 -1 0 20 0.0000 4 225 1215 2670 5760 suite tri\351e\001
diff --git a/lessons/tris/figures/tas.eps b/lessons/tris/figures/tas.eps
new file mode 100644
index 0000000000000000000000000000000000000000..13e4da5b666702045cc45a8f0259035c8c916460
--- /dev/null
+++ b/lessons/tris/figures/tas.eps
@@ -0,0 +1,273 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: tas.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Wed May 18 09:28:23 2005
+%%For: lazeyras@eig3 (LAZEYRAS Michel - EIG prof)
+%%BoundingBox: 0 0 362 184
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 184 moveto 0 0 lineto 362 0 lineto 362 184 lineto closepath clip newpath
+-71.3 193.6 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+/reencdict 12 dict def /ReEncode { reencdict begin
+/newcodesandnames exch def /newfontname exch def /basefontname exch def
+/basefontdict basefontname findfont def /newfont basefontdict maxlength dict def
+basefontdict { exch dup /FID ne { dup /Encoding eq
+{ exch dup length array copy newfont 3 1 roll put }
+{ exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall
+newfont /FontName newfontname put newcodesandnames aload pop
+128 1 255 { newfont /Encoding get exch /.notdef put } for
+newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat
+newfontname newfont definefont pop end } def
+/isovec [
+8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde
+8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis
+8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron
+8#220 /dotlessi 8#230 /oe 8#231 /OE
+8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling
+8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis
+8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot
+8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus
+8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph
+8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine
+8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf
+8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute
+8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring
+8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute
+8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute
+8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve
+8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply
+8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex
+8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave
+8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring
+8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute
+8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute
+8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve
+8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide
+8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex
+8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def
+/Times-Bold /Times-Bold-iso isovec ReEncode
+/Times-Roman /Times-Roman-iso isovec ReEncode
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06000 0.06000 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 50
+/Times-Bold-iso ff 300.00 scf sf
+2700 975 m
+gs 1 -1 sc (14) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold-iso ff 300.00 scf sf
+3300 975 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold-iso ff 300.00 scf sf
+3900 975 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold-iso ff 300.00 scf sf
+4500 975 m
+gs 1 -1 sc (10) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold-iso ff 300.00 scf sf
+5100 975 m
+gs 1 -1 sc (12) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold-iso ff 300.00 scf sf
+5700 975 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold-iso ff 300.00 scf sf
+6300 975 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold-iso ff 300.00 scf sf
+6900 975 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold-iso ff 300.00 scf sf
+1500 975 m
+gs 1 -1 sc (16) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1200 375 m
+gs 1 -1 sc (Exemple de tableau formant un tas :) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1200 1875 m
+gs 1 -1 sc (Exemple de tableau ne formant pas un tas :) col0 sh gr
+/Times-Bold-iso ff 300.00 scf sf
+1500 2475 m
+gs 1 -1 sc (16) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold-iso ff 300.00 scf sf
+2100 2475 m
+gs 1 -1 sc (14) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold-iso ff 300.00 scf sf
+2700 2475 m
+gs 1 -1 sc (8) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold-iso ff 300.00 scf sf
+3300 2475 m
+gs 1 -1 sc (6) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold-iso ff 300.00 scf sf
+3900 2475 m
+gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold-iso ff 300.00 scf sf
+4500 2475 m
+gs 1 -1 sc (10) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold-iso ff 300.00 scf sf
+5100 2475 m
+gs 1 -1 sc (12) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold-iso ff 300.00 scf sf
+5700 2475 m
+gs 1 -1 sc (4) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold-iso ff 300.00 scf sf
+6300 2475 m
+gs 1 -1 sc (5) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Bold-iso ff 300.00 scf sf
+6900 2475 m
+gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm  col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1200 3150 m
+gs 1 -1 sc (car 10 > 8 et 12 > 8  \(10 et 12 \351tant des fils de 8\)) col0 sh gr
+/Times-Bold-iso ff 300.00 scf sf
+2100 975 m
+gs 1 -1 sc (8) dup sw pop 2 div neg 0 rm  col0 sh gr
+% Polyline
+7.500 slw
+n 1800 600 m 2400 600 l 2400 1200 l 1800 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 600 m 3000 600 l 3000 1200 l 2400 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 3000 600 m 3600 600 l 3600 1200 l 3000 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 3600 600 m 4200 600 l 4200 1200 l 3600 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 4200 600 m 4800 600 l 4800 1200 l 4200 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 4800 600 m 5400 600 l 5400 1200 l 4800 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 5400 600 m 6000 600 l 6000 1200 l 5400 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 6000 600 m 6600 600 l 6600 1200 l 6000 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 6600 600 m 7200 600 l 7200 1200 l 6600 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 1200 600 m 1800 600 l 1800 1200 l 1200 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 1200 600 m 1800 600 l 1800 1200 l 1200 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 600 m 3000 600 l 3000 1200 l 2400 1200 l
+ cp gs col0 s gr 
+% Polyline
+n 1200 2100 m 1800 2100 l 1800 2700 l 1200 2700 l
+ cp gs col0 s gr 
+% Polyline
+n 1800 2100 m 2400 2100 l 2400 2700 l 1800 2700 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 2100 m 3000 2100 l 3000 2700 l 2400 2700 l
+ cp gs col0 s gr 
+% Polyline
+n 3000 2100 m 3600 2100 l 3600 2700 l 3000 2700 l
+ cp gs col0 s gr 
+% Polyline
+n 3600 2100 m 4200 2100 l 4200 2700 l 3600 2700 l
+ cp gs col0 s gr 
+% Polyline
+n 4200 2100 m 4800 2100 l 4800 2700 l 4200 2700 l
+ cp gs col0 s gr 
+% Polyline
+n 4800 2100 m 5400 2100 l 5400 2700 l 4800 2700 l
+ cp gs col0 s gr 
+% Polyline
+n 5400 2100 m 6000 2100 l 6000 2700 l 5400 2700 l
+ cp gs col0 s gr 
+% Polyline
+n 6000 2100 m 6600 2100 l 6600 2700 l 6000 2700 l
+ cp gs col0 s gr 
+% Polyline
+n 6600 2100 m 7200 2100 l 7200 2700 l 6600 2700 l
+ cp gs col0 s gr 
+% here ends figure;
+$F2psEnd
+rs
+showpage
diff --git a/lessons/tris/figures/tas.fig b/lessons/tris/figures/tas.fig
new file mode 100644
index 0000000000000000000000000000000000000000..a8a5769d5b21dcb40e01a4066d2d7b6293b242c4
--- /dev/null
+++ b/lessons/tris/figures/tas.fig
@@ -0,0 +1,76 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1800 600 2400 600 2400 1200 1800 1200 1800 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2400 600 3000 600 3000 1200 2400 1200 2400 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3000 600 3600 600 3600 1200 3000 1200 3000 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3600 600 4200 600 4200 1200 3600 1200 3600 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4200 600 4800 600 4800 1200 4200 1200 4200 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4800 600 5400 600 5400 1200 4800 1200 4800 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5400 600 6000 600 6000 1200 5400 1200 5400 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6000 600 6600 600 6600 1200 6000 1200 6000 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6600 600 7200 600 7200 1200 6600 1200 6600 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 600 1800 600 1800 1200 1200 1200 1200 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 600 1800 600 1800 1200 1200 1200 1200 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2400 600 3000 600 3000 1200 2400 1200 2400 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 2100 1800 2100 1800 2700 1200 2700 1200 2100
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1800 2100 2400 2100 2400 2700 1800 2700 1800 2100
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2400 2100 3000 2100 3000 2700 2400 2700 2400 2100
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3000 2100 3600 2100 3600 2700 3000 2700 3000 2100
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3600 2100 4200 2100 4200 2700 3600 2700 3600 2100
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4200 2100 4800 2100 4800 2700 4200 2700 4200 2100
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4800 2100 5400 2100 5400 2700 4800 2700 4800 2100
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5400 2100 6000 2100 6000 2700 5400 2700 5400 2100
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6000 2100 6600 2100 6600 2700 6000 2700 6000 2100
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6600 2100 7200 2100 7200 2700 6600 2700 6600 2100
+4 1 0 50 -1 2 20 0.0000 0 195 135 2100 975 8\001
+4 1 0 50 -1 2 20 0.0000 0 195 270 2700 975 14\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 3300 975 6\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 3900 975 2\001
+4 1 0 50 -1 2 20 0.0000 0 195 270 4500 975 10\001
+4 1 0 50 -1 2 20 0.0000 0 195 270 5100 975 12\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 5700 975 4\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 6300 975 5\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 6900 975 1\001
+4 1 0 50 -1 2 20 0.0000 0 195 270 1500 975 16\001
+4 0 0 50 -1 0 20 0.0000 4 255 4170 1200 375 Exemple de tableau formant un tas :\001
+4 0 0 50 -1 0 20 0.0000 4 255 4965 1200 1875 Exemple de tableau ne formant pas un tas :\001
+4 1 0 50 -1 2 20 0.0000 0 195 270 1500 2475 16\001
+4 1 0 50 -1 2 20 0.0000 0 195 270 2100 2475 14\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 2700 2475 8\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 3300 2475 6\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 3900 2475 2\001
+4 1 0 50 -1 2 20 0.0000 0 195 270 4500 2475 10\001
+4 1 0 50 -1 2 20 0.0000 0 195 270 5100 2475 12\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 5700 2475 4\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 6300 2475 5\001
+4 1 0 50 -1 2 20 0.0000 0 195 135 6900 2475 1\001
+4 0 0 50 -1 0 20 0.0000 4 255 5550 1200 3150 car 10 > 8 et 12 > 8  (10 et 12 \351tant des fils de 8)\001
diff --git a/lessons/tris/figures/tri_bulles.eps b/lessons/tris/figures/tri_bulles.eps
new file mode 100644
index 0000000000000000000000000000000000000000..5f405b776e0f4ac3e32018ac143cb7dd362cce90
--- /dev/null
+++ b/lessons/tris/figures/tri_bulles.eps
@@ -0,0 +1,708 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: tri_bulles.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Fri May  6 20:27:42 2005
+%%For: albuquer@eig3 (ALBUQUERQUE Paul - EIG prof)
+%%BoundingBox: 0 0 694 414
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 414 moveto 0 0 lineto 694 0 lineto 694 414 lineto closepath clip newpath
+-38.3 507.1 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+/reencdict 12 dict def /ReEncode { reencdict begin
+/newcodesandnames exch def /newfontname exch def /basefontname exch def
+/basefontdict basefontname findfont def /newfont basefontdict maxlength dict def
+basefontdict { exch dup /FID ne { dup /Encoding eq
+{ exch dup length array copy newfont 3 1 roll put }
+{ exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall
+newfont /FontName newfontname put newcodesandnames aload pop
+128 1 255 { newfont /Encoding get exch /.notdef put } for
+newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat
+newfontname newfont definefont pop end } def
+/isovec [
+8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde
+8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis
+8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron
+8#220 /dotlessi 8#230 /oe 8#231 /OE
+8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling
+8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis
+8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot
+8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus
+8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph
+8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine
+8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf
+8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute
+8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring
+8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute
+8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute
+8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve
+8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply
+8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex
+8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave
+8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring
+8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute
+8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute
+8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve
+8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide
+8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex
+8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def
+/Times-Roman /Times-Roman-iso isovec ReEncode
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06000 0.06000 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 90
+% Polyline
+15.000 slw
+n 3075 6600 m 3675 6600 l 3675 7200 l 3075 7200 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 3075 5400 m 3675 5400 l 3675 6000 l 3075 6000 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 2475 5400 m 3075 5400 l 3075 6000 l 2475 6000 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 2475 4200 m 3075 4200 l 3075 4800 l 2475 4800 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 1875 4200 m 2475 4200 l 2475 4800 l 1875 4800 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 7050 5400 m 7650 5400 l 7650 6000 l 7050 6000 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 6450 5400 m 7050 5400 l 7050 6000 l 6450 6000 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 5850 4200 m 6450 4200 l 6450 4800 l 5850 4800 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 5850 3000 m 6450 3000 l 6450 3600 l 5850 3600 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 5250 3000 m 5850 3000 l 5850 3600 l 5250 3600 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 1875 3000 m 2475 3000 l 2475 3600 l 1875 3600 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 4650 1800 m 5250 1800 l 5250 2400 l 4650 2400 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 1275 3000 m 1875 3000 l 1875 3600 l 1275 3600 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 1275 1800 m 1875 1800 l 1875 2400 l 1275 2400 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 675 1800 m 1275 1800 l 1275 2400 l 675 2400 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 3675 6600 m 4275 6600 l 4275 7200 l 3675 7200 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 9150 1800 m 9750 1800 l 9750 2400 l 9150 2400 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 5250 1800 m 5850 1800 l 5850 2400 l 5250 2400 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 6450 4200 m 7050 4200 l 7050 4800 l 6450 4800 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 10350 4200 m 10950 4200 l 10950 4800 l 10350 4800 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 9750 4200 m 10350 4200 l 10350 4800 l 9750 4800 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 9750 3000 m 10350 3000 l 10350 3600 l 9750 3600 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 8550 1800 m 9150 1800 l 9150 2400 l 8550 2400 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 9150 3000 m 9750 3000 l 9750 3600 l 9150 3600 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% here ends figure;
+% 
+% here starts figure with depth 50
+/Times-Roman-iso ff 300.00 scf sf
+900 6975 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1500 6975 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3825 8220 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3240 6975 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3270 8220 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2580 8205 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2085 8205 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1485 8205 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+885 8205 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3885 6975 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2595 6975 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2100 6975 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2025 2175 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2625 2175 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3225 2175 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3825 2175 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3225 3375 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3825 3375 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1425 3375 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+900 3375 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3225 4575 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3825 4575 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+900 4575 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3825 5775 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+900 5775 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1500 5775 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2100 5775 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2685 3375 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2055 3375 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1455 4590 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2010 4590 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2700 4575 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2610 5775 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3195 5775 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+7260 2175 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+5475 5775 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+6075 5775 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+7800 5775 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+7200 5775 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+6675 5775 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+8775 2175 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+9375 2175 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+9975 2175 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+11670 2160 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+8775 3375 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+8775 4575 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+9330 4590 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+9975 4560 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+9375 3375 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+9975 3375 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+11700 3375 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+11700 4575 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+10575 3375 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+10575 4575 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+10575 2175 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+11070 4575 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+11055 3360 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+11040 2160 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4875 5775 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4875 2175 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+5475 2175 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+6075 2175 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+6600 2175 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+7770 2160 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4875 3375 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4875 4575 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+5430 4590 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+6075 4560 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+5475 3375 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+6075 3375 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+6600 3375 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+7275 3375 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+7800 3375 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+6600 4575 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+7275 4575 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+7800 4575 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4890 6975 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+5490 6975 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+6090 6975 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+7815 6975 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+7215 6975 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+6690 6975 m
+gs 1 -1 sc (8) col0 sh gr
+% Polyline
+15.000 slw
+n 10950 3975 m
+ 10950 4950 l gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 3075 4200 m 3675 4200 l 3675 4800 l 3075 4800 l
+ cp gs col0 s gr 
+% Polyline
+n 3675 4200 m 4275 4200 l 4275 4800 l 3675 4800 l
+ cp gs col0 s gr 
+% Polyline
+n 1275 4200 m 1875 4200 l 1875 4800 l 1275 4800 l
+ cp gs col0 s gr 
+% Polyline
+n 675 5400 m 1275 5400 l 1275 6000 l 675 6000 l
+ cp gs col0 s gr 
+% Polyline
+n 1875 5400 m 2475 5400 l 2475 6000 l 1875 6000 l
+ cp gs col0 s gr 
+% Polyline
+n 3675 5400 m 4275 5400 l 4275 6000 l 3675 6000 l
+ cp gs col0 s gr 
+% Polyline
+n 1275 5400 m 1875 5400 l 1875 6000 l 1275 6000 l
+ cp gs col0 s gr 
+% Polyline
+n 675 6600 m 1275 6600 l 1275 7200 l 675 7200 l
+ cp gs col0 s gr 
+% Polyline
+n 1875 6600 m 2475 6600 l 2475 7200 l 1875 7200 l
+ cp gs col0 s gr 
+% Polyline
+n 1275 6600 m 1875 6600 l 1875 7200 l 1275 7200 l
+ cp gs col0 s gr 
+% Polyline
+n 2475 6600 m 3075 6600 l 3075 7200 l 2475 7200 l
+ cp gs col0 s gr 
+% Polyline
+n 660 7830 m 1260 7830 l 1260 8430 l 660 8430 l
+ cp gs col0 s gr 
+% Polyline
+n 1860 7830 m 2460 7830 l 2460 8430 l 1860 8430 l
+ cp gs col0 s gr 
+% Polyline
+n 1260 7830 m 1860 7830 l 1860 8430 l 1260 8430 l
+ cp gs col0 s gr 
+% Polyline
+n 2460 7830 m 3060 7830 l 3060 8430 l 2460 8430 l
+ cp gs col0 s gr 
+% Polyline
+n 3660 7830 m 4260 7830 l 4260 8430 l 3660 8430 l
+ cp gs col0 s gr 
+% Polyline
+n 3060 7830 m 3660 7830 l 3660 8430 l 3060 8430 l
+ cp gs col0 s gr 
+% Polyline
+n 5850 1800 m 6450 1800 l 6450 2400 l 5850 2400 l
+ cp gs col0 s gr 
+% Polyline
+n 6450 1800 m 7050 1800 l 7050 2400 l 6450 2400 l
+ cp gs col0 s gr 
+% Polyline
+n 675 4200 m 1275 4200 l 1275 4800 l 675 4800 l
+ cp gs col0 s gr 
+% Polyline
+n 8580 5400 m 9180 5400 l 9180 6000 l 8580 6000 l
+ cp gs col0 s gr 
+% Polyline
+n 9780 5400 m 10380 5400 l 10380 6000 l 9780 6000 l
+ cp gs col0 s gr 
+% Polyline
+n 9180 5400 m 9780 5400 l 9780 6000 l 9180 6000 l
+ cp gs col0 s gr 
+% Polyline
+n 10380 5400 m 10980 5400 l 10980 6000 l 10380 6000 l
+ cp gs col0 s gr 
+% Polyline
+n 10980 5400 m 11580 5400 l 11580 6000 l 10980 6000 l
+ cp gs col0 s gr 
+% Polyline
+n 11580 5400 m 12180 5400 l 12180 6000 l 11580 6000 l
+ cp gs col0 s gr 
+/Times-Roman-iso ff 300.00 scf sf
+8805 5775 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+9405 5775 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+10005 5775 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+11730 5775 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+11055 5775 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+10605 5775 m
+gs 1 -1 sc (8) col0 sh gr
+% Polyline
+n 1875 1800 m 2475 1800 l 2475 2400 l 1875 2400 l
+ cp gs col0 s gr 
+% Polyline
+n 2475 1800 m 3075 1800 l 3075 2400 l 2475 2400 l
+ cp gs col0 s gr 
+% Polyline
+n 3075 1800 m 3675 1800 l 3675 2400 l 3075 2400 l
+ cp gs col0 s gr 
+% Polyline
+n 3675 1800 m 4275 1800 l 4275 2400 l 3675 2400 l
+ cp gs col0 s gr 
+% Polyline
+n 675 3000 m 1275 3000 l 1275 3600 l 675 3600 l
+ cp gs col0 s gr 
+% Polyline
+n 2475 3000 m 3075 3000 l 3075 3600 l 2475 3600 l
+ cp gs col0 s gr 
+% Polyline
+n 3075 3000 m 3675 3000 l 3675 3600 l 3075 3600 l
+ cp gs col0 s gr 
+% Polyline
+n 3675 3000 m 4275 3000 l 4275 3600 l 3675 3600 l
+ cp gs col0 s gr 
+% Polyline
+n 4650 3000 m 5250 3000 l 5250 3600 l 4650 3600 l
+ cp gs col0 s gr 
+% Polyline
+n 7650 5400 m 8250 5400 l 8250 6000 l 7650 6000 l
+ cp gs col0 s gr 
+% Polyline
+n 5250 5400 m 5850 5400 l 5850 6000 l 5250 6000 l
+ cp gs col0 s gr 
+% Polyline
+n 7650 5175 m
+ 7650 6150 l gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 9750 1800 m 10350 1800 l 10350 2400 l 9750 2400 l
+ cp gs col0 s gr 
+% Polyline
+n 10350 1800 m 10950 1800 l 10950 2400 l 10350 2400 l
+ cp gs col0 s gr 
+% Polyline
+n 8550 3000 m 9150 3000 l 9150 3600 l 8550 3600 l
+ cp gs col0 s gr 
+% Polyline
+n 10350 3000 m 10950 3000 l 10950 3600 l 10350 3600 l
+ cp gs col0 s gr 
+% Polyline
+n 10950 3000 m 11550 3000 l 11550 3600 l 10950 3600 l
+ cp gs col0 s gr 
+% Polyline
+n 11550 3000 m 12150 3000 l 12150 3600 l 11550 3600 l
+ cp gs col0 s gr 
+% Polyline
+n 8550 4200 m 9150 4200 l 9150 4800 l 8550 4800 l
+ cp gs col0 s gr 
+% Polyline
+n 10950 4200 m 11550 4200 l 11550 4800 l 10950 4800 l
+ cp gs col0 s gr 
+% Polyline
+n 11550 4200 m 12150 4200 l 12150 4800 l 11550 4800 l
+ cp gs col0 s gr 
+% Polyline
+n 9150 4200 m 9750 4200 l 9750 4800 l 9150 4800 l
+ cp gs col0 s gr 
+% Polyline
+n 10950 1800 m 11550 1800 l 11550 2400 l 10950 2400 l
+ cp gs col0 s gr 
+% Polyline
+n 11550 1800 m 12150 1800 l 12150 2400 l 11550 2400 l
+ cp gs col0 s gr 
+% Polyline
+n 10950 2850 m
+ 10950 3825 l gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 10950 1650 m
+ 10950 2625 l gs col11 1.00 shd ef gr gs col0 s gr 
+/Times-Roman-iso ff 300.00 scf sf
+8775 6360 m
+gs 1 -1 sc (aucun \351change = suite tri\351e) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+825 2175 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1425 2175 m
+gs 1 -1 sc (3) col0 sh gr
+% Polyline
+n 5850 5400 m 6450 5400 l 6450 6000 l 5850 6000 l
+ cp gs col0 s gr 
+% Polyline
+n 6450 3000 m 7050 3000 l 7050 3600 l 6450 3600 l
+ cp gs col0 s gr 
+% Polyline
+n 7050 3000 m 7650 3000 l 7650 3600 l 7050 3600 l
+ cp gs col0 s gr 
+% Polyline
+n 7650 3000 m 8250 3000 l 8250 3600 l 7650 3600 l
+ cp gs col0 s gr 
+% Polyline
+n 4650 4200 m 5250 4200 l 5250 4800 l 4650 4800 l
+ cp gs col0 s gr 
+% Polyline
+n 7050 4200 m 7650 4200 l 7650 4800 l 7050 4800 l
+ cp gs col0 s gr 
+% Polyline
+n 7650 4200 m 8250 4200 l 8250 4800 l 7650 4800 l
+ cp gs col0 s gr 
+% Polyline
+n 5250 4200 m 5850 4200 l 5850 4800 l 5250 4800 l
+ cp gs col0 s gr 
+% Polyline
+n 7050 1800 m 7650 1800 l 7650 2400 l 7050 2400 l
+ cp gs col0 s gr 
+% Polyline
+n 7650 1800 m 8250 1800 l 8250 2400 l 7650 2400 l
+ cp gs col0 s gr 
+% Polyline
+n 7650 1575 m
+ 7650 2550 l gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 7650 2775 m
+ 7650 3750 l gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 7650 3975 m
+ 7650 4950 l gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 4665 6600 m 5265 6600 l 5265 7200 l 4665 7200 l
+ cp gs col0 s gr 
+% Polyline
+n 5865 6600 m 6465 6600 l 6465 7200 l 5865 7200 l
+ cp gs col0 s gr 
+% Polyline
+n 7665 6600 m 8265 6600 l 8265 7200 l 7665 7200 l
+ cp gs col0 s gr 
+% Polyline
+n 5265 6600 m 5865 6600 l 5865 7200 l 5265 7200 l
+ cp gs col0 s gr 
+% Polyline
+n 7065 6600 m 7665 6600 l 7665 7200 l 7065 7200 l
+ cp gs col0 s gr 
+% Polyline
+n 6465 6600 m 7065 6600 l 7065 7200 l 6465 7200 l
+ cp gs col0 s gr 
+% Polyline
+n 7665 6375 m
+ 7665 7350 l gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 4650 5400 m 5250 5400 l 5250 6000 l 4650 6000 l
+ cp gs col0 s gr 
+% here ends figure;
+$F2psEnd
+rs
+showpage
diff --git a/lessons/tris/figures/tri_bulles.fig b/lessons/tris/figures/tri_bulles.fig
new file mode 100644
index 0000000000000000000000000000000000000000..d8bbc050b510d674806bb5a8948433a869c7af20
--- /dev/null
+++ b/lessons/tris/figures/tri_bulles.fig
@@ -0,0 +1,300 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+6 645 1560 12195 8445
+6 8565 5385 12195 6015
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 8580 5400 9180 5400 9180 6000 8580 6000 8580 5400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 9780 5400 10380 5400 10380 6000 9780 6000 9780 5400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 9180 5400 9780 5400 9780 6000 9180 6000 9180 5400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 10380 5400 10980 5400 10980 6000 10380 6000 10380 5400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 10980 5400 11580 5400 11580 6000 10980 6000 10980 5400
+2 2 0 2 0 11 50 -1 -1 0.000 0 0 -1 0 0 5
+	 11580 5400 12180 5400 12180 6000 11580 6000 11580 5400
+4 0 0 50 -1 0 20 0.0000 4 210 150 8805 5775 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 9405 5775 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 10005 5775 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 11730 5775 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 11055 5775 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 10605 5775 8\001
+-6
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1875 1800 2475 1800 2475 2400 1875 2400 1875 1800
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2475 1800 3075 1800 3075 2400 2475 2400 2475 1800
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3075 1800 3675 1800 3675 2400 3075 2400 3075 1800
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3675 1800 4275 1800 4275 2400 3675 2400 3675 1800
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 675 3000 1275 3000 1275 3600 675 3600 675 3000
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2475 3000 3075 3000 3075 3600 2475 3600 2475 3000
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3075 3000 3675 3000 3675 3600 3075 3600 3075 3000
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3675 3000 4275 3000 4275 3600 3675 3600 3675 3000
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 675 4200 1275 4200 1275 4800 675 4800 675 4200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3075 4200 3675 4200 3675 4800 3075 4800 3075 4200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3675 4200 4275 4200 4275 4800 3675 4800 3675 4200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1275 4200 1875 4200 1875 4800 1275 4800 1275 4200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 675 5400 1275 5400 1275 6000 675 6000 675 5400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1875 5400 2475 5400 2475 6000 1875 6000 1875 5400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3675 5400 4275 5400 4275 6000 3675 6000 3675 5400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1275 5400 1875 5400 1875 6000 1275 6000 1275 5400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 675 6600 1275 6600 1275 7200 675 7200 675 6600
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1875 6600 2475 6600 2475 7200 1875 7200 1875 6600
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1275 6600 1875 6600 1875 7200 1275 7200 1275 6600
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2475 6600 3075 6600 3075 7200 2475 7200 2475 6600
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 660 7830 1260 7830 1260 8430 660 8430 660 7830
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1860 7830 2460 7830 2460 8430 1860 8430 1860 7830
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1260 7830 1860 7830 1860 8430 1260 8430 1260 7830
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2460 7830 3060 7830 3060 8430 2460 8430 2460 7830
+2 2 0 2 0 11 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3660 7830 4260 7830 4260 8430 3660 8430 3660 7830
+2 2 0 2 0 11 50 -1 -1 0.000 0 0 7 0 0 5
+	 3060 7830 3660 7830 3660 8430 3060 8430 3060 7830
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 675 1800 1275 1800 1275 2400 675 2400 675 1800
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 1275 1800 1875 1800 1875 2400 1275 2400 1275 1800
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 1275 3000 1875 3000 1875 3600 1275 3600 1275 3000
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 1875 3000 2475 3000 2475 3600 1875 3600 1875 3000
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 1875 4200 2475 4200 2475 4800 1875 4800 1875 4200
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 2475 4200 3075 4200 3075 4800 2475 4800 2475 4200
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 2475 5400 3075 5400 3075 6000 2475 6000 2475 5400
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 3075 5400 3675 5400 3675 6000 3075 6000 3075 5400
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 3075 6600 3675 6600 3675 7200 3075 7200 3075 6600
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 3675 6600 4275 6600 4275 7200 3675 7200 3675 6600
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5850 1800 6450 1800 6450 2400 5850 2400 5850 1800
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6450 1800 7050 1800 7050 2400 6450 2400 6450 1800
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4650 3000 5250 3000 5250 3600 4650 3600 4650 3000
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6450 3000 7050 3000 7050 3600 6450 3600 6450 3000
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 7050 3000 7650 3000 7650 3600 7050 3600 7050 3000
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 7650 3000 8250 3000 8250 3600 7650 3600 7650 3000
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4650 4200 5250 4200 5250 4800 4650 4800 4650 4200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 7050 4200 7650 4200 7650 4800 7050 4800 7050 4200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 7650 4200 8250 4200 8250 4800 7650 4800 7650 4200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5250 4200 5850 4200 5850 4800 5250 4800 5250 4200
+2 2 0 2 0 11 50 -1 -1 0.000 0 0 7 0 0 5
+	 7050 1800 7650 1800 7650 2400 7050 2400 7050 1800
+2 2 0 2 0 11 50 -1 -1 0.000 0 0 7 0 0 5
+	 7650 1800 8250 1800 8250 2400 7650 2400 7650 1800
+2 1 0 2 0 11 50 -1 20 0.000 0 0 -1 0 0 2
+	 7650 1575 7650 2550
+2 1 0 2 0 11 50 -1 20 0.000 0 0 -1 0 0 2
+	 7650 2775 7650 3750
+2 1 0 2 0 11 50 -1 20 0.000 0 0 -1 0 0 2
+	 7650 3975 7650 4950
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4665 6600 5265 6600 5265 7200 4665 7200 4665 6600
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5865 6600 6465 6600 6465 7200 5865 7200 5865 6600
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 7665 6600 8265 6600 8265 7200 7665 7200 7665 6600
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5265 6600 5865 6600 5865 7200 5265 7200 5265 6600
+2 2 0 2 0 11 50 -1 -1 0.000 0 0 -1 0 0 5
+	 7065 6600 7665 6600 7665 7200 7065 7200 7065 6600
+2 2 0 2 0 11 50 -1 -1 0.000 0 0 7 0 0 5
+	 6465 6600 7065 6600 7065 7200 6465 7200 6465 6600
+2 1 0 2 0 11 50 -1 20 0.000 0 0 -1 0 0 2
+	 7665 6375 7665 7350
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4650 5400 5250 5400 5250 6000 4650 6000 4650 5400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5850 5400 6450 5400 6450 6000 5850 6000 5850 5400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 7650 5400 8250 5400 8250 6000 7650 6000 7650 5400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5250 5400 5850 5400 5850 6000 5250 6000 5250 5400
+2 1 0 2 0 11 50 -1 20 0.000 0 0 -1 0 0 2
+	 7650 5175 7650 6150
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 4650 1800 5250 1800 5250 2400 4650 2400 4650 1800
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 5250 1800 5850 1800 5850 2400 5250 2400 5250 1800
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 5250 3000 5850 3000 5850 3600 5250 3600 5250 3000
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 5850 3000 6450 3000 6450 3600 5850 3600 5850 3000
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 5850 4200 6450 4200 6450 4800 5850 4800 5850 4200
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 6450 5400 7050 5400 7050 6000 6450 6000 6450 5400
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 7050 5400 7650 5400 7650 6000 7050 6000 7050 5400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 9750 1800 10350 1800 10350 2400 9750 2400 9750 1800
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 10350 1800 10950 1800 10950 2400 10350 2400 10350 1800
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 8550 3000 9150 3000 9150 3600 8550 3600 8550 3000
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 10350 3000 10950 3000 10950 3600 10350 3600 10350 3000
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 10950 3000 11550 3000 11550 3600 10950 3600 10950 3000
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 11550 3000 12150 3000 12150 3600 11550 3600 11550 3000
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 8550 4200 9150 4200 9150 4800 8550 4800 8550 4200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 10950 4200 11550 4200 11550 4800 10950 4800 10950 4200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 11550 4200 12150 4200 12150 4800 11550 4800 11550 4200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 9150 4200 9750 4200 9750 4800 9150 4800 9150 4200
+2 2 0 2 0 11 50 -1 -1 0.000 0 0 7 0 0 5
+	 10950 1800 11550 1800 11550 2400 10950 2400 10950 1800
+2 2 0 2 0 11 50 -1 -1 0.000 0 0 7 0 0 5
+	 11550 1800 12150 1800 12150 2400 11550 2400 11550 1800
+2 1 0 2 0 11 50 -1 20 0.000 0 0 -1 0 0 2
+	 10950 3975 10950 4950
+2 1 0 2 0 11 50 -1 20 0.000 0 0 -1 0 0 2
+	 10950 2850 10950 3825
+2 1 0 2 0 11 50 -1 20 0.000 0 0 -1 0 0 2
+	 10950 1650 10950 2625
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 8550 1800 9150 1800 9150 2400 8550 2400 8550 1800
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 9150 1800 9750 1800 9750 2400 9150 2400 9150 1800
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 9150 3000 9750 3000 9750 3600 9150 3600 9150 3000
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 9750 3000 10350 3000 10350 3600 9750 3600 9750 3000
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 9750 4200 10350 4200 10350 4800 9750 4800 9750 4200
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 10350 4200 10950 4200 10950 4800 10350 4800 10350 4200
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 6450 4200 7050 4200 7050 4800 6450 4800 6450 4200
+4 0 0 50 -1 0 20 0.0000 4 270 3315 8775 6360 aucun \351change = suite tri\351e\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 825 2175 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 1425 2175 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2025 2175 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2625 2175 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3225 2175 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 3825 2175 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3225 3375 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 3825 3375 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 1425 3375 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 900 3375 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3225 4575 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 3825 4575 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 900 4575 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 3825 5775 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 900 5775 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 1500 5775 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2100 5775 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2685 3375 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2055 3375 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 1455 4590 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 2010 4590 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2700 4575 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 2610 5775 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3195 5775 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 900 6975 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 1500 6975 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2100 6975 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3240 6975 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 2595 6975 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 3885 6975 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 885 8205 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 1485 8205 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2085 8205 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 2580 8205 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 3270 8220 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3825 8220 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 4875 2175 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 5475 2175 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 6075 2175 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 6600 2175 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 7260 2175 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 7770 2160 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 4875 3375 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 4875 4575 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 5430 4590 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 6075 4560 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 5475 3375 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 6075 3375 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 6600 3375 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 7275 3375 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 7800 3375 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 6600 4575 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 7275 4575 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 7800 4575 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 4890 6975 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 5490 6975 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 6090 6975 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 7815 6975 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 7215 6975 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 6690 6975 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 4875 5775 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 5475 5775 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 6075 5775 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 7800 5775 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 7200 5775 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 6675 5775 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 8775 2175 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 9375 2175 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 9975 2175 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 11670 2160 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 8775 3375 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 8775 4575 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 9330 4590 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 9975 4560 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 9375 3375 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 9975 3375 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 11700 3375 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 11700 4575 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 10575 3375 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 10575 4575 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 10575 2175 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 11070 4575 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 11055 3360 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 11040 2160 10\001
+-6
diff --git a/lessons/tris/figures/tri_insert.eps b/lessons/tris/figures/tri_insert.eps
new file mode 100644
index 0000000000000000000000000000000000000000..e65f675e7d087fa68528851c41a7bd9029bb69d5
--- /dev/null
+++ b/lessons/tris/figures/tri_insert.eps
@@ -0,0 +1,405 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /home/albuquer/Courses/Algo/TI1/Themes/tri_insert.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Fri May  6 20:30:13 2005
+%%For: albuquer@eig3 (ALBUQUERQUE Paul - EIG prof)
+%%BoundingBox: 0 0 219 412
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 412 moveto 0 0 lineto 219 0 lineto 219 412 lineto closepath clip newpath
+-70.7 505.3 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+/reencdict 12 dict def /ReEncode { reencdict begin
+/newcodesandnames exch def /newfontname exch def /basefontname exch def
+/basefontdict basefontname findfont def /newfont basefontdict maxlength dict def
+basefontdict { exch dup /FID ne { dup /Encoding eq
+{ exch dup length array copy newfont 3 1 roll put }
+{ exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall
+newfont /FontName newfontname put newcodesandnames aload pop
+128 1 255 { newfont /Encoding get exch /.notdef put } for
+newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat
+newfontname newfont definefont pop end } def
+/isovec [
+8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde
+8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis
+8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron
+8#220 /dotlessi 8#230 /oe 8#231 /OE
+8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling
+8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis
+8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot
+8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus
+8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph
+8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine
+8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf
+8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute
+8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring
+8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute
+8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute
+8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve
+8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply
+8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex
+8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave
+8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring
+8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute
+8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute
+8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve
+8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide
+8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex
+8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def
+/Times-Roman /Times-Roman-iso isovec ReEncode
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06000 0.06000 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 90
+% Polyline
+15.000 slw
+n 4200 6600 m 4800 6600 l 4800 7200 l 4200 7200 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 3000 4200 m 3600 4200 l 3600 4800 l 3000 4800 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 2400 3000 m 3000 3000 l 3000 3600 l 2400 3600 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 1800 1800 m 2400 1800 l 2400 2400 l 1800 2400 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 3600 5400 m 4200 5400 l 4200 6000 l 3600 6000 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% here ends figure;
+% 
+% here starts figure with depth 50
+/Times-Roman-iso ff 300.00 scf sf
+1350 2175 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3150 4575 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1950 4575 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2475 4575 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1425 4575 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4350 4575 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3750 4575 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3225 3375 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2625 3375 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1425 3375 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1950 3375 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4350 3375 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4350 8175 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3675 8175 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3225 8175 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3750 3375 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3750 2175 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1950 2175 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2025 8175 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1425 8175 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3150 6975 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3750 6975 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4350 6975 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2625 6975 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2025 6975 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1425 6975 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3150 5775 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2625 5775 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2025 5775 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1425 5775 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4350 5775 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3750 5775 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4350 2175 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2625 8175 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3150 2175 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2550 2175 m
+gs 1 -1 sc (5) col0 sh gr
+% Polyline
+15.000 slw
+gs  clippath
+1485 1590 m 1485 1710 l 1772 1710 l 1532 1650 l 1772 1590 l cp
+eoclip
+n 2100 1650 m
+ 1500 1650 l gs col0 s gr gr
+
+% arrowhead
+n 1772 1590 m 1532 1650 l 1772 1710 l 1772 1590 l  cp gs 0.00 setgray ef gr  col0 s
+% Polyline
+n 4200 1800 m 4800 1800 l 4800 2400 l 4200 2400 l
+ cp gs col0 s gr 
+% Polyline
+n 3600 1800 m 4200 1800 l 4200 2400 l 3600 2400 l
+ cp gs col0 s gr 
+% Polyline
+n 3000 1800 m 3600 1800 l 3600 2400 l 3000 2400 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 1800 m 3000 1800 l 3000 2400 l 2400 2400 l
+ cp gs col0 s gr 
+% Polyline
+n 1200 1800 m 1800 1800 l 1800 2400 l 1200 2400 l
+ cp gs col0 s gr 
+% Polyline
+gs  clippath
+2010 3990 m 2010 4110 l 2297 4110 l 2057 4050 l 2297 3990 l cp
+eoclip
+n 3300 4050 m
+ 2025 4050 l gs col0 s gr gr
+
+% arrowhead
+n 2297 3990 m 2057 4050 l 2297 4110 l 2297 3990 l  cp gs 0.00 setgray ef gr  col0 s
+% Polyline
+n 1800 4200 m 2400 4200 l 2400 4800 l 1800 4800 l
+ cp gs col0 s gr 
+% Polyline
+n 4200 4200 m 4800 4200 l 4800 4800 l 4200 4800 l
+ cp gs col0 s gr 
+% Polyline
+n 3600 4200 m 4200 4200 l 4200 4800 l 3600 4800 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 4200 m 3000 4200 l 3000 4800 l 2400 4800 l
+ cp gs col0 s gr 
+% Polyline
+n 1200 4200 m 1800 4200 l 1800 4800 l 1200 4800 l
+ cp gs col0 s gr 
+% Polyline
+n 1800 3000 m 2400 3000 l 2400 3600 l 1800 3600 l
+ cp gs col0 s gr 
+% Polyline
+n 4200 3000 m 4800 3000 l 4800 3600 l 4200 3600 l
+ cp gs col0 s gr 
+% Polyline
+n 3600 3000 m 4200 3000 l 4200 3600 l 3600 3600 l
+ cp gs col0 s gr 
+% Polyline
+n 3000 3000 m 3600 3000 l 3600 3600 l 3000 3600 l
+ cp gs col0 s gr 
+% Polyline
+n 1200 3000 m 1800 3000 l 1800 3600 l 1200 3600 l
+ cp gs col0 s gr 
+% Polyline
+gs  clippath
+2085 2790 m 2085 2910 l 2372 2910 l 2132 2850 l 2372 2790 l cp
+eoclip
+n 2700 2850 m
+ 2100 2850 l gs col0 s gr gr
+
+% arrowhead
+n 2372 2790 m 2132 2850 l 2372 2910 l 2372 2790 l  cp gs 0.00 setgray ef gr  col0 s
+% Polyline
+gs  clippath
+3285 5190 m 3285 5310 l 3572 5310 l 3332 5250 l 3572 5190 l cp
+eoclip
+n 3900 5250 m
+ 3300 5250 l gs col0 s gr gr
+
+% arrowhead
+n 3572 5190 m 3332 5250 l 3572 5310 l 3572 5190 l  cp gs 0.00 setgray ef gr  col0 s
+/Times-Roman-iso ff 300.00 scf sf
+1800 7650 m
+gs 1 -1 sc (suite tri\351e) col0 sh gr
+% Polyline
+n 4200 7800 m 4800 7800 l 4800 8400 l 4200 8400 l
+ cp gs col0 s gr 
+% Polyline
+n 3600 7800 m 4200 7800 l 4200 8400 l 3600 8400 l
+ cp gs col0 s gr 
+% Polyline
+n 3000 7800 m 3600 7800 l 3600 8400 l 3000 8400 l
+ cp gs col0 s gr 
+% Polyline
+n 1800 7800 m 2400 7800 l 2400 8400 l 1800 8400 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 7800 m 3000 7800 l 3000 8400 l 2400 8400 l
+ cp gs col0 s gr 
+% Polyline
+n 1200 7800 m 1800 7800 l 1800 8400 l 1200 8400 l
+ cp gs col0 s gr 
+% Polyline
+n 3600 6600 m 4200 6600 l 4200 7200 l 3600 7200 l
+ cp gs col0 s gr 
+% Polyline
+n 3000 6600 m 3600 6600 l 3600 7200 l 3000 7200 l
+ cp gs col0 s gr 
+% Polyline
+n 1800 6600 m 2400 6600 l 2400 7200 l 1800 7200 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 6600 m 3000 6600 l 3000 7200 l 2400 7200 l
+ cp gs col0 s gr 
+% Polyline
+n 1200 6600 m 1800 6600 l 1800 7200 l 1200 7200 l
+ cp gs col0 s gr 
+% Polyline
+gs  clippath
+3210 6390 m 3210 6510 l 3497 6510 l 3257 6450 l 3497 6390 l cp
+eoclip
+n 4500 6450 m
+ 3225 6450 l gs col0 s gr gr
+
+% arrowhead
+n 3497 6390 m 3257 6450 l 3497 6510 l 3497 6390 l  cp gs 0.00 setgray ef gr  col0 s
+% Polyline
+n 3000 5400 m 3600 5400 l 3600 6000 l 3000 6000 l
+ cp gs col0 s gr 
+% Polyline
+n 1800 5400 m 2400 5400 l 2400 6000 l 1800 6000 l
+ cp gs col0 s gr 
+% Polyline
+n 4200 5400 m 4800 5400 l 4800 6000 l 4200 6000 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 5400 m 3000 5400 l 3000 6000 l 2400 6000 l
+ cp gs col0 s gr 
+% Polyline
+n 1200 5400 m 1800 5400 l 1800 6000 l 1200 6000 l
+ cp gs col0 s gr 
+% here ends figure;
+$F2psEnd
+rs
+showpage
diff --git a/lessons/tris/figures/tri_insert.fig b/lessons/tris/figures/tri_insert.fig
new file mode 100644
index 0000000000000000000000000000000000000000..cc2b95f459578476f2ff9912d6380b0fbfda8d8b
--- /dev/null
+++ b/lessons/tris/figures/tri_insert.fig
@@ -0,0 +1,135 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+6 1185 1590 4815 8415
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 2.00 120.00 240.00
+	 2100 1650 1500 1650
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 2.00 120.00 240.00
+	 2700 2850 2100 2850
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 3000 1800 3000 1800 3600 1200 3600 1200 3000
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3000 3000 3600 3000 3600 3600 3000 3600 3000 3000
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3600 3000 4200 3000 4200 3600 3600 3600 3600 3000
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4200 3000 4800 3000 4800 3600 4200 3600 4200 3000
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1800 3000 2400 3000 2400 3600 1800 3600 1800 3000
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 4200 1800 4200 1800 4800 1200 4800 1200 4200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2400 4200 3000 4200 3000 4800 2400 4800 2400 4200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3600 4200 4200 4200 4200 4800 3600 4800 3600 4200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4200 4200 4800 4200 4800 4800 4200 4800 4200 4200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1800 4200 2400 4200 2400 4800 1800 4800 1800 4200
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 2.00 120.00 240.00
+	 3300 4050 2025 4050
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 1800 1800 1800 1800 2400 1200 2400 1200 1800
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2400 1800 3000 1800 3000 2400 2400 2400 2400 1800
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3000 1800 3600 1800 3600 2400 3000 2400 3000 1800
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3600 1800 4200 1800 4200 2400 3600 2400 3600 1800
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4200 1800 4800 1800 4800 2400 4200 2400 4200 1800
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 2.00 120.00 240.00
+	 3900 5250 3300 5250
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 5400 1800 5400 1800 6000 1200 6000 1200 5400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2400 5400 3000 5400 3000 6000 2400 6000 2400 5400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4200 5400 4800 5400 4800 6000 4200 6000 4200 5400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1800 5400 2400 5400 2400 6000 1800 6000 1800 5400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3000 5400 3600 5400 3600 6000 3000 6000 3000 5400
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 2.00 120.00 240.00
+	 4500 6450 3225 6450
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 6600 1800 6600 1800 7200 1200 7200 1200 6600
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2400 6600 3000 6600 3000 7200 2400 7200 2400 6600
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1800 6600 2400 6600 2400 7200 1800 7200 1800 6600
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3000 6600 3600 6600 3600 7200 3000 7200 3000 6600
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3600 6600 4200 6600 4200 7200 3600 7200 3600 6600
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 7800 1800 7800 1800 8400 1200 8400 1200 7800
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2400 7800 3000 7800 3000 8400 2400 8400 2400 7800
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1800 7800 2400 7800 2400 8400 1800 8400 1800 7800
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3000 7800 3600 7800 3600 8400 3000 8400 3000 7800
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3600 7800 4200 7800 4200 8400 3600 8400 3600 7800
+2 2 0 2 0 11 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4200 7800 4800 7800 4800 8400 4200 8400 4200 7800
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 1800 1800 2400 1800 2400 2400 1800 2400 1800 1800
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 2400 3000 3000 3000 3000 3600 2400 3600 2400 3000
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 3000 4200 3600 4200 3600 4800 3000 4800 3000 4200
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 3600 5400 4200 5400 4200 6000 3600 6000 3600 5400
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 4200 6600 4800 6600 4800 7200 4200 7200 4200 6600
+4 0 0 50 -1 0 20 0.0000 4 210 1215 1800 7650 suite tri\351e\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3750 3375 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 4350 3375 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 1950 3375 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 1425 3375 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2625 3375 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 3225 3375 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3750 4575 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 4350 4575 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 1425 4575 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 2475 4575 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 1950 4575 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 3150 4575 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 1350 2175 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 1950 2175 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2550 2175 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 3150 2175 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3750 2175 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 4350 2175 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3750 5775 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 4350 5775 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 1425 5775 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2025 5775 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2625 5775 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3150 5775 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 1425 6975 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2025 6975 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2625 6975 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 4350 6975 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3750 6975 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3150 6975 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 1425 8175 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2025 8175 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2625 8175 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 4350 8175 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3675 8175 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 3225 8175 8\001
+-6
diff --git a/lessons/tris/figures/tri_select.eps b/lessons/tris/figures/tri_select.eps
new file mode 100644
index 0000000000000000000000000000000000000000..19ac8532bef6077180c73f18dcd18786b64b08de
--- /dev/null
+++ b/lessons/tris/figures/tri_select.eps
@@ -0,0 +1,435 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /home/albuquer/Courses/Algo/TI1/Themes/tri_select.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Fri May  6 20:29:13 2005
+%%For: albuquer@eig3 (ALBUQUERQUE Paul - EIG prof)
+%%BoundingBox: 0 0 219 416
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 416 moveto 0 0 lineto 219 0 lineto 219 416 lineto closepath clip newpath
+-70.7 505.3 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+/reencdict 12 dict def /ReEncode { reencdict begin
+/newcodesandnames exch def /newfontname exch def /basefontname exch def
+/basefontdict basefontname findfont def /newfont basefontdict maxlength dict def
+basefontdict { exch dup /FID ne { dup /Encoding eq
+{ exch dup length array copy newfont 3 1 roll put }
+{ exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall
+newfont /FontName newfontname put newcodesandnames aload pop
+128 1 255 { newfont /Encoding get exch /.notdef put } for
+newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat
+newfontname newfont definefont pop end } def
+/isovec [
+8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde
+8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis
+8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron
+8#220 /dotlessi 8#230 /oe 8#231 /OE
+8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling
+8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis
+8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot
+8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus
+8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph
+8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine
+8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf
+8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute
+8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring
+8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute
+8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute
+8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve
+8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply
+8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex
+8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave
+8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring
+8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute
+8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute
+8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve
+8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide
+8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex
+8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def
+/Times-Roman /Times-Roman-iso isovec ReEncode
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06000 0.06000 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 90
+% Polyline
+15.000 slw
+n 3000 5400 m 3600 5400 l 3600 6000 l 3000 6000 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 3600 5400 m 4200 5400 l 4200 6000 l 3600 6000 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 4200 5400 m 4800 5400 l 4800 6000 l 4200 6000 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 4200 4200 m 4800 4200 l 4800 4800 l 4200 4800 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 1200 1800 m 1800 1800 l 1800 2400 l 1200 2400 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 2400 1800 m 3000 1800 l 3000 2400 l 2400 2400 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 3000 1800 m 3600 1800 l 3600 2400 l 3000 2400 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 4200 1800 m 4800 1800 l 4800 2400 l 4200 2400 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 1800 3000 m 2400 3000 l 2400 3600 l 1800 3600 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 3600 4200 m 4200 4200 l 4200 4800 l 3600 4800 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 3000 3000 m 3600 3000 l 3600 3600 l 3000 3600 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 4200 3000 m 4800 3000 l 4800 3600 l 4200 3600 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 3600 3000 m 4200 3000 l 4200 3600 l 3600 3600 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 2400 4200 m 3000 4200 l 3000 4800 l 2400 4800 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 3000 4200 m 3600 4200 l 3600 4800 l 3000 4800 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 3600 6600 m 4200 6600 l 4200 7200 l 3600 7200 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 4200 6600 m 4800 6600 l 4800 7200 l 4200 7200 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 1800 1800 m 2400 1800 l 2400 2400 l 1800 2400 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 3600 1800 m 4200 1800 l 4200 2400 l 3600 2400 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% Polyline
+n 2400 3000 m 3000 3000 l 3000 3600 l 2400 3600 l
+ cp gs col11 1.00 shd ef gr gs col0 s gr 
+% here ends figure;
+% 
+% here starts figure with depth 50
+/Times-Roman-iso ff 300.00 scf sf
+1425 5775 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2025 5775 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2625 5775 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3150 5775 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1425 6975 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2625 6975 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2025 6975 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3750 6975 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1425 8175 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2025 8175 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2625 8175 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2430 4125 m
+gs 1 -1 sc (Min) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2640 4560 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3120 4560 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2610 2175 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3210 2175 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2295 7665 m
+gs 1 -1 sc (suite tri\351e) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4230 6510 m
+gs 1 -1 sc (Min) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4230 5310 m
+gs 1 -1 sc (Min) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3030 2895 m
+gs 1 -1 sc (Min) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1830 1710 m
+gs 1 -1 sc (Min) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4350 6975 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3225 6975 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2025 4575 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3750 2175 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4350 2175 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1950 2175 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1350 2175 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3225 8175 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3675 8175 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4350 8175 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4350 3375 m
+gs 1 -1 sc (8) col0 sh gr
+% Polyline
+15.000 slw
+n 3000 6600 m 3600 6600 l 3600 7200 l 3000 7200 l
+ cp gs col0 s gr 
+% Polyline
+n 1800 6600 m 2400 6600 l 2400 7200 l 1800 7200 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 6600 m 3000 6600 l 3000 7200 l 2400 7200 l
+ cp gs col0 s gr 
+% Polyline
+n 1200 6600 m 1800 6600 l 1800 7200 l 1200 7200 l
+ cp gs col0 s gr 
+% Polyline
+n 1800 5400 m 2400 5400 l 2400 6000 l 1800 6000 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 5400 m 3000 5400 l 3000 6000 l 2400 6000 l
+ cp gs col0 s gr 
+% Polyline
+n 1200 5400 m 1800 5400 l 1800 6000 l 1200 6000 l
+ cp gs col0 s gr 
+% Polyline
+n 1800 4200 m 2400 4200 l 2400 4800 l 1800 4800 l
+ cp gs col0 s gr 
+% Polyline
+n 1200 4200 m 1800 4200 l 1800 4800 l 1200 4800 l
+ cp gs col0 s gr 
+% Polyline
+n 1200 3000 m 1800 3000 l 1800 3600 l 1200 3600 l
+ cp gs col0 s gr 
+% Arc
+gs  clippath
+3908 7167 m 3868 7212 l 4058 7377 l 3937 7232 l 4098 7332 l cp
+4561 7212 m 4521 7167 l 4331 7332 l 4493 7232 l 4371 7377 l cp
+eoclip
+n 4215.0 6981.8 383.2 34.7 145.3 arc
+gs col0 s gr
+ gr
+
+% arrowhead
+n 4098 7332 m 3937 7232 l 4058 7377 l 4050 7330 l 4098 7332 l 
+ cp gs 0.00 setgray ef gr  col0 s
+% arrowhead
+n 4371 7377 m 4493 7232 l 4331 7332 l 4379 7330 l 4371 7377 l 
+ cp gs 0.00 setgray ef gr  col0 s
+% Arc
+gs  clippath
+3287 5966 m 3256 6017 l 3471 6149 l 3327 6026 l 3502 6098 l cp
+4483 6017 m 4452 5966 l 4237 6098 l 4413 6026 l 4268 6149 l cp
+eoclip
+n 3870.0 5220.6 974.5 53.1 126.9 arc
+gs col0 s gr
+ gr
+
+% arrowhead
+n 3502 6098 m 3327 6026 l 3471 6149 l 3454 6104 l 3502 6098 l 
+ cp gs 0.00 setgray ef gr  col0 s
+% arrowhead
+n 4268 6149 m 4413 6026 l 4237 6098 l 4285 6104 l 4268 6149 l 
+ cp gs 0.00 setgray ef gr  col0 s
+% Arc
+gs  clippath
+2085 3551 m 2057 3604 l 2281 3721 l 2129 3608 l 2309 3668 l cp
+3311 3636 m 3286 3581 l 3057 3686 l 3240 3636 l 3082 3741 l cp
+eoclip
+n 2710.2 2590.9 1174.4 60.7 122.2 arc
+gs col0 s gr
+ gr
+
+% arrowhead
+n 2309 3668 m 2129 3608 l 2281 3721 l 2261 3677 l 2309 3668 l 
+ cp gs 0.00 setgray ef gr  col0 s
+% arrowhead
+n 3082 3741 m 3240 3636 l 3057 3686 l 3103 3698 l 3082 3741 l 
+ cp gs 0.00 setgray ef gr  col0 s
+% Arc
+gs  clippath
+1496 2368 m 1452 2410 l 1627 2591 l 1519 2436 l 1670 2550 l cp
+2117 2410 m 2073 2368 l 1899 2550 l 2051 2436 l 1942 2591 l cp
+eoclip
+n 1785.0 2240.6 339.7 28.0 152.0 arc
+gs col0 s gr
+ gr
+
+% arrowhead
+n 1670 2550 m 1519 2436 l 1627 2591 l 1623 2544 l 1670 2550 l 
+ cp gs 0.00 setgray ef gr  col0 s
+% arrowhead
+n 1942 2591 m 2051 2436 l 1899 2550 l 1946 2544 l 1942 2591 l 
+ cp gs 0.00 setgray ef gr  col0 s
+% Polyline
+n 1200 7800 m 1800 7800 l 1800 8400 l 1200 8400 l
+ cp gs col0 s gr 
+/Times-Roman-iso ff 300.00 scf sf
+4350 5775 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3750 5775 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1425 4575 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+4350 4575 m
+gs 1 -1 sc (8) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3750 4575 m
+gs 1 -1 sc (10) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3225 3375 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+2625 3375 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1425 3375 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+1950 3375 m
+gs 1 -1 sc (41) col0 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3750 3375 m
+gs 1 -1 sc (10) col0 sh gr
+% Polyline
+n 4200 7800 m 4800 7800 l 4800 8400 l 4200 8400 l
+ cp gs col0 s gr 
+% Polyline
+n 3600 7800 m 4200 7800 l 4200 8400 l 3600 8400 l
+ cp gs col0 s gr 
+% Polyline
+n 3000 7800 m 3600 7800 l 3600 8400 l 3000 8400 l
+ cp gs col0 s gr 
+% Polyline
+n 1800 7800 m 2400 7800 l 2400 8400 l 1800 8400 l
+ cp gs col0 s gr 
+% Polyline
+n 2400 7800 m 3000 7800 l 3000 8400 l 2400 8400 l
+ cp gs col0 s gr 
+% here ends figure;
+$F2psEnd
+rs
+showpage
diff --git a/lessons/tris/figures/tri_select.fig b/lessons/tris/figures/tri_select.fig
new file mode 100644
index 0000000000000000000000000000000000000000..bcc2b206b9f676bac8d33f67c4f8485aa4f35f6d
--- /dev/null
+++ b/lessons/tris/figures/tri_select.fig
@@ -0,0 +1,137 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+6 1185 1515 4815 8415
+5 1 0 2 0 11 50 -1 -1 0.000 0 0 1 1 1785.000 2240.625 2085 2400 1800 2580 1485 2400
+	2 1 2.00 60.00 150.00
+	2 1 2.00 60.00 150.00
+5 1 0 2 0 11 50 -1 -1 0.000 0 0 1 1 2710.227 2590.909 3285 3615 2685 3765 2085 3585
+	2 1 2.00 60.00 150.00
+	2 1 2.00 60.00 150.00
+5 1 0 2 0 11 50 -1 -1 0.000 0 0 1 1 3870.000 5220.577 4455 6000 3855 6195 3285 6000
+	2 1 2.00 60.00 150.00
+	2 1 2.00 60.00 150.00
+5 1 0 2 0 11 50 -1 -1 0.000 0 0 1 1 4215.000 6981.818 4530 7200 4215 7365 3900 7200
+	2 1 2.00 60.00 150.00
+	2 1 2.00 60.00 150.00
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 3000 1800 3000 1800 3600 1200 3600 1200 3000
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 4200 1800 4200 1800 4800 1200 4800 1200 4200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1800 4200 2400 4200 2400 4800 1800 4800 1800 4200
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 5400 1800 5400 1800 6000 1200 6000 1200 5400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2400 5400 3000 5400 3000 6000 2400 6000 2400 5400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1800 5400 2400 5400 2400 6000 1800 6000 1800 5400
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 6600 1800 6600 1800 7200 1200 7200 1200 6600
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2400 6600 3000 6600 3000 7200 2400 7200 2400 6600
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1800 6600 2400 6600 2400 7200 1800 7200 1800 6600
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3000 6600 3600 6600 3600 7200 3000 7200 3000 6600
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 7800 1800 7800 1800 8400 1200 8400 1200 7800
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2400 7800 3000 7800 3000 8400 2400 8400 2400 7800
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1800 7800 2400 7800 2400 8400 1800 8400 1800 7800
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3000 7800 3600 7800 3600 8400 3000 8400 3000 7800
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3600 7800 4200 7800 4200 8400 3600 8400 3600 7800
+2 2 0 2 0 11 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4200 7800 4800 7800 4800 8400 4200 8400 4200 7800
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 1200 1800 1800 1800 1800 2400 1200 2400 1200 1800
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 2400 1800 3000 1800 3000 2400 2400 2400 2400 1800
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 3000 1800 3600 1800 3600 2400 3000 2400 3000 1800
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 4200 1800 4800 1800 4800 2400 4200 2400 4200 1800
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 1800 3000 2400 3000 2400 3600 1800 3600 1800 3000
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 2400 3000 3000 3000 3000 3600 2400 3600 2400 3000
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 3000 3000 3600 3000 3600 3600 3000 3600 3000 3000
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 4200 3000 4800 3000 4800 3600 4200 3600 4200 3000
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 3600 3000 4200 3000 4200 3600 3600 3600 3600 3000
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 2400 4200 3000 4200 3000 4800 2400 4800 2400 4200
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 3000 4200 3600 4200 3600 4800 3000 4800 3000 4200
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 3600 4200 4200 4200 4200 4800 3600 4800 3600 4200
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 4200 4200 4800 4200 4800 4800 4200 4800 4200 4200
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 4200 5400 4800 5400 4800 6000 4200 6000 4200 5400
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 3600 5400 4200 5400 4200 6000 3600 6000 3600 5400
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 3000 5400 3600 5400 3600 6000 3000 6000 3000 5400
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 3600 6600 4200 6600 4200 7200 3600 7200 3600 6600
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 4200 6600 4800 6600 4800 7200 4200 7200 4200 6600
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 1800 1800 2400 1800 2400 2400 1800 2400 1800 1800
+2 2 0 2 0 11 90 -1 20 0.000 0 0 7 0 0 5
+	 3600 1800 4200 1800 4200 2400 3600 2400 3600 1800
+4 0 0 50 -1 0 20 0.0000 4 210 300 3750 3375 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 4350 3375 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 1950 3375 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 1425 3375 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2625 3375 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 3225 3375 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3750 4575 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 4350 4575 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 1425 4575 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3750 5775 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 4350 5775 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 1425 5775 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2025 5775 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2625 5775 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3150 5775 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 1425 6975 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2025 6975 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2625 6975 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3750 6975 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 1425 8175 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2025 8175 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2625 8175 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 4350 8175 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3675 8175 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 3225 8175 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 1350 2175 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 1950 2175 3\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 4350 2175 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3750 2175 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2025 4575 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 3225 6975 8\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 4350 6975 10\001
+4 0 0 50 -1 0 20 0.0000 4 210 510 1830 1710 Min\001
+4 0 0 50 -1 0 20 0.0000 4 210 510 3030 2895 Min\001
+4 0 0 50 -1 0 20 0.0000 4 210 510 4230 5310 Min\001
+4 0 0 50 -1 0 20 0.0000 4 210 510 4230 6510 Min\001
+4 0 0 50 -1 0 20 0.0000 4 210 1215 2295 7665 suite tri\351e\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 3210 2175 5\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2610 2175 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 300 3120 4560 41\001
+4 0 0 50 -1 0 20 0.0000 4 210 150 2640 4560 7\001
+4 0 0 50 -1 0 20 0.0000 4 210 510 2430 4125 Min\001
+-6
diff --git a/lessons/tris/heapsort.tex b/lessons/tris/heapsort.tex
new file mode 100644
index 0000000000000000000000000000000000000000..1cc21665c6751bf0d7ae12e34641686381804802
--- /dev/null
+++ b/lessons/tris/heapsort.tex
@@ -0,0 +1,103 @@
+\documentclass[a4paper,11pt,dvips]{article}
+\usepackage{epsfig}
+%\usepackage[francais]{babel}
+\usepackage[T1]{fontenc}
+\usepackage[latin1]{inputenc}
+\usepackage{amsmath,amssymb}
+\usepackage{fancybox}
+\usepackage{boxedminipage}
+\oddsidemargin=0pt
+\evensidemargin=0pt
+\textwidth=450pt
+\textheight=670pt
+\parindent=0pt
+
+\begin{document}
+
+
+\section*{\center Le tri par tas ({\it Heapsort})}
+Le tableau � trier est interpr�t� abstraitement comme un arbre
+binaire. Le r�le de cette repr�sentation mentale est de permettre de
+r�organiser les donn�es en "tas" ce qui permettra de les trier
+efficacement. 
+     
+Les performances du tri par tas sont celles du tri par arbre dans le cas
+moyen, soit $O(N\log_2(N))$, avec le double avantage de n'avoir pas de
+pointeurs � manipuler (moins d'occupation m�moire) et d'�tre stable en
+complexit�. Il est en moyenne plus lent que le {\it Quicksort}, mais ne
+d�g�n�re pas en $O(N^2)$ dans le pire cas.
+ 
+\paragraph{Lien entre tableau et arbre.}
+Le tableau � trier peut �tre repr�sent� sous forme d'arbre comme
+structure abstraite (uniquement pour le raisonnement). On �tablit
+une correspondance entre arbre et tableau:
+\begin{itemize}
+\itemsep=-1pt
+\item La racine de l'arbre correspond au premier �l�ment du tableau. 
+\item Les deux fils d'un noeud d'indice $i$ ont pour indices: $2i+1$ et $2i+2$.
+\item Un �l�ment de rang $i$ a pour parent l'�l�ment d'indice: $(i-1)/2$.
+\end{itemize}
+Les �l�ments du tableau sont donc rang�s dans l'arbre niveau par
+niveau, de gauche � droite. Ainsi tous les niveaux de l'arbre sont
+complets sauf peut-�tre le dernier, qui ne peut �tre incomplet qu'�
+droite. Le parcours des indices du tableau correspond � un parcours
+en largeur de l'arbre (parcours de gauche � droite par niveau).
+La figure~\ref{corresp-arbre-tab} illustre la correspondance entre
+tableau et arbre.
+
+\begin{figure}[h!]
+\begin{center}
+\epsfig{file=figures/arbre_tab.eps, height=9cm, clip=}
+\caption{Correspondance entre tableau et arbre: les fl�ches donnent
+la structure d'arbre � partir des op�rations sur les indices ($2i+1$ et 
+$2i+2$ pour d�terminer les fils, et $(i-2)/2$~pour~le~parent).}
+\label{corresp-arbre-tab}
+\end{center}
+\end{figure}
+
+\paragraph{D�finition.}
+Un arbre est un tas si pour chacun de ses noeuds la valeur de
+chacun de ces descendants est inf�rieure ou �gale � sa propre
+valeur. Le mot "tas" est la traduction fran�aise du mot anglais 
+{\it heap}. Une meilleure terminologie, propos�e par J. Arsac, serait:
+structure d'�pi.
+
+\noindent
+Exemple de tas et de non-tas:
+
+\qquad 16 8 14 6 2 10 12 4 5
+est un tas
+
+\qquad 16 14 8 6 2 10 12 4 5
+ne forme pas un tas (10 > 8, 12 > 8)
+
+\noindent
+Ce tri op�re en deux phases: 
+\begin{itemize}
+\itemsep=-1pt
+\item entassement (ou tamisage) pour chaque noeud;
+\item algorithme de tri: extraction de la racine et entassement � 
+la racine.
+\end{itemize}
+
+\paragraph{Phase 1: entassement (ou tamisage).}
+
+Un entassement (ou tamisage) est l'op�ration de remplacer la valeur d'un noeud par
+$\max(noeud, fils\_gauche, fils\_droit)$ r�cursivement. Cette action de
+prendre l'�l�ment maximum parmi un parent et ses fils, s'appelle
+promotion. L'entassement, qui est donc une succession de promotions,
+d�bute depuis le noeud d'indice $N/2$ o� $N$ est la taille du tableau.
+
+\paragraph{Phase 2: tri des tas.}
+A chaque �tape $i=1,...,N-1$, on it�re
+le proc�d� suivant sur le sous-tableau allant de l'indice $0$ � $N-i$ inclus:
+\begin{itemize}
+\itemsep=-1pt
+\item on place l'�l�ment maximal (qui se trouve � la racine de l'arbre) � sa position d�finitive $N-i$;
+\item l'�l�ment qui se trouvait en position $N-i$ est plac� � la racine;
+\item le noeud le plus � droite du plus bas niveau prend la place de la racine, et est lui-m�me supprim�;
+\item on applique l'algorithme d'entassement � la racine.
+\end{itemize}
+
+
+\end{document}
diff --git a/lessons/tris/heapsort_expl.tex b/lessons/tris/heapsort_expl.tex
new file mode 100755
index 0000000000000000000000000000000000000000..076b1493d71831832b642a7686ef092131bdad7c
--- /dev/null
+++ b/lessons/tris/heapsort_expl.tex
@@ -0,0 +1,113 @@
+\documentclass[a4paper,11pt,dvips]{article}
+\usepackage{epsfig}
+%\usepackage[francais]{babel}
+\usepackage[T1]{fontenc}
+\usepackage[latin1]{inputenc}
+\usepackage{amsmath}
+\usepackage{fancybox}
+\usepackage{boxedminipage}
+\oddsidemargin=0pt
+\evensidemargin=0pt
+\textwidth=450pt
+\textheight=640pt
+\title{Exemple pour le tri par tas}
+\date{}
+
+\begin{document}
+
+%\maketitle
+\section*{Exemple pour le tri par tas}
+
+\subsection*{D�part}
+
+\noindent
+La figure 1 pr�sente la situation de d�part, le tableau � trier ainsi que sa repr�sentation sous forme d'arbre. L'arbre a �t� rempli de gauche � droite par niveaux en partant de la racine.
+
+\begin{figure}[!h]
+\begin{center}
+\epsfig{file=figures/depart.eps,height=6cm}
+\end{center}
+\caption{Situation de d�part}
+\end{figure}
+
+\subsection*{Phase 1}
+
+\noindent
+Il faut maintenant transformer l'arbre de d�part en tas. Ceci commence au noeud correspondant � l'indice $N/2$ du tableau. Comme le montre la figure 2, ce noeud contient la valeur 4 qui ne forme pas un tas car son fils contient une valeur plus grande 7. Il faut donc intervertir les valeurs.
+
+\begin{figure}[!h]
+\begin{center}
+\epsfig{file=figures/etape_1_1.eps,height=6cm}
+\end{center}
+\caption{Premier noeud trait�}
+\end{figure}
+
+\noindent
+Le noeud suivant � traiter contient la valeur 12, il forme un tas car 10 et 6 sont plus petit~que~lui.
+
+\noindent
+Le noeud suivant � traiter contient la valeur 5, qui ne forme pas un tas. Il faut r�organiser le sous-arbre afin qu'il forme un tas en pla�ant $\max(5,3,8)$, c'est � dire 8, � la place de 5. Ceci est r�alis� � la figure 3. 
+
+\begin{figure}[!h]
+\begin{center}
+\epsfig{file=figures/etape_1_2.eps,height=6cm}
+\end{center}
+\caption{Second noeud trait�}
+\end{figure}
+
+\noindent
+Le noeud suivant � traiter contient la valeur 16, il forme un tas car 10 et 6 sont plus petit~que~lui.
+
+\noindent
+Il faut maintenant traiter la racine. La valeur 1 est remplac�e par $\max(1,16,8)$, ce qui est repr�sent� � la figure 4.
+
+\begin{figure}[!h]
+\begin{center}
+\epsfig{file=figures/etape_1_2b.eps,height=6cm}
+\end{center}
+\caption{Traitement de la racine}
+\end{figure}
+
+\newpage
+\noindent
+Il faut maintenant r�it�rer ce traitement jusqu'� la feuille. Ceci donne le r�sultat final de la premi�re phase pr�sent� � la figure 5.
+
+\begin{figure}[!h]
+\begin{center}
+\epsfig{file=figures/etape_1_3.eps,height=6cm,}
+\end{center}
+\caption{Traitement de la racine}
+\end{figure}
+
+
+\subsection*{Phase 2}
+
+\noindent
+La seconde phase consiste � enlever l'�l�ment racine de l'arbre et � le placer en fin de tableau. L'�l�ment qui se trouvait � cette place est plac� � la racine et trait� comme dans la premi�re phase. L'arbre doit toujours �tre un tas. Le traitement de la valeur 16 est pr�sent� � la figure 6.
+
+\begin{figure}[!h]
+\begin{center}
+\epsfig{file=figures/etape_2_1.eps,height=6cm}
+\end{center}
+\caption{Plus grande valeur trait�e}
+\end{figure}
+
+\newpage
+\noindent
+Il faut maintenant traiter la valeur 12 de mani�re similaire sur un arbre et un tableau de dimensions $N-1$. Et ainsi de suite pour tous les �l�ments du tableau (respectivement de l'arbre). Deux �tapes sont pr�sent�es aux figures 7 et 8. 
+
+\begin{figure}[!h]
+\begin{center}
+\epsfig{file=figures/etape_2_2.eps,height=6cm}
+\end{center}
+\caption{Deuxi�me valeur trait�e}
+\end{figure}
+
+\begin{figure}[!h]
+\begin{center}
+\epsfig{file=figures/etape_2_3.eps,height=5cm}
+\end{center}
+\caption{Troisi�me valeur trait�e}
+\end{figure}
+
+\end{document}
diff --git a/lessons/tris/tri_rapide.tex b/lessons/tris/tri_rapide.tex
new file mode 100644
index 0000000000000000000000000000000000000000..f6b46a0afa9af7c03c9eb6a5d46bc1c1cbcbe010
--- /dev/null
+++ b/lessons/tris/tri_rapide.tex
@@ -0,0 +1,86 @@
+\documentclass[a4paper,12pt,dvips]{article}
+\usepackage{epsfig}
+%\usepackage[francais]{babel}
+\usepackage[T1]{fontenc}
+\usepackage[latin1]{inputenc}
+\usepackage{amsmath}
+\usepackage{fancybox}
+\usepackage{boxedminipage}
+\pagestyle{myheadings}
+\markright{Algorithmes de tri} 
+\oddsidemargin=0pt 
+\evensidemargin=0pt 
+\textwidth=450pt 
+\textheight=670pt 
+\newcommand{\entete}{ 
+\begin{tabular}{|p{14cm}|} 
+\hline 
+\medskip 
+\centerline{\fontsize{16pt}{10}\selectfont  
+\bf Algorithmes \& Structures de donn\'ees}\\ 
+\hline \\ 
+\centerline{\fontsize{14pt}{10}\selectfont \it Algorithmes de tri}\\ 
+\hline  
+\vspace{-2mm} 
+\fontsize{8pt}{10}\selectfont HEPIA, HES-SO//Gen\`eve - ITI\\ 
+\hline 
+\end{tabular} 
+} 
+ 
+\begin{document} 
+\thispagestyle{empty}
+%\entete 
+ 
+%http://www.u-cergy.fr/depinfo/mias1/semestre2/CM-S2-2005/CM-S2-2005.html 
+ 
+\section*{Le tri rapide ({\it Quicksort})} 
+Le tri rapide (appel� aussi tri de ``Hoare'', du nom de son inventeur, 
+ou encore tri par segmentation), est l'un des algorithmes de tri 
+interne les plus efficaces. Le principe de cette m�thode est 
+d'ordonner un tableau $Tab[0..N-1]$ en cherchant dans celui-ci un 
+�l�ment pivot autour duquel r�organiser les �l�ments. Il s'agit d'un 
+tri dichotomique naturellement r�cursif. Il d�montre fort 
+judicieusement qu'en informatique, la strat�gie qui consiste � diviser 
+pour r�gner ({\it divide-and-conquer}) peut s'av�rer tr�s performante. 
+Le choix du pivot est d�terminant pour l'efficacit� de l'algorithme. 
+Il est souhaitable que la valeur du pivot soit aussi proche que 
+possible de la valeur centrale du tableau, pour qu'il y ait autant 
+d'�l�ments pr�c�dant le pivot que le suivant. Cependant, d'autres strat�gies 
+sont possibles. 
+ 
+Consid�rons deux indices, $I$ et $J$ tels que $I$ est initialis� � $0$,  
+et $J$ � $N-1$. Le but est de partitionner le tableau de mani�re � 
+ce que les conditions suivantes soient r�alis�es: 
+\begin{enumerate} 
+\item l'�l�ment $Tab[N-1]$ occupe sa place d�finitive dans le tableau; 
+\item tous les �l�ments situ�s � gauche de $Tab[N-1]$ sont plus petits  
+que lui; 
+\item tous les �l�ments situ�s � droite de $Tab[N-1]$ sont plus grands  
+que lui. 
+\end{enumerate} 
+Pour ce faire, il suffit d'incr�menter $I$ � la recherche d'un terme 
+sup�rieur ou �gal � $Tab[N-1]$, et de d�cr�menter $J$ pour trouver un 
+terme inf�rieur ou �gal � $Tab[N-1]$, d'�changer ces termes, et de 
+poursuivre jusqu'� ce que les indices $I$ et $J$ se croisent. Si l'on 
+ins�re alors le terme $Tab[N-1]$ � la position $I$, on est assur� qu'il 
+occupe sa place d�finitive (l'�l�ment $Tab[N-1]$ joue ici le r�le du 
+pivot). On recommence ce processus sur chacun des sous-tableaux 
+$Tab[0..I-1]$ et $Tab[I+1..N-1]$ (voir Fig.~\ref{expl-quicksort}). 
+ 
+\begin{figure}[!h]  
+\begin{center} 
+\epsfig{file=figures/quicksort.eps, height=6cm, clip=} 
+\caption{Exemple de tri rapide sur un tableau de 7 �l�ments.} 
+\label{expl-quicksort} 
+\end{center} 
+\end{figure} 
+ 
+\paragraph{Complexit�.} 
+Le meilleur cas correspond au cas o� chaque partition subdivise le 
+tableau en deux parties de m�me taille, et le pire cas est par exemple 
+celui d'un tableau d�j� tri� en ordre d�croissant avec le choix du 
+dernier �l�ment comme pivot. Dans le meilleur cas et le cas moyen, la 
+complexit� du {\it Quicksort} est $O(N\log_2(N))$ (le quicksort demande en moyenne
+$1.38N\log_2(N)$ comparaisons), mais d�g�n�re en $O(N^2)$ dans~le~pire~cas. 
+ 
+\end{document}
diff --git a/lessons/tris/tris.tex b/lessons/tris/tris.tex
new file mode 100644
index 0000000000000000000000000000000000000000..04c2a5721e22c821c73b3052a82e9b57710e6d04
--- /dev/null
+++ b/lessons/tris/tris.tex
@@ -0,0 +1,618 @@
+\documentclass[a4paper,12pt,dvips]{article}
+\usepackage{epsfig}
+%\usepackage[francais]{babel}
+\usepackage[T1]{fontenc}
+\usepackage[latin1]{inputenc}
+\usepackage{amsmath}
+\usepackage{fancybox}
+\usepackage{boxedminipage}
+\pagestyle{myheadings}
+\markright{Algorithmes de tri} 
+\oddsidemargin=0pt 
+\evensidemargin=0pt 
+\textwidth=450pt 
+\textheight=670pt 
+\newcommand{\entete}{ 
+\begin{tabular}{|p{14cm}|} 
+\hline 
+\medskip 
+\centerline{\fontsize{18pt}{10}\selectfont  
+\bf Algorithmique \& Structures de donn\'ees}\\ 
+\hline \\ 
+\centerline{\fontsize{16pt}{10}\selectfont \it Algorithmes de tri}\\ 
+\hline  
+\vspace{-2mm} 
+\fontsize{8pt}{10}\selectfont HES-SO/EIG - TI1\\ 
+\fontsize{8pt}{10}\selectfont Paul ALBUQUERQUE, Michel LAZEYRAS et St�phane MALANDAIN\\ 
+\hline 
+\end{tabular} 
+} 
+ 
+\begin{document} 
+\thispagestyle{empty}
+\entete 
+ 
+%http://www.u-cergy.fr/depinfo/mias1/semestre2/CM-S2-2005/CM-S2-2005.html 
+ 
+\section{Introduction}  
+Les algorithmes de tri sont d'une tr�s grande importance en pratique, 
+comme par exemple en informatique de gestion o� l'on trie de mani�re 
+quasi-syst�matique les donn�es avant de les utiliser. L'�tude des 
+diff�rentes fa�ons de trier des informations est sans doute un des 
+domaines de l'algorithmique qui a retenu le plus d'attention. 
+ 
+Il est ais� de trier des centaines voire de milliers 
+d'�l�ments. Cependant, d�s qu'on en consid�re plusieurs millions, la 
+t�che est toute autre et l'on doit faire le moins de ``balayages'' 
+possibles � travers l'ensemble des �l�ments. C'est ce qui d�termine la 
+complexit� d'un algorithme, � savoir le nombre total de fois que sont 
+trait�s l'ensemble des �l�ments avant d'aboutir � une solution. 
+ 
+Formellement, on consid�re un ensemble d'�l�ments constitu�s d'une 
+information et d'une cl� avec une relation d'ordre sur les cl�s. Une 
+op�ration de tri sur cette ensemble consiste � ordonner ces �l�ments 
+selon la valeur de leur cl�. 
+
+Cinq algorithmes seront pr�sent�s dans ce document:
+\begin{itemize} 
+\item le tri par insertion;
+\item le tri par s�lection;
+\item le tri � bulles; 
+\item le tri rapide;
+\item le tri par tas.
+\end{itemize} 
+ 
+\section{Complexit� d'un algorithme} 
+Un probl�me informatique peut souvent �tre r�solu par diff�rents 
+algorithmes. La complexit� d'un algorithme est un crit�re d'�valuation 
+qui permet d'en anticiper les performances. Cette mesure permet aussi 
+la comparaison entre eux d'algorithmes r�solvant un m�me probl�me 
+comme par exemple le tri d'un tableau de nombres entiers. 
+La complexit� comporte deux aspects: 
+\begin{itemize} 
+\item la complexit� en temps, qui renseigne sur l'ordre de grandeur du 
+temps n�cessaire pour terminer l'algorithme en fonction de certains 
+param�tres; 
+\item la complexit� en espace, qui renseigne sur l'ordre de grandeur 
+de la place m�moire n�cessaire � l'ex�cution de l'algorithme. 
+\end{itemize} 
+Consid�rons l'exemple simple de la recherche d'un entier dans un tableau  
+tri�. On envisage assez naturellement deux m�thodes de recherche: 
+\begin{enumerate} 
+\item  
+On fait une recherche s�quentielle depuis le d�but du tableau tri�. On 
+interrompt la recherche d�s que l'on arrive sur un entier sup�rieur ou 
+�gal � celui cherch�. 
+\item  
+On fait une recherche dichotomique. On compare l'entier cherch� avec 
+celui situ� au milieu du tableau. En cas d'�galit�, on a fini; si 
+l'entier cherch� est inf�rieur (resp. sup�rieur), il suffit de 
+poursuivre la recherche dans la premi�re (resp. seconde) moiti� du 
+tableau. On peut it�rer ce proc�d� jusqu'� arriver � une partie de 
+tableau r�duite � un �l�ment. 
+\end{enumerate} 
+De mani�re intuitive, on voit que la seconde m�thode est beaucoup plus 
+performante que la premi�re: 
+\begin{itemize} 
+\item dans le premier cas, chaque test r�duit l'espace de recherche  
+d'un �l�ment; 
+\item dans le second, chaque test le r�duit de moiti�. 
+\end{itemize} 
+La premi�re m�thode demande statistiquement un nombre de tests 
+proportionnel au nombre d'�l�ments stock�s dans le tableau: il faudra 
+en moyenne en parcourir la moiti� pour obtenir une r�ponse. 
+En revanche, avec la seconde m�thode, comme on divise par deux la 
+taille du tableau � explorer apr�s chaque test, le nombre de tests � 
+effectuer est proportionnel au logarithme de la taille du tableau 
+initial. 
+Prenons un exemple quantitatif: si on a un tableau de 1'000'000 
+d'entiers, et qu'un test d'�galit� entre deux entiers prend environ 10 
+nanosecondes de temps de calcul, la premi�re m�thode fournit sa 
+r�ponse en $10^6\cdot 10^{-8}[s] = 10[ms]$, soit environ 10 millisecondes. 
+La seconde r�clame $(\log_2 10^6)\cdot 10^{-8}[s]$, soit environ 200 
+nanosecondes ... 
+ 
+L'efficacit� d'un algorithme d�pend essentiellement de l'utilisation 
+de deux ressources: le temps CPU ({\it Central Processing Unit}, 
+c.-�-d. unit� centrale de calcul) et la place m�moire. Or il se trouve 
+qu'en g�n�ral un gain dans l'utilisation de l'une se traduit par une 
+perte au niveau de l'autre: on parle alors de compromis espace/temps.  
+Ici, on se limitera � examiner la complexit� en temps. Le calcul 
+pr�cis de la complexit� d'un algorithme se fait en g�n�ral avec des 
+hypoth�ses simplificatrices: 
+\begin{enumerate} 
+\item On choisit explicitement une ou plusieurs op�rations consid�r�es 
+comme �l�mentaires (ou fondamentales), c.-�-d. requ�rant un quantum de 
+temps. Dans le cas des tris, on consid�rera les affectations et les 
+comparaisons. La mesure de la complexit� se fera dans cette unit�. 
+\item La complexit� d'un algorithme d�pend souvent des donn�es 
+trait�es. On consid�re trois situations: (i) le meilleur cas (les 
+donn�es pour lesquelles l'algorithme est le plus rapide), (ii) le pire 
+cas (les donn�es pour lesquelles l'algorithme est le plus lent), 
+et (iii) le cas moyen (la rapidit� moyenne de l'algorithme sur 
+l'ensemble des donn�es possibles). 
+\end{enumerate} 
+La complexit� dans le cas moyen et dans le meilleur des cas sont les 
+plus difficiles � estimer. C'est pourquoi on se contente souvent de 
+calculer la complexit� dans le pire cas, ce qui fournit une borne 
+sup�rieure sur le temps de calcul du programme. 
+ 
+Dans la suite, on comptabilisera le nombre d'op�rations �l�mentaires 
+(affectations et comparaisons) en fonction du nombre d'�l�ments $N$ � 
+trier. On utilisera la notation $O(f(N))$ dite de "Landau" dans 
+laquelle on estime le nombre d'op�rations �l�mentaires � 
+multiplication par une constante pr�s ($f$ est la fonction de 
+complexit�). Dans la table~\ref{ordre-grandeur}, on donne les valeurs 
+approximatives de quelques fonctions $f(N)$ qui interviennent 
+souvent dans les estimations de complexit�. 
+\begin{table}[!h]  
+\begin{center} 
+\caption{Valeurs approximatives de quelques fonctions usuelles de complexit�.} 
+\medskip 
+\begin{tabular}{|c|c|c|c|c|} 
+\hline 
+$\log_2(N)$ & $\sqrt{N}$      & $N$    & $N\log_2(N)$    & $N^2$     \\ 
+\hline\hline 
+$3$         & $3$             & $10$   & $30$            & $10^2$    \\ 
+\hline 
+$6$         & $10$            & $10^2$ & $6\cdot 10^2$   & $10^4$    \\ 
+\hline 
+$9$         & $31$            & $10^3$ & $9\cdot 10^3$   & $10^6$    \\ 
+\hline 
+$13$        & $10^2$          & $10^4$ & $1.3\cdot 10^5$ & $10^8$    \\ 
+\hline 
+$16$        & $3.1\cdot 10^2$ & $10^5$ & $1.6\cdot 10^6$ & $10^{10}$ \\ 
+\hline 
+$19$        & $10^3$          & $10^6$ & $1.9\cdot 10^7$ & $10^{12}$ \\ 
+\hline 
+\end{tabular} 
+\label{ordre-grandeur} 
+\end{center} 
+\end{table} 
+
+\section{Quelques algorithmes de tri}
+\subsection{Le tri par insertion} 
+Il s'agit d'une m�thode de tri tr�s naturelle. C'est d'ailleurs le tri 
+le plus efficace sur des tableaux de petites tailles. Son principe est 
+simple: on prend un �l�ment du tableau et on le met � sa place parmi 
+les �l�ments d�j� tri�s, puis on recommence avec le suivant, jusqu'au 
+dernier. Cela revient � dire que l'on ins�re � la $I$-�me it�ration le 
+$I$-�me �l�ment � la bonne place. Une illustration est donn�e dans la 
+figure~\ref{expl-insertion} et une impl�mentation en ADA de l'algorithme 
+dans la figure~\ref{code-insertion}. 
+\begin{figure}[!h]  
+\begin{center} 
+\epsfig{file=figures/tri_insert.eps, height=8cm, clip=} 
+\caption{Exemple de tri par insertion sur un tableau de 6 �l�ments.} 
+\label{expl-insertion} 
+\end{center} 
+\end{figure} 
+\begin{figure}[!h] 
+\begin{center} 
+\begin{verbatim} 
+  procedure Tri_Insertion(Tab : in out T_Tableau) is 
+     Temp   : T_Info; 
+     Indice : Natural; 
+  begin 
+     -- � partir de l'indice 2, on place l'�l�ment Tab(I) 
+     for I in Tab'First+1..Tab'Last loop 
+        Indice := I; 
+        Temp   := Tab(I); 
+        -- recherche de la place de l'�l�ment I, avec d�calage 
+        while Indice > 1 and then Tab(Indice-1) > Temp loop 
+           Tab(Indice) := Tab(Indice-1); 
+           Indice      := Indice - 1; 
+        end loop; 
+        Tab(Indice) := Temp; 
+     end loop; 
+  end Tri_Insertion; 
+\end{verbatim} 
+\caption{Impl�mentation du tri par insertion.} 
+\label{code-insertion} 
+\end{center} 
+\end{figure} 
+\paragraph{Exercice.}  
+Ecrire une procedure r�cursive pour le tri par insertion. 
+ 
+\paragraph{Complexit�.} Le pire cas est celui d'une tableau d�j� tri�,  
+mais en ordre d�croissant: l'insertion du $I$-�me �l�ment n�cessite 
+$I-1$ comparaisons, donc un total $1+...+(N-3)+(N-2)+(N-1) = N(N-1)/2$ 
+comparaisons, et similairement pour les affectations. Le meilleur cas 
+est celui d'un tableau d�j� tri� en ordre croissant: l'insertion du 
+$I$-�me �l�ment n�cessite $1$ comparaison, donc un total $(N-1)$ 
+comparaisons, et similairement pour les affectations. Le cas moyen 
+n�cessite approximativement $N^2/4$ comparaisons et autant 
+d'affectations. Si on ne retient que l'ordre de grandeur, la 
+complexit� du tri par insertion est $O(N^2)$ (complexit� quadratique) 
+en moyenne et dans le pire cas, et $O(N)$ (complexit� lin�aire) dans 
+le meilleur cas. Contrairement � d'autres m�thodes de tri, son 
+efficacit� est meilleure si le tableau initial poss�de un certain 
+ordre car l'algorithme tire parti de tout ordre partiel pr�sent dans 
+le tableau. 
+ 
+\subsection{Le tri par s�lection (ou tri par extraction)} 
+Le principe du tri par s�lection d'un tableau $Tab(1..N)$ est d'aller 
+chercher le plus petit �l�ment du tableau pour le mettre en premi�re 
+position, puis de chercher le plus petit �l�ment du sous-tableau 
+$Tab(2..N)$ pour le mettre en second, etc.., jusqu'� ce que l'on ait 
+plac� $N-1$ �l�ments dans le tableau. Au $I$-�me passage, on 
+s�lectionne l'�l�ment ayant la plus petite cl� parmi les �l�ments 
+$Tab(I),...,Tab(N)$ et on l'�change avec $Tab(I)$.  Une illustration 
+est donn�e dans la figure~\ref{expl-selection} et une impl�mentation en 
+ADA de l'algorithme dans la figure~\ref{code-selection}. 
+ 
+\begin{figure}[!h]  
+\begin{center} 
+\epsfig{file=figures/tri_select.eps, height=8cm, clip=} 
+\caption{Exemple de tri par s�lection sur un tableau de 6 �l�ments.} 
+\label{expl-selection} 
+\end{center} 
+\end{figure} 
+ 
+\begin{figure}[!h] 
+\begin{center} 
+\begin{verbatim} 
+  procedure Tri_Selection(Tab : in out T_Tableau) is 
+     Min : Natural; 
+  begin 
+     for I in Tab'First..Tab'Last-1 loop 
+        Min := I; 
+        -- recherche du minimum dans la tranche de tableau 
+        for J in I+1..Tab'Last loop 
+           if Tab(Min) > Tab(J) then 
+              Min := J; 
+           end if; 
+        end loop; 
+        -- permutation de l'�l�ment I avec l'�l�ment minimum 
+        Echanger(Tab(I),Tab(Min)); 
+     end loop; 
+  end Tri_Selection; 
+\end{verbatim} 
+\caption{Impl�mentation du tri par s�lection.} 
+\label{code-selection} 
+\end{center} 
+\end{figure} 
+ 
+\paragraph{Complexit�.} Pour chaque $I=1,\dots,N-1$, on a un �change  
+(c.-�-d. 3 affectations) et $N-I$ comparaisons ce qui fait un total de 
+$N(N-1)/2$ comparaisons et $N-1$ �changes. La seule d�pendance 
+relative aux donn�es est le nombre de fois que $Min$ est mis � jour: 
+$O(N^2)$ dans le pire cas, mais $O(N\log_2 (N))$ en moyenne. Ainsi, le 
+tri par s�lection est essentiellement insensible aux donn�es et sa 
+complexit� est toujours quadratique ($O(N^2)$). 
+ 
+\subsection{Le tri � bulles (ou tri par permutation)} 
+Le tri � bulles consiste en des comparaisons successives de toutes les 
+paires d'�l�ments adjacents d'un tableau avec permutation des �l�ments 
+de la paire si celle-ci est d�sordonn�e. Ainsi, en comparant deux � 
+deux les �l�ments successifs d'un tableau (parcours de gauche � droite 
+par exemple) et en les permutant lorsque c'est n�cessaire, on a � 
+chaque tour un nouvel �l�ment plac� dans sa position d�finitive. On 
+recommence cette op�ration tant que tous les �l�ments ne sont pas 
+tri�s, d'abord avec le sous-tableau $Tab(1..N-1)$, puis avec le 
+sous-tableau $Tab(1..N-2)$, ... , jusqu'� $Tab(1..2)$. Si au cours 
+d'un passage aucun �change n'est observ�, on arr�te le processus 
+puisque cela signifie que le tableau est enfin tri�. Cette m�thode est 
+appel�e le tri � bulles car les �l�ments mal class�s remontent dans la 
+liste comme des bulles � la surface d'un liquide. Une illustration 
+est donn�e dans la figure~\ref{expl-bulles} et une impl�mentation en ADA 
+de l'algorithme dans la figure~\ref{code-bulles}. 
+ 
+\begin{figure}[!h] 
+\begin{center} 
+\epsfig{file=figures/tri_bulles.eps, height=7cm, clip=} 
+\caption{Exemple de tri � bulles sur un tableau de 6 �l�ments.} 
+\label{expl-bulles} 
+\end{center} 
+\end{figure} 
+ 
+\begin{figure}[!h] 
+\begin{center} 
+\begin{verbatim} 
+  procedure Tri_Bulles(Tab : in out T_Tableau) is 
+     Fini : Boolean; 
+  begin 
+     for I in Tab'First..Tab'Last-1 loop 
+        Fini := True; 
+        for J in Tab'First..Tab'Last-I loop 
+           -- si deux �l�ments cons�cutifs ne sont pas dans l'ordre, 
+           -- il faut les permuter 
+           if Tab(J) > Tab(J+1) then 
+              Echanger(Tab(J),Tab(J+1)); 
+              Fini := False;  
+           end if; 
+        end loop; 
+        -- s'il n'y a pas eu d'�changes, alors le tableau est d�j� tri�
+        exit when Fini; 
+     end loop; 
+  end Tri_Bulle; 
+\end{verbatim} 
+\caption{Impl�mentation du tri � bulles.} 
+\label{code-bulles} 
+\end{center} 
+\end{figure} 
+ 
+\paragraph{Complexit�.} Le pire cas est celui d'un tableau d�j� tri�,  
+mais en ordre d�croissant: le $I$-�me passage n�cessite $N-I$ 
+comparaisons et $3(N-I)$ affectations (un �change n�cessite 3 
+affectations), donc un total de $N(N-1)/2$ comparaisons et $3N(N-1)/2$ 
+affectations. Le meilleur cas est celui d'un tableau d�j� tri� en 
+ordre croissant: seul un passage � travers le tableau est n�cessaire, 
+comprenant $N-1$ comparaisons. Cependant, le cas moyen ne se distingue 
+pas significativement du pire cas et n�cessite approximativement 
+$N^2/2$ comparaisons et $3N^2/2$ affectations. La complexit� du tri � 
+bulles est donc $O(N^2)$ (complexit� quadratique) en moyenne et dans 
+le pire cas, et $O(N)$ (complexit� lin�aire) dans le meilleur cas. 
+ 
+\subsection{Le tri rapide ({\it Quicksort})} 
+Le tri rapide (appel� aussi tri de ``Hoare'', du nom de son inventeur, 
+ou encore tri par segmentation), est l'un des algorithmes de tri 
+interne les plus efficaces. Le principe de cette m�thode est 
+d'ordonner un tableau $Tab(1..N)$ en cherchant dans celui-ci un 
+�l�ment pivot autour duquel r�organiser les �l�ments. Il s'agit d'un 
+tri dichotomique naturellement r�cursif. Il d�montre fort 
+judicieusement qu'en informatique, la strat�gie qui consiste � diviser 
+pour r�gner ({\it divide-and-conquer}) peut s'av�rer tr�s performante. 
+Le choix du pivot est d�terminant pour l'efficacit� de l'algorithme. 
+Il est souhaitable que la valeur du pivot soit aussi proche que 
+possible de la valeur centrale du tableau, pour qu'il y ait autant 
+d'�l�ments pr�c�dant le pivot que le suivant. Cependant, d'autres strat�gies 
+sont possibles. 
+ 
+Consid�rons deux indices, $I$ et $J$ tels que $I$ est initialis� � $1$,  
+et $J$ � $N-1$. Le but est de partitionner le tableau de mani�re � 
+ce que les conditions suivantes soient r�alis�es: 
+\begin{enumerate} 
+\item l'�l�ment $Tab(N)$ occupe sa place d�finitive dans le tableau; 
+\item tous les �l�ments situ�s � gauche de $Tab(N)$ sont plus petits  
+que lui; 
+\item tous les �l�ments situ�s � droite de $Tab(N)$ sont plus grands  
+que lui. 
+\end{enumerate} 
+Pour ce faire, il suffit d'incr�menter $I$ � la recherche d'un terme 
+sup�rieur ou �gal � $Tab(N)$, et de d�cr�menter $J$ pour trouver un 
+terme inf�rieur ou �gal � $Tab(N)$, d'�changer ces termes, et de 
+poursuivre jusqu'� ce que les indices $I$ et $J$ se croisent. Si l'on 
+ins�re alors le terme $Tab(N)$ � la position $I$, on est assur� qu'il 
+occupe sa place d�finitive (l'�l�ment $Tab(N)$ joue ici le r�le du 
+pivot). On recommence ce processus sur chacun des sous-tableaux 
+$Tab(1..I-1)$ et $Tab(I+1..N)$. Une illustration est donn�e dans la 
+figure~\ref{expl-quicksort} et une impl�mentation en ADA de l'algorithme 
+dans la figure~\ref{code-quicksort}. 
+ 
+\begin{figure}  
+\begin{center} 
+\epsfig{file=figures/quicksort.eps, height=7cm, clip=} 
+\caption{Exemple de tri rapide sur un tableau de 7 �l�ments.} 
+\label{expl-quicksort} 
+\end{center} 
+\end{figure} 
+
+\begin{figure}[!h] 
+\begin{center}   
+\begin{verbatim} 
+  -- tri rapide avec le dernier �l�ment du tableau choisi comme pivot;  
+  -- la procedure est r�cursive 
+
+  procedure Tri_Rapide(Tab : in out T_Tableau) is 
+     -- partition du tableau: le pivot est plac� � sa position, les �l�ments 
+     -- inf�rieurs au pivot avant celui-ci, ceux sup�rieurs apr�s     
+     procedure Partition(Tab : in out T_Tableau;  
+                         P   : in out Integer) is 
+        I : Integer := Tab'First; 
+        J : Integer := Tab'Last-1; 
+     begin 
+        Echanger(Tab(Tab'Last),Tab(P)); 
+        loop 
+           loop -- recherche d'un �l�ment plus grand que le pivot 
+              I := I+1; 
+              exit when Tab(I) >= Tab(P); 
+           end loop; 
+           loop -- recherche d'un �l�ment plus petit que le pivot 
+              J := J-1; 
+              exit when Tab(J) <= Tab(P) or I>=J; 
+           end loop; 
+           exit when I >= J; 
+           Echanger(Tab(I),Tab(J)); 
+        end loop; 
+        -- le pivot est mis � sa place 
+        Echanger(Tab(I),Tab(P)); 
+        P := I; 
+     end Partition; 
+     Pivot : Integer := Tab'Last;  -- Choix du pivot 
+  begin 
+     -- le tableau au moins deux �l�ments 
+     if Tab'Last > Tab'First then 
+        -- le pivot se retouve � la bonne position dans le tableau  
+        -- apr�s la partition de celui-ci 
+        Partition(Tab,Pivot); 
+        -- appel r�cursif avec la tranche de tableau gauche 
+        Tri_Rapide(Tab(Tab'First..Pivot-1)); 
+        -- appel r�cursif avec la tranche de tableau droite 
+        Tri_Rapide(Tab(Pivot+1..Tab'Last)); 
+     end if; 
+  end Tri_Rapide; 
+\end{verbatim}  
+\caption{Impl�mentation du tri rapide.} 
+\label{code-quicksort} 
+\end{center} 
+\end{figure} 
+ 
+\paragraph{Complexit�.} 
+Le meilleur cas correspond au cas o� chaque partition subdivise le 
+tableau en deux parties de m�me taille, et le pire cas est par exemple 
+celui d'un tableau d�j� tri� en ordre d�croissant avec le choix du 
+dernier �l�ment comme pivot. Dans le meilleur cas et le cas moyen, la 
+complexit� du {\it Quicksort} est $O(N\log_2(N))$ (le quicksort n�cessite 
+$1.38N\log_2(N)$ comparaisons en moyenne), mais d�g�n�re en $O(N^2)$ dans 
+le pire cas. 
+ 
+\subsection{Le tri par tas ({\it Heapsort})} 
+Le tableau � trier est interpr�t� abstraitement comme un arbre 
+binaire. Le r�le de cette repr�sentation mentale est de permettre de 
+r�organiser les donn�es en ``tas'' ce qui permettra de les trier 
+efficacement.  
+      
+Les performances du tri par tas sont celles du tri par arbre dans le cas 
+moyen - $O(N\log_2(N))$ - avec le double avantage de n'avoir pas de 
+pointeurs � manipuler (moins d'occupation m�moire) et d'�tre stable en 
+complexit�. Il est en moyenne plus lent que le {\it Quicksort}, mais ne 
+d�g�n�re pas en $O(N^2)$ dans le pire cas. 
+  
+\paragraph{Lien entre tableau et arbre.} 
+Le tableau � trier peut �tre repr�sent� sous forme d'arbre comme 
+structure abstraite (uniquement pour le raisonnement). On �tablit 
+une correspondance entre arbre et tableau: 
+\begin{itemize} 
+\item  
+La racine de l'arbre correspond au premier �l�ment du tableau   
+\item  
+Les deux fils d'un noeud d'indice $I$ ont pour indices: $2I$ et $2I+1$. 
+\item  
+Un �l�ment de rang $I$ a pour parent l'�l�ment d'indice: $I/2$. 
+\end{itemize} 
+Les �l�ments du tableau sont donc rang�s dans l'arbre niveau par 
+niveau, de gauche � droite. Ainsi tous les niveaux de l'arbre sont 
+complets sauf peut-�tre le dernier, qui ne peut �tre incomplet qu'� 
+droite. Le parcours des indices du tableau correspond � un parcours 
+en largeur de l'arbre (parcours de gauche � droite par niveau). 
+La figure~\ref{corresp-arbre-tab} illustre la correspondance entre 
+tableau et arbre. 
+ 
+\begin{figure}[!h] 
+\begin{center} 
+\epsfig{file=figures/arbre_tab.eps, height=9cm, clip=} 
+\caption{Correspondance entre tableau et arbre: les fl�ches expriment 
+la structure d'arbre � partir des op�rations sur les indices ($2I$ et  
+$2I+1$ pour d�terminer les fils, et $I/2$ pour le parent).} 
+\label{corresp-arbre-tab} 
+\end{center} 
+\end{figure} 
+ 
+\paragraph{D�finition.} 
+Un arbre est un tas si pour chacun de ses noeuds la valeur de 
+chacun de ces descendants est inf�rieure ou �gale � sa propre 
+valeur. Le mot ``tas'' est la traduction fran�aise du mot anglais  
+{\it heap}. Une meilleure terminologie, propos�e par J.Arsac, serait: 
+structure d'�pi. Deux exemples sont donn�s � la figure~\ref{exemple-tas}.
+ 
+\begin{figure}[!h] 
+\begin{center} 
+\epsfig{file=figures/tas.eps, height=4cm, clip=} 
+\caption{Illustration de la notion de tas.} 
+\label{exemple-tas} 
+\end{center} 
+\end{figure}
+
+Ce tri op�re en deux phases:
+\begin{itemize} 
+\item la premi�re phase, l'entassement, transforme l'arbre originel en un arbre formant un tas;
+\item la seconde phase est l'algorithme de tri proprement dit.
+\end{itemize} 
+ 
+\paragraph{Phase 1: entassement.} 
+ 
+Un entassement est l'op�ration de remplacer la valeur d'un noeud par 
+$\max(noeud, fils\_gauche, fils\_droit)$ r�cursivement. Cette action de 
+prendre l'�l�ment maximum parmi un parent et ses fils, s'appelle 
+promotion. L'entassement, qui est donc une succession de promotions, 
+d�bute depuis le noeud d'indice $N/2$ o� $N$ est la taille du tableau.  
+ 
+\paragraph{Phase 2: tri des tas.} 
+A chaque �tape $I=1,...,N-1$, on it�re 
+le proc�d� suivant sur le sous-tableau $Tab(1..N-I+1)$: 
+\begin{itemize} 
+\item on place l'�l�ment maximal (qui se trouve � la 
+racine de l'arbre) � sa position d�finitive $N-I+1$; 
+\item l'�l�ment qui se trouvait en position $N-I+1$ est plac� � la racine; 
+\item le noeud le plus � droite du plus bas niveau prend la place de  
+la racine, et est lui-m�me supprim�; 
+\item on applique l'algorithme d'entassement � la racine. 
+\end{itemize} 
+ 
+\paragraph{Exemple de tri par tas}
+
+La figure~\ref{fig_1} pr�sente la situation de d�part, le tableau � trier ainsi que sa repr�sentation sous forme d'arbre. L'arbre � �t� remplis de gauche � droite par niveaux en partant de la racine.
+
+\begin{figure}[!h]
+\begin{center}
+\epsfig{file=figures/depart.eps,height=7cm,clip=}
+\end{center}
+\caption{Situation de d�part}
+\label{fig_1} 
+\end{figure}
+
+Il faut maintenant transformer l'arbre de d�part en tas. Ceci commence au noeud correspondant � l'indice $N/2$ du tableau. Comme le montre la figure~\ref{fig_2}, ce noeud contient la valeur 4 qui ne forme pas un tas car son fils contient une valeur plus grande 7. Il faut donc intervertir les valeurs.
+
+\begin{figure}[!h]
+\begin{center}
+\epsfig{file=figures/etape_1_1.eps,height=6cm,clip=}
+\end{center}
+\caption{Premier noeud trait�}
+\label{fig_2} 
+\end{figure}
+
+Le noeud suivant � traiter contient la valeur 12, il forme un tas car 10 et 6 sont plus petit que lui.
+
+Le noeud suivant � traiter contient la valeur 5, qui ne forme pas une tas. Il faut r�organiser le sous-arbre afin qu'il forme un tas en pla�ant $\max(5,3,8)$, c'est � dire 8, � la place de 5. Ceci est r�alis� � la figure~\ref{fig_3}. 
+
+\begin{figure}[!h]
+\begin{center}
+\epsfig{file=figures/etape_1_2.eps,height=6cm,clip=}
+\end{center}
+\caption{Second noeud trait�}
+\label{fig_3} 
+\end{figure}
+
+Le noeud suivant � traiter contient la valeur 16, il forme un tas car 12 et 7 sont plus petit que lui.
+
+Il faut maintenant traiter la racine. La valeur 1 est remplac�e par $\max(1,16,8)$, ce qui est repr�sent� � la figure~\ref{fig_4}.
+
+\begin{figure}[!h]
+\begin{center}
+\epsfig{file=figures/etape_1_2b.eps,height=6cm,clip=}
+\end{center}
+\caption{Traitement de la racine}
+\label{fig_4} 
+\end{figure}
+
+Il faut maintenant r�it�rer ce traitement jusqu'� la feuille. Ceci donne le r�sultat final de la premi�re phase pr�sent� � la figure~\ref{fig_5}.
+
+\begin{figure}[!h]
+\begin{center}
+\epsfig{file=figures/etape_1_3.eps,height=6cm,clip=}
+\end{center}
+\caption{Traitement de la racine}
+\label{fig_5} 
+\end{figure}
+
+La seconde phase consiste � enlever l'�l�ment racine de l'arbre et � le placer en fin de tableau. L'�l�ment qui se trouvait � cette place est plac� � la racine et trait� comme dans la premi�re phase. L'arbre doit toujours �tre un tas. Le traitement de la valeur 16 est pr�sent� � la figure~\ref{fig_6}.
+
+\begin{figure}[!h]
+\begin{center}
+\epsfig{file=figures/etape_2_1.eps,height=6cm,clip=}
+\end{center}
+\caption{Plus grande valeur trait�e}
+\label{fig_6} 
+\end{figure}
+
+Il faut maintenant traiter la valeur 12 de mani�re similaire sur un arbre et un tableau de dimensions $N-1$. Et ainsi de suite pour tous les �l�ments du tableau (respectivement de l'arbre. Deux �tapes sont pr�sent�es aux figures~\ref{fig_7} et~\ref{fig_8}. 
+
+\begin{figure}[!h]
+\begin{center}
+\epsfig{file=figures/etape_2_2.eps,height=6cm,clip=}
+\end{center}
+\caption{Deuxi�me valeur trait�e}
+\label{fig_7} 
+\end{figure}
+
+\begin{figure}[!h]
+\begin{center}
+\epsfig{file=figures/etape_2_3.eps,height=4cm,clip=}
+\end{center}
+\caption{Troisi�me valeur trait�e}
+\label{fig_8} 
+\end{figure}
+  
+ 
+\end{document}