7 (*************************************************************************)
\r
8 (* PROGRAMME DE COMPARAISON *)
\r
9 (* DE DEUX METHODES DE TRIS SUR DES ELEMENTS DIFFERENTS *)
\r
10 (*************************************************************************)
\r
11 (**************************************************************************)
\r
12 (* PROCEDURES DE GRAPHISMES *)
\r
13 (**************************************************************************)
\r
14 UNIT RECTANGLE_PLEIN : procedure(x_h,y_h,x_b,y_b,
\r
15 coul,contour:integer);
\r
26 call color (contour);
\r
32 END RECTANGLE_PLEIN;
\r
34 UNIT RECTANGLE_HISTO : procedure(x_h,y_h,x_b,y_b,
\r
46 END RECTANGLE_HISTO;
\r
48 UNIT RECTANGLE: procedure(x_h,y_h,x_b,y_b:integer);
\r
57 (************************************************************************)
\r
58 (* IMPLEMENTATION DE LA STRUCTURE DE DONNEES *)
\r
59 (* m
\82thode utilis
\82e : h
\82ritage *)
\r
60 (************************************************************************)
\r
62 (********************************************************)
\r
63 (* CLASSE SUPERIEURE *)
\r
64 (********************************************************)
\r
65 unit STR_ELEMENTS : class;
\r
66 unit virtual randomize : procedure;
\r
69 unit virtual trace : procedure (e,y : integer);
\r
72 unit virtual echange : procedure (e1,e2,y : integer);
\r
75 unit virtual compare : function (e1,e2 : integer) : integer;
\r
78 unit virtual copie : procedure (T : STR_ELEMENTS);
\r
81 unit virtual killtab : procedure;
\r
85 (********************************************************)
\r
86 (* CLASSE INFERIEURE *)
\r
87 (********************************************************)
\r
89 (********************************************************)
\r
90 (* CLASSE HISTOGRAMME *)
\r
91 (********************************************************)
\r
92 unit HISTOGRAMMES : STR_ELEMENTS class (nb_elements : integer);
\r
93 unit ENR_ELEMENTS : class;
\r
99 TAB : arrayof ENR_ELEMENTS,
\r
102 unit virtual randomize : procedure;
\r
105 for i := 0 to nb_elements-1 do
\r
106 TAB(i).valeur := (random*100)+1;
\r
107 TAB(i).couleur := tab(i).valeur div 10+1;
\r
108 if(TAB(i).couleur>=6)then
\r
109 TAB(i).couleur:= TAB(i).couleur +3;
\r
114 unit virtual trace : procedure (e,y : integer);
\r
118 larg := 600 div nb_elements;
\r
119 call RECTANGLE_HISTO (15+e*larg,y-TAB(e).valeur,15+(e+1)*larg-2,y,
\r
123 unit virtual echange : procedure (e1,e2,y : integer);
\r
125 tmp1,tmp2,coul1,h2,larg : integer;
\r
127 larg := 600 div nb_elements;
\r
128 call RECTANGLE_HISTO (15+e1*larg,y-100,15+(e1+1)*larg-2,y,7);
\r
129 call RECTANGLE_HISTO (15+e2*larg,y-100,15+(e2+1)*larg-2,y,7);
\r
130 h2 := TAB(e2).valeur;
\r
131 tmp1 := TAB(e1).valeur;
\r
132 tmp2 := TAB(e1).couleur;
\r
133 TAB(e1).valeur := TAB(e2).valeur;
\r
134 TAB(e1).couleur := TAB(e2).couleur;
\r
135 TAB(e2).valeur := tmp1;
\r
136 TAB(e2).couleur := tmp2;
\r
137 coul1 := TAB(e1).couleur;
\r
138 call RECTANGLE_HISTO (15+e1*larg,y-h2,15+(e1+1)*larg-2,y,
\r
140 call RECTANGLE_HISTO (15+e2*larg,y-tmp1,15+(e2+1)*larg-2,y,
\r
144 unit virtual compare : function (e1,e2 : integer) : integer;
\r
146 if TAB(e1).valeur < TAB(e2).valeur then result := -1;
\r
147 else if TAB(e1).valeur = TAB(e2).valeur then result := 0;
\r
153 unit virtual copie : procedure ( T : HISTOGRAMMES);
\r
157 for i := 0 to nb_elements-1 do
\r
158 TAB(i).valeur := T.tab(i).valeur;
\r
159 TAB(i).couleur := T.tab(i).couleur;
\r
164 unit virtual killtab : procedure;
\r
168 for i:=0 to nb_elements-1 do
\r
173 array TAB dim (0:nb_elements-1);
\r
174 for i:=0 to nb_elements-1 do
\r
175 TAB(i) := new ENR_ELEMENTS;
\r
179 (********************************************************)
\r
180 (* CLASSE SURFACES *)
\r
181 (********************************************************)
\r
182 unit SURFACES : STR_ELEMENTS class (nb_elements : integer);
\r
183 unit ENR_ELEMENTS : class;
\r
192 TAB : arrayof ENR_ELEMENTS,
\r
196 unit virtual randomize : procedure;
\r
197 var i,largeur_max,surf_interne : integer;
\r
199 for i := 0 to nb_elements-1
\r
202 TAB(i).longueur := (random*largeur_max)+1;
\r
203 TAB(i).largeur := (random * largeur_max)+1;
\r
204 surf_interne := TAB(i).longueur * TAB(i).largeur;
\r
205 TAB(i).couleur := (surf_interne * 12)
\r
206 div (largeur_max*largeur_max)+1;
\r
207 if(TAB(i).couleur>=6)then
\r
208 TAB(i).couleur:= TAB(i).couleur +3;
\r
213 unit virtual trace : procedure (e,y : integer);
\r
215 larg,xx,yy : integer;
\r
218 xx := (e mod 20)*30+30;
\r
219 yy := y - 90 + (e div 20 )*30;
\r
220 call RECTANGLE_HISTO (xx-(tab(e).largeur div 2),
\r
221 yy-(tab(e).longueur div 2),
\r
222 xx+((TAB(e).largeur+1) div 2),
\r
223 yy+((TAB(e).longueur+1) div 2),TAB(e).couleur);
\r
227 unit virtual echange : procedure (e1,e2,y : integer);
\r
229 xx1,yy1,xx2,yy2,tmp1,tmp2,tmp3,coul1,h2long,
\r
230 h2larg,larg : integer;
\r
234 xx1 := (e1 mod 20)*30+30;
\r
235 yy1 := y - 90 + (e1 div 20 )*30;
\r
236 xx2 := (e2 mod 20)*30+30;
\r
237 yy2 := y - 90 + (e2 div 20 )*30;
\r
239 call RECTANGLE_HISTO (xx1-(tab(e1).largeur div 2),
\r
240 yy1-(tab(e1).longueur div 2),
\r
241 xx1+((TAB(e1).largeur+1) div 2),
\r
242 yy1+((TAB(e1).longueur+1) div 2),7);
\r
243 call RECTANGLE_HISTO (xx2-(tab(e2).largeur div 2),
\r
244 yy2-(tab(e2).longueur div 2),
\r
245 xx2+((TAB(e2).largeur+1) div 2),
\r
246 yy2+((TAB(e2).longueur+1) div 2),7);
\r
247 h2larg := TAB(e2).largeur;
\r
248 h2long := TAB(e2).longueur;
\r
249 tmp1 := TAB(e1).largeur;
\r
250 tmp2 := TAB(e1).longueur;
\r
251 tmp3 := TAB(e1).couleur;
\r
252 TAB(e1).largeur := TAB(e2).largeur;
\r
253 TAB(e1).longueur := TAB(e2).longueur;
\r
254 TAB(e1).couleur := TAB(e2).couleur;
\r
255 TAB(e2).largeur := tmp1;
\r
256 TAB(e2).longueur := tmp2;
\r
257 TAB(e2).couleur := tmp3;
\r
258 coul1 := TAB(e1).couleur;
\r
259 call RECTANGLE_HISTO (xx1-(h2larg div 2),
\r
260 yy1-(h2long div 2),
\r
261 xx1+((h2larg+1) div 2),
\r
262 yy1+((h2long+1) div 2),coul1);
\r
263 call RECTANGLE_HISTO (xx2-(tmp1 div 2),
\r
265 xx2+((tmp1+1) div 2),
\r
266 yy2+((tmp2+1) div 2),tmp3);
\r
269 unit virtual compare : function (e1,e2 : integer) : integer;
\r
271 surf1,surf2 : integer;
\r
274 surf1 := TAB(e1).largeur * TAB(e1).longueur;
\r
275 surf2 := TAB(e2).largeur * TAB(e2).longueur;
\r
276 if surf1 < surf2 then result := -1;
\r
277 else if surf1 = surf2 then result := 0;
\r
283 unit virtual copie : procedure ( T : SURFACES);
\r
287 for i := 0 to nb_elements-1 do
\r
288 TAB(i).largeur := T.tab(i).largeur;
\r
289 TAB(i).longueur := T.tab(i).longueur;
\r
290 TAB(i).couleur := T.tab(i).couleur;
\r
294 unit virtual killtab : procedure;
\r
298 for i:=0 to nb_elements-1 do
\r
303 array TAB dim (0:nb_elements-1);
\r
304 for i:=0 to nb_elements-1 do
\r
305 TAB(i) := new ENR_ELEMENTS;
\r
309 (********************************************************)
\r
310 (* CLASSE POLYNOME *)
\r
311 (********************************************************)
\r
312 unit POLY : STR_ELEMENTS class (nb_elements : integer);
\r
313 unit ENR_ELEMENTS : class;
\r
315 coeff : arrayof integer,
\r
319 TAB : arrayof ENR_ELEMENTS,
\r
323 unit CAL_POLYNOME : function (indice : integer): integer;
\r
327 somme := TAB(indice).coeff(TAB(indice).degre);
\r
328 i := TAB(indice).degre - 1;
\r
331 somme := somme * x +TAB(indice).coeff(i);
\r
337 unit virtual randomize : procedure;
\r
339 i,j,deg,valeur,test : integer;
\r
341 for i := 0 to nb_elements-1
\r
343 deg := (random * 5) + 1;
\r
344 x := (random * 7) + 1;
\r
345 TAB(i).degre := deg;
\r
351 TAB(i).coeff(j) := random*9 - 4;
\r
352 test := TAB(i).coeff(j) + test;
\r
359 unit affchar : procedure (n : integer);
\r
362 when 0 : call outstring ("0");
\r
363 when 1 : call outstring ("1");
\r
364 when 2 : call outstring ("2");
\r
365 when 3 : call outstring ("3");
\r
366 when 4 : call outstring ("4");
\r
367 when 5 : call outstring ("5");
\r
368 when 6 : call outstring ("6");
\r
369 when 7 : call outstring ("7");
\r
370 when 8 : call outstring ("8");
\r
371 when 9 : call outstring ("9");
\r
375 unit AFFICHE_INFO : procedure ;
\r
379 call move (520,160);
\r
380 call outstring ("VALEUR X : ");
\r
382 call move (520,335);
\r
383 call outstring ("VALEUR X : ");
\r
386 call move (521,161);
\r
387 call outstring ("VALEUR X : ");
\r
389 call move (521,336);
\r
390 call outstring ("VALEUR X : ");
\r
394 call RECTANGLE (8,5,12,85);
\r
400 call RECTANGLE (8,180,12,259);
\r
403 call draw (10,264);
\r
404 call draw (16,259);
\r
405 call draw (12,259);
\r
408 unit virtual trace : procedure (e,y : integer);
\r
410 xx,yy,i,nbchar : integer,
\r
413 xx := (e div 10)*320+20;
\r
414 yy := y-100+(e mod 10)*8;
\r
418 for i:=TAB(e).degre downto 0 do
\r
419 if tab(e).coeff(i)<>0 then
\r
421 if TAB(e).coeff(i)<0 then
\r
422 call outstring ("-");
\r
423 nbchar := nbchar + 1;
\r
426 call outstring ("+");
\r
427 nbchar := nbchar + 1;
\r
431 if ((tab(e).coeff(i)<>1) and
\r
432 (tab(e).coeff(i)<>-1)) or (i=0) then
\r
433 if tab(e).coeff(i)>=0 then
\r
434 call affchar (TAB(e).coeff(i));
\r
436 call affchar (-TAB(e).coeff(i));
\r
438 nbchar := nbchar + 1;
\r
441 call outstring ("X");
\r
443 call outstring ("^");
\r
445 nbchar := nbchar + 2;
\r
447 nbchar := nbchar + 1;
\r
451 for i:=nbchar to 25 do
\r
452 call outstring (" ");
\r
456 unit virtual echange : procedure (e1,e2,y : integer);
\r
458 i ,sauve_degre,sauve_coef : integer;
\r
462 sauve_degre := TAB(e2).degre;
\r
463 TAB(e2).degre := TAB(e1).degre;
\r
464 TAB(e1).degre := sauve_degre;
\r
466 for i := 5 downto 0
\r
468 sauve_coef := TAB(e2).coeff(i);
\r
469 TAB(e2).coeff(i) := TAB(e1).coeff(i);
\r
470 TAB(e1).coeff(i) := sauve_coef;
\r
478 unit virtual compare : function (e1,e2 : integer) : integer;
\r
480 val1,val2 : integer;
\r
482 val1 := CAL_POLYNOME(e1);
\r
483 val2 := CAL_POLYNOME(e2);
\r
484 if val1<val2 then result := -1;
\r
485 else if val1 = val2 then result := 0;
\r
491 unit virtual copie : procedure ( T : POLY);
\r
496 for i := 0 to nb_elements-1 do
\r
497 TAB(i).degre := T.tab(i).degre;
\r
499 TAB(i).coeff(j) := T.tab(i).coeff(j);
\r
504 unit virtual killtab : procedure;
\r
508 for i:=0 to nb_elements-1 do
\r
513 array TAB dim (0:nb_elements-1);
\r
514 for i:=0 to nb_elements-1 do
\r
515 TAB(i) := new ENR_ELEMENTS;
\r
516 array tab(i).coeff dim (0:5);
\r
522 pref STR_ELEMENTS block
\r
524 unit EFFACE : procedure (x1,y1,x2,y2,c1,c2,c3 : integer);
\r
532 while (k<=j) and (k<=i) do
\r
533 call RECTANGLE (x1+k,y1+k,x2-k,y2-k);
\r
540 call RECTANGLE (x1+k,y1+k,x2-k,y2-k);
\r
546 call RECTANGLE (x1,y1,x2,y2);
\r
550 UNIT BOX_MESSAGE : function (chaine:string;x1,y1,x2,y2:integer): boolean ;
\r
553 succes,gauche,droit,centre : boolean,
\r
557 call BOUTON (x1,y1,x2,y2,7,9,1);
\r
558 call move (x1+20,y1+30);
\r
559 call outstring (chaine);
\r
560 call BOUTON (x1+80,y2-50,x1+150,y2-15,7,15,8);
\r
561 call BOUTON (x1+200,y2-50,x1+270,y2-15,7,15,8);
\r
562 call move (x1+94,y2-35);
\r
564 call outstring ("O U I");
\r
565 call move (x1+214,y2-35);
\r
566 call outstring ("N O N ");
\r
569 call getpress (0,x,y,p,gauche,droit,centre);
\r
572 if (x > (x1+80) and x < (x1 + 150) and y>(y2-50) and y<(y2-15)) then
\r
573 call BOUTON (x1+80,y2-50,x1+150,y2-15,7,8,15);
\r
574 call move (x1+90,y2-35);
\r
576 call outstring ("O U I");
\r
578 call move (x1+90,y2-35);
\r
580 call outstring ("O U I");
\r
581 call BOUTON (x1+80,y2-50,x1+150,y2-15,7,15,8);
\r
582 call move (x1+90,y2-35);
\r
584 call outstring ("O U I");
\r
588 if (x>(x1+200) and x<(x1+270) and y>(y2-50) and y<(y2-15)) then
\r
589 call BOUTON (x1+200,y2-50,x1+270,y2-15,7,8,15);
\r
591 call move (x1+210,y2-35);
\r
592 call outstring ("N O N ");
\r
594 call move (x1+210,y2-35);
\r
595 call outstring ("N O N ");
\r
596 call BOUTON (x1+200,y2-50,x1+270,y2-15,7,15,8);
\r
598 call move (x1+210,y2-35);
\r
599 call outstring ("N O N ");
\r
608 unit carre : procedure (x,y : integer);
\r
610 call RECTANGLE_PLEIN (x,y,x+39,y+31,7,15);
\r
612 call move (x,y+29);
\r
614 call draw (x+37,y);
\r
616 call draw (x+37,y+29);
\r
617 call draw (x+1,y+29);
\r
619 call move (x+38,y+3);
\r
620 call draw (x+38,y+30);
\r
621 call draw (x+3,y+30);
\r
624 unit eff_titre : procedure;
\r
631 map : arrayof integer,
\r
636 call carre (i*40,j*32);
\r
642 unit tracev : procedure (x,y2,y1 : integer);
\r
648 unit dessinstat : procedure (x,y,c : integer);
\r
651 call tracev (3+x,16+y,13+y); call tracev (3+x,33+y,32+y);
\r
652 call tracev (4+x,18+y,8+y); call tracev (4+x,34+y,32+y);
\r
653 call tracev (5+x,20+y,7+y); call tracev (5+x,35+y,32+y);
\r
654 call tracev (6+x,21+y,6+y); call tracev (6+x,36+y,33+y);
\r
655 call tracev (7+x,22+y,5+y); call tracev (7+x,36+y,34+y);
\r
656 call tracev (8+x,23+y,4+y); call tracev (8+x,37+y,34+y);
\r
657 call tracev (9+x,24+y,3+y); call tracev (9+x,37+y,35+y);
\r
658 call tracev (10+x,24+y,3+y); call tracev (10+x,38+y,35+y);
\r
659 call tracev (11+x,25+y,2+y); call tracev (11+x,38+y,36+y);
\r
660 call tracev (12+x,26+y,2+y); call tracev (12+x,38+y,36+y);
\r
661 call tracev (13+x,26+y,2+y); call tracev (13+x,38+y,36+y);
\r
662 call tracev (14+x,27+y,2+y); call tracev (14+x,39+y,36+y);
\r
663 call tracev (15+x,28+y,2+y); call tracev (15+x,39+y,36+y);
\r
664 call tracev (16+x,29+y,2+y); call tracev (16+x,39+y,35+y);
\r
665 call tracev (17+x,29+y,2+y); call tracev (17+x,39+y,35+y);
\r
666 call tracev (18+x,39+y,2+y); call tracev (19+x,8+y,2+y);
\r
667 call tracev (19+x,39+y,10+y); call tracev (20+x,6+y,2+y);
\r
668 call tracev (20+x,38+y,11+y); call tracev (21+x,5+y,2+y);
\r
669 call tracev (21+x,38+y,12+y); call tracev (22+x,4+y,2+y);
\r
670 call tracev (22+x,38+y,13+y); call tracev (23+x,4+y,2+y);
\r
671 call tracev (23+x,38+y,14+y); call tracev (24+x,4+y,2+y);
\r
672 call tracev (24+x,38+y,14+y); call tracev (25+x,4+y,2+y);
\r
673 call tracev (25+x,38+y,15+y); call tracev (26+x,4+y,2+y);
\r
674 call tracev (26+x,37+y,15+y); call tracev (27+x,5+y,2+y);
\r
675 call tracev (27+x,37+y,16+y); call tracev (28+x,5+y,3+y);
\r
676 call tracev (28+x,36+y,17+y); call tracev (29+x,6+y,3+y);
\r
677 call tracev (29+x,36+y,18+y); call tracev (30+x,8+y,4+y);
\r
678 call tracev (30+x,35+y,19+y); call tracev (31+x,4+y,2+y);
\r
679 call tracev (31+x,9+y,5+y); call tracev (31+x,34+y,20+y);
\r
680 call tracev (32+x,4+y,2+y); call tracev (32+x,9+y,6+y);
\r
681 call tracev (32+x,33+y,22+y); call tracev (33+x,4+y,2+y);
\r
682 call tracev (33+x,9+y,8+y); call tracev (33+x,30+y,25+y);
\r
683 call tracev (34+x,4+y,2+y); call tracev (35+x,4+y,2+y);
\r
684 call tracev (36+x,4+y,2+y); call tracev (37+x,4+y,2+y);
\r
685 call tracev (38+x,4+y,2+y); call tracev (39+x,4+y,2+y);
\r
686 call tracev (40+x,4+y,2+y); call tracev (41+x,4+y,2+y);
\r
687 call tracev (42+x,38+y,2+y); call tracev (43+x,38+y,2+y);
\r
688 call tracev (44+x,38+y,2+y); call tracev (45+x,38+y,2+y);
\r
689 call tracev (46+x,38+y,2+y); call tracev (47+x,38+y,2+y);
\r
690 call tracev (48+x,38+y,2+y); call tracev (49+x,38+y,2+y);
\r
691 call tracev (50+x,38+y,2+y); call tracev (51+x,38+y,2+y);
\r
692 call tracev (52+x,38+y,2+y); call tracev (53+x,38+y,2+y);
\r
693 call tracev (54+x,38+y,2+y); call tracev (55+x,38+y,2+y);
\r
694 call tracev (56+x,38+y,2+y); call tracev (57+x,38+y,2+y);
\r
695 call tracev (58+x,38+y,2+y); call tracev (59+x,38+y,2+y);
\r
696 call tracev (60+x,38+y,2+y); call tracev (61+x,4+y,2+y);
\r
697 call tracev (61+x,38+y,37+y); call tracev (62+x,4+y,2+y);
\r
698 call tracev (62+x,38+y,35+y); call tracev (63+x,4+y,2+y);
\r
699 call tracev (63+x,38+y,33+y); call tracev (64+x,4+y,2+y);
\r
700 call tracev (64+x,37+y,31+y); call tracev (65+x,4+y,2+y);
\r
701 call tracev (65+x,35+y,29+y); call tracev (66+x,4+y,2+y);
\r
702 call tracev (66+x,34+y,27+y); call tracev (67+x,4+y,2+y);
\r
703 call tracev (67+x,34+y,25+y); call tracev (68+x,4+y,2+y);
\r
704 call tracev (68+x,29+y,23+y); call tracev (68+x,34+y,31+y);
\r
705 call tracev (69+x,4+y,2+y); call tracev (69+x,27+y,21+y);
\r
706 call tracev (69+x,34+y,31+y); call tracev (70+x,4+y,2+y);
\r
707 call tracev (70+x,25+y,19+y); call tracev (70+x,34+y,31+y);
\r
708 call tracev (71+x,23+y,17+y); call tracev (71+x,34+y,31+y);
\r
709 call tracev (72+x,25+y,15+y); call tracev (72+x,34+y,31+y);
\r
710 call tracev (73+x,27+y,13+y); call tracev (73+x,34+y,31+y);
\r
711 call tracev (74+x,29+y,11+y); call tracev (74+x,34+y,31+y);
\r
712 call tracev (75+x,34+y,9+y); call tracev (76+x,34+y,7+y);
\r
713 call tracev (77+x,35+y,5+y); call tracev (78+x,37+y,3+y);
\r
714 call tracev (79+x,38+y,2+y); call tracev (80+x,38+y,3+y);
\r
715 call tracev (81+x,38+y,5+y); call tracev (82+x,38+y,7+y);
\r
716 call tracev (83+x,38+y,9+y); call tracev (84+x,38+y,11+y);
\r
717 call tracev (85+x,38+y,13+y); call tracev (86+x,38+y,15+y);
\r
718 call tracev (87+x,38+y,17+y); call tracev (88+x,38+y,19+y);
\r
719 call tracev (89+x,4+y,2+y); call tracev (89+x,38+y,21+y);
\r
720 call tracev (90+x,4+y,2+y); call tracev (90+x,38+y,23+y);
\r
721 call tracev (91+x,4+y,2+y); call tracev (91+x,38+y,25+y);
\r
722 call tracev (92+x,4+y,2+y); call tracev (92+x,38+y,27+y);
\r
723 call tracev (93+x,4+y,2+y); call tracev (93+x,38+y,29+y);
\r
724 call tracev (94+x,4+y,2+y); call tracev (94+x,38+y,31+y);
\r
725 call tracev (95+x,4+y,2+y); call tracev (95+x,38+y,33+y);
\r
726 call tracev (96+x,4+y,2+y); call tracev (96+x,38+y,35+y);
\r
727 call tracev (97+x,4+y,2+y); call tracev (97+x,38+y,37+y);
\r
728 call tracev (98+x,4+y,2+y); call tracev (99+x,38+y,2+y);
\r
729 call tracev (100+x,38+y,2+y); call tracev (101+x,38+y,2+y);
\r
730 call tracev (102+x,38+y,2+y); call tracev (103+x,38+y,2+y);
\r
731 call tracev (104+x,38+y,2+y); call tracev (105+x,38+y,2+y);
\r
732 call tracev (106+x,38+y,2+y); call tracev (107+x,38+y,2+y);
\r
733 call tracev (108+x,38+y,2+y); call tracev (109+x,38+y,2+y);
\r
734 call tracev (110+x,38+y,2+y); call tracev (111+x,38+y,2+y);
\r
735 call tracev (112+x,38+y,2+y); call tracev (113+x,38+y,2+y);
\r
736 call tracev (114+x,38+y,2+y); call tracev (115+x,38+y,2+y);
\r
737 call tracev (116+x,38+y,2+y); call tracev (117+x,38+y,2+y);
\r
738 call tracev (118+x,4+y,2+y); call tracev (119+x,4+y,2+y);
\r
739 call tracev (120+x,4+y,2+y); call tracev (121+x,4+y,2+y);
\r
740 call tracev (122+x,4+y,2+y); call tracev (123+x,4+y,2+y);
\r
741 call tracev (124+x,4+y,2+y); call tracev (124+x,16+y,10+y);
\r
742 call tracev (124+x,34+y,32+y); call tracev (125+x,4+y,2+y);
\r
743 call tracev (125+x,19+y,8+y); call tracev (125+x,35+y,32+y);
\r
744 call tracev (126+x,4+y,2+y); call tracev (126+x,21+y,6+y);
\r
745 call tracev (126+x,35+y,32+y); call tracev (127+x,4+y,2+y);
\r
746 call tracev (127+x,22+y,5+y); call tracev (127+x,36+y,33+y);
\r
747 call tracev (128+x,22+y,5+y); call tracev (128+x,36+y,34+y);
\r
748 call tracev (129+x,23+y,4+y); call tracev (129+x,37+y,34+y);
\r
749 call tracev (130+x,24+y,3+y); call tracev (130+x,38+y,35+y);
\r
750 call tracev (131+x,25+y,2+y); call tracev (131+x,38+y,36+y);
\r
751 call tracev (132+x,26+y,2+y); call tracev (132+x,38+y,36+y);
\r
752 call tracev (133+x,26+y,2+y); call tracev (133+x,38+y,36+y);
\r
753 call tracev (134+x,27+y,2+y); call tracev (134+x,39+y,36+y);
\r
754 call tracev (135+x,28+y,2+y); call tracev (135+x,39+y,36+y);
\r
755 call tracev (136+x,29+y,2+y); call tracev (136+x,39+y,36+y);
\r
756 call tracev (137+x,29+y,2+y); call tracev (137+x,39+y,35+y);
\r
757 call tracev (138+x,31+y,2+y); call tracev (138+x,39+y,33+y);
\r
758 call tracev (139+x,39+y,2+y); call tracev (140+x,6+y,2+y);
\r
759 call tracev (140+x,39+y,11+y); call tracev (141+x,5+y,2+y);
\r
760 call tracev (141+x,38+y,12+y); call tracev (142+x,5+y,2+y);
\r
761 call tracev (142+x,38+y,13+y); call tracev (143+x,4+y,2+y);
\r
762 call tracev (143+x,38+y,14+y); call tracev (144+x,4+y,2+y);
\r
763 call tracev (144+x,38+y,14+y); call tracev (145+x,4+y,2+y);
\r
764 call tracev (145+x,38+y,15+y); call tracev (146+x,4+y,2+y);
\r
765 call tracev (146+x,38+y,15+y); call tracev (147+x,4+y,2+y);
\r
766 call tracev (147+x,37+y,16+y); call tracev (148+x,5+y,2+y);
\r
767 call tracev (148+x,37+y,16+y); call tracev (149+x,5+y,3+y);
\r
768 call tracev (149+x,36+y,17+y); call tracev (150+x,6+y,3+y);
\r
769 call tracev (150+x,36+y,18+y); call tracev (151+x,8+y,4+y);
\r
770 call tracev (151+x,35+y,20+y); call tracev (152+x,9+y,6+y);
\r
771 call tracev (152+x,33+y,21+y); call tracev (153+x,9+y,7+y);
\r
772 call tracev (153+x,32+y,22+y);
\r
773 call tracev (154+x,9+y,8+y);
\r
774 call tracev (154+x,28+y,25+y);
\r
777 unit dessinmenu : procedure (x,y,c : integer);
\r
780 call tracev (8+x,47+y,45+y); call tracev (9+x,47+y,43+y);
\r
781 call tracev (10+x,45+y,40+y); call tracev (11+x,43+y,38+y);
\r
782 call tracev (12+x,41+y,35+y); call tracev (13+x,38+y,32+y);
\r
783 call tracev (14+x,36+y,30+y); call tracev (15+x,37+y,27+y);
\r
784 call tracev (16+x,38+y,25+y); call tracev (17+x,40+y,22+y);
\r
785 call tracev (18+x,41+y,20+y); call tracev (19+x,43+y,17+y);
\r
786 call tracev (20+x,44+y,14+y); call tracev (21+x,46+y,12+y);
\r
787 call tracev (22+x,47+y,10+y); call tracev (23+x,46+y,11+y);
\r
788 call tracev (24+x,44+y,13+y); call tracev (25+x,43+y,14+y);
\r
789 call tracev (26+x,41+y,16+y); call tracev (27+x,40+y,17+y);
\r
790 call tracev (28+x,38+y,19+y); call tracev (29+x,37+y,20+y);
\r
791 call tracev (30+x,36+y,22+y); call tracev (31+x,38+y,20+y);
\r
792 call tracev (32+x,41+y,19+y); call tracev (33+x,43+y,17+y);
\r
793 call tracev (34+x,45+y,16+y); call tracev (35+x,47+y,14+y);
\r
794 call tracev (36+x,47+y,13+y); call tracev (37+x,47+y,11+y);
\r
795 call tracev (38+x,47+y,10+y); call tracev (39+x,47+y,12+y);
\r
796 call tracev (40+x,47+y,14+y); call tracev (41+x,47+y,17+y);
\r
797 call tracev (42+x,47+y,19+y); call tracev (43+x,47+y,21+y);
\r
798 call tracev (44+x,47+y,24+y); call tracev (45+x,47+y,26+y);
\r
799 call tracev (46+x,47+y,29+y); call tracev (47+x,47+y,31+y);
\r
800 call tracev (48+x,47+y,33+y); call tracev (49+x,47+y,36+y);
\r
801 call tracev (50+x,47+y,38+y); call tracev (51+x,47+y,41+y);
\r
802 call tracev (52+x,47+y,43+y); call tracev (53+x,47+y,45+y);
\r
803 call tracev (55+x,47+y,10+y); call tracev (56+x,47+y,10+y);
\r
804 call tracev (57+x,47+y,10+y); call tracev (58+x,47+y,10+y);
\r
805 call tracev (59+x,47+y,10+y); call tracev (60+x,47+y,10+y);
\r
806 call tracev (61+x,47+y,10+y); call tracev (62+x,47+y,10+y);
\r
807 call tracev (63+x,47+y,10+y); call tracev (64+x,47+y,10+y);
\r
808 call tracev (65+x,47+y,10+y); call tracev (66+x,47+y,10+y);
\r
809 call tracev (67+x,47+y,10+y); call tracev (68+x,47+y,10+y);
\r
810 call tracev (69+x,47+y,10+y); call tracev (70+x,47+y,10+y);
\r
811 call tracev (71+x,47+y,10+y); call tracev (72+x,47+y,10+y);
\r
812 call tracev (73+x,13+y,10+y); call tracev (73+x,23+y,21+y);
\r
813 call tracev (73+x,47+y,44+y); call tracev (74+x,13+y,10+y);
\r
814 call tracev (74+x,23+y,21+y); call tracev (74+x,47+y,44+y);
\r
815 call tracev (75+x,13+y,10+y); call tracev (75+x,23+y,21+y);
\r
816 call tracev (75+x,47+y,44+y); call tracev (76+x,13+y,10+y);
\r
817 call tracev (76+x,23+y,21+y); call tracev (76+x,47+y,44+y);
\r
818 call tracev (77+x,13+y,10+y); call tracev (77+x,23+y,21+y);
\r
819 call tracev (77+x,47+y,44+y); call tracev (78+x,13+y,10+y);
\r
820 call tracev (78+x,23+y,21+y); call tracev (78+x,47+y,44+y);
\r
821 call tracev (79+x,13+y,10+y); call tracev (79+x,23+y,21+y);
\r
822 call tracev (79+x,47+y,44+y); call tracev (80+x,13+y,10+y);
\r
823 call tracev (80+x,23+y,21+y); call tracev (80+x,47+y,44+y);
\r
824 call tracev (81+x,13+y,10+y); call tracev (81+x,23+y,21+y);
\r
825 call tracev (81+x,47+y,44+y); call tracev (82+x,13+y,10+y);
\r
826 call tracev (82+x,23+y,21+y); call tracev (82+x,47+y,44+y);
\r
827 call tracev (83+x,13+y,10+y); call tracev (83+x,23+y,21+y);
\r
828 call tracev (83+x,47+y,44+y); call tracev (84+x,13+y,10+y);
\r
829 call tracev (84+x,23+y,21+y); call tracev (84+x,47+y,44+y);
\r
830 call tracev (85+x,13+y,10+y); call tracev (85+x,23+y,21+y);
\r
831 call tracev (85+x,47+y,44+y); call tracev (86+x,13+y,10+y);
\r
832 call tracev (86+x,23+y,21+y); call tracev (86+x,47+y,44+y);
\r
833 call tracev (87+x,13+y,10+y); call tracev (87+x,23+y,21+y);
\r
834 call tracev (87+x,47+y,44+y); call tracev (88+x,23+y,21+y);
\r
835 call tracev (88+x,47+y,44+y); call tracev (89+x,23+y,21+y);
\r
836 call tracev (89+x,47+y,44+y); call tracev (90+x,47+y,44+y);
\r
837 call tracev (92+x,47+y,10+y); call tracev (93+x,47+y,11+y);
\r
838 call tracev (94+x,30+y,11+y); call tracev (95+x,30+y,12+y);
\r
839 call tracev (96+x,31+y,12+y); call tracev (97+x,31+y,13+y);
\r
840 call tracev (98+x,32+y,14+y); call tracev (99+x,32+y,14+y);
\r
841 call tracev (100+x,33+y,15+y); call tracev (101+x,33+y,16+y);
\r
842 call tracev (102+x,34+y,16+y); call tracev (103+x,35+y,17+y);
\r
843 call tracev (104+x,35+y,17+y); call tracev (105+x,36+y,18+y);
\r
844 call tracev (106+x,36+y,19+y); call tracev (107+x,37+y,19+y);
\r
845 call tracev (108+x,37+y,20+y); call tracev (109+x,38+y,20+y);
\r
846 call tracev (110+x,39+y,21+y); call tracev (111+x,39+y,22+y);
\r
847 call tracev (112+x,40+y,22+y); call tracev (113+x,40+y,23+y);
\r
848 call tracev (114+x,41+y,23+y); call tracev (115+x,41+y,24+y);
\r
849 call tracev (116+x,42+y,25+y); call tracev (117+x,42+y,25+y);
\r
850 call tracev (118+x,43+y,26+y); call tracev (119+x,44+y,27+y);
\r
851 call tracev (120+x,44+y,27+y); call tracev (121+x,45+y,28+y);
\r
852 call tracev (122+x,45+y,28+y); call tracev (123+x,46+y,10+y);
\r
853 call tracev (124+x,46+y,10+y); call tracev (125+x,47+y,10+y);
\r
854 call tracev (127+x,37+y,10+y); call tracev (128+x,39+y,10+y);
\r
855 call tracev (129+x,41+y,10+y); call tracev (130+x,42+y,10+y);
\r
856 call tracev (131+x,43+y,10+y); call tracev (132+x,44+y,10+y);
\r
857 call tracev (133+x,45+y,10+y); call tracev (134+x,46+y,10+y);
\r
858 call tracev (135+x,46+y,10+y); call tracev (136+x,47+y,10+y);
\r
859 call tracev (137+x,47+y,10+y); call tracev (138+x,47+y,10+y);
\r
860 call tracev (139+x,47+y,10+y); call tracev (140+x,48+y,10+y);
\r
861 call tracev (141+x,48+y,10+y); call tracev (142+x,48+y,10+y);
\r
862 call tracev (143+x,48+y,10+y); call tracev (144+x,48+y,10+y);
\r
863 call tracev (145+x,48+y,45+y); call tracev (146+x,48+y,45+y);
\r
864 call tracev (147+x,48+y,45+y); call tracev (148+x,47+y,45+y);
\r
865 call tracev (149+x,47+y,45+y); call tracev (150+x,47+y,45+y);
\r
866 call tracev (151+x,47+y,44+y); call tracev (152+x,47+y,44+y);
\r
867 call tracev (153+x,47+y,43+y); call tracev (154+x,46+y,43+y);
\r
868 call tracev (155+x,46+y,42+y); call tracev (156+x,45+y,42+y);
\r
869 call tracev (157+x,44+y,41+y); call tracev (158+x,43+y,41+y);
\r
870 call tracev (159+x,43+y,39+y); call tracev (160+x,42+y,37+y);
\r
871 call tracev (161+x,41+y,10+y); call tracev (162+x,39+y,10+y);
\r
874 unit dessinelem : procedure (x,y,c : integer);
\r
877 call tracev (41+x,3+y,1+y); call tracev (42+x,3+y,1+y);
\r
878 call tracev (43+x,3+y,1+y); call tracev (44+x,3+y,1+y);
\r
879 call tracev (45+x,3+y,1+y); call tracev (46+x,3+y,1+y);
\r
880 call tracev (47+x,3+y,1+y); call tracev (48+x,3+y,1+y);
\r
881 call tracev (49+x,3+y,1+y); call tracev (50+x,3+y,1+y);
\r
882 call tracev (51+x,3+y,1+y); call tracev (52+x,37+y,1+y);
\r
883 call tracev (53+x,37+y,1+y); call tracev (54+x,37+y,1+y);
\r
884 call tracev (55+x,37+y,1+y); call tracev (56+x,37+y,1+y);
\r
885 call tracev (57+x,37+y,1+y); call tracev (58+x,37+y,1+y);
\r
886 call tracev (59+x,37+y,1+y); call tracev (60+x,37+y,1+y);
\r
887 call tracev (61+x,37+y,1+y); call tracev (62+x,37+y,1+y);
\r
888 call tracev (63+x,37+y,1+y); call tracev (64+x,37+y,1+y);
\r
889 call tracev (65+x,37+y,1+y); call tracev (66+x,37+y,1+y);
\r
890 call tracev (67+x,37+y,1+y); call tracev (68+x,37+y,1+y);
\r
891 call tracev (69+x,37+y,1+y); call tracev (70+x,37+y,1+y);
\r
892 call tracev (71+x,3+y,1+y); call tracev (72+x,3+y,1+y);
\r
893 call tracev (73+x,3+y,1+y); call tracev (74+x,3+y,1+y);
\r
894 call tracev (75+x,3+y,1+y); call tracev (76+x,3+y,1+y);
\r
895 call tracev (77+x,3+y,1+y); call tracev (78+x,3+y,1+y);
\r
896 call tracev (79+x,3+y,1+y); call tracev (80+x,3+y,1+y);
\r
897 call tracev (82+x,2+y,1+y); call tracev (83+x,4+y,1+y);
\r
898 call tracev (84+x,6+y,1+y); call tracev (85+x,8+y,1+y);
\r
899 call tracev (86+x,10+y,1+y); call tracev (87+x,12+y,1+y);
\r
900 call tracev (88+x,14+y,1+y); call tracev (89+x,16+y,1+y);
\r
901 call tracev (90+x,18+y,1+y); call tracev (91+x,20+y,1+y);
\r
902 call tracev (92+x,22+y,1+y); call tracev (93+x,24+y,1+y);
\r
903 call tracev (94+x,26+y,1+y); call tracev (94+x,37+y,36+y);
\r
904 call tracev (95+x,28+y,1+y); call tracev (95+x,37+y,34+y);
\r
905 call tracev (96+x,30+y,1+y); call tracev (96+x,36+y,32+y);
\r
906 call tracev (97+x,34+y,1+y); call tracev (98+x,32+y,1+y);
\r
907 call tracev (99+x,30+y,1+y); call tracev (100+x,28+y,2+y);
\r
908 call tracev (101+x,26+y,4+y); call tracev (102+x,24+y,6+y);
\r
909 call tracev (103+x,22+y,8+y); call tracev (104+x,20+y,10+y);
\r
910 call tracev (105+x,18+y,12+y); call tracev (106+x,16+y,10+y);
\r
911 call tracev (107+x,14+y,8+y); call tracev (108+x,12+y,6+y);
\r
912 call tracev (109+x,10+y,4+y); call tracev (110+x,8+y,2+y);
\r
913 call tracev (111+x,6+y,1+y); call tracev (112+x,4+y,1+y);
\r
914 call tracev (113+x,2+y,1+y); call tracev (115+x,37+y,1+y);
\r
915 call tracev (116+x,37+y,1+y); call tracev (117+x,37+y,1+y);
\r
916 call tracev (118+x,37+y,1+y); call tracev (119+x,37+y,1+y);
\r
917 call tracev (120+x,37+y,1+y); call tracev (121+x,37+y,1+y);
\r
918 call tracev (122+x,37+y,1+y); call tracev (123+x,37+y,1+y);
\r
919 call tracev (124+x,37+y,1+y); call tracev (125+x,37+y,1+y);
\r
920 call tracev (126+x,37+y,1+y); call tracev (127+x,37+y,1+y);
\r
921 call tracev (128+x,37+y,1+y); call tracev (129+x,37+y,1+y);
\r
922 call tracev (130+x,37+y,1+y); call tracev (131+x,37+y,1+y);
\r
923 call tracev (132+x,37+y,1+y); call tracev (133+x,3+y,1+y);
\r
924 call tracev (133+x,27+y,25+y); call tracev (134+x,3+y,1+y);
\r
925 call tracev (134+x,27+y,25+y); call tracev (135+x,3+y,1+y);
\r
926 call tracev (135+x,28+y,26+y); call tracev (136+x,3+y,1+y);
\r
927 call tracev (136+x,28+y,26+y); call tracev (137+x,3+y,1+y);
\r
928 call tracev (137+x,28+y,26+y); call tracev (138+x,4+y,1+y);
\r
929 call tracev (138+x,28+y,25+y); call tracev (139+x,4+y,1+y);
\r
930 call tracev (139+x,28+y,25+y); call tracev (140+x,4+y,1+y);
\r
931 call tracev (140+x,28+y,25+y); call tracev (141+x,4+y,1+y);
\r
932 call tracev (141+x,28+y,25+y); call tracev (142+x,4+y,2+y);
\r
933 call tracev (142+x,27+y,25+y); call tracev (143+x,5+y,2+y);
\r
934 call tracev (143+x,27+y,24+y); call tracev (144+x,6+y,3+y);
\r
935 call tracev (144+x,26+y,23+y); call tracev (145+x,6+y,4+y);
\r
936 call tracev (145+x,25+y,22+y); call tracev (146+x,8+y,5+y);
\r
937 call tracev (146+x,24+y,22+y); call tracev (147+x,10+y,5+y);
\r
938 call tracev (147+x,23+y,19+y); call tracev (148+x,14+y,6+y);
\r
939 call tracev (148+x,22+y,17+y); call tracev (149+x,21+y,8+y);
\r
940 call tracev (150+x,20+y,10+y); call tracev (152+x,37+y,1+y);
\r
941 call tracev (153+x,37+y,1+y); call tracev (154+x,37+y,1+y);
\r
942 call tracev (155+x,37+y,1+y); call tracev (156+x,37+y,1+y);
\r
943 call tracev (157+x,37+y,1+y); call tracev (158+x,37+y,1+y);
\r
944 call tracev (159+x,37+y,1+y); call tracev (160+x,37+y,1+y);
\r
945 call tracev (161+x,37+y,1+y); call tracev (162+x,37+y,1+y);
\r
946 call tracev (163+x,37+y,1+y); call tracev (164+x,37+y,1+y);
\r
947 call tracev (165+x,37+y,1+y); call tracev (166+x,37+y,1+y);
\r
948 call tracev (167+x,37+y,1+y); call tracev (168+x,37+y,1+y);
\r
949 call tracev (169+x,37+y,1+y); call tracev (170+x,37+y,1+y);
\r
950 call tracev (171+x,3+y,1+y); call tracev (171+x,13+y,11+y);
\r
951 call tracev (171+x,37+y,35+y); call tracev (172+x,3+y,1+y);
\r
952 call tracev (172+x,13+y,11+y); call tracev (172+x,37+y,35+y);
\r
953 call tracev (173+x,3+y,1+y); call tracev (173+x,13+y,11+y);
\r
954 call tracev (173+x,37+y,35+y); call tracev (174+x,3+y,1+y);
\r
955 call tracev (174+x,13+y,11+y); call tracev (174+x,37+y,35+y);
\r
956 call tracev (175+x,3+y,1+y); call tracev (175+x,13+y,11+y);
\r
957 call tracev (175+x,37+y,35+y); call tracev (176+x,3+y,1+y);
\r
958 call tracev (176+x,13+y,11+y); call tracev (176+x,37+y,35+y);
\r
959 call tracev (177+x,3+y,1+y); call tracev (177+x,13+y,11+y);
\r
960 call tracev (177+x,37+y,35+y); call tracev (178+x,3+y,1+y);
\r
961 call tracev (178+x,13+y,11+y); call tracev (178+x,37+y,35+y);
\r
962 call tracev (179+x,3+y,1+y); call tracev (179+x,13+y,11+y);
\r
963 call tracev (179+x,37+y,35+y); call tracev (180+x,3+y,1+y);
\r
964 call tracev (180+x,13+y,11+y); call tracev (180+x,37+y,35+y);
\r
965 call tracev (181+x,3+y,1+y); call tracev (181+x,13+y,11+y);
\r
966 call tracev (181+x,37+y,35+y); call tracev (182+x,3+y,1+y);
\r
967 call tracev (182+x,13+y,11+y); call tracev (182+x,37+y,35+y);
\r
968 call tracev (183+x,3+y,1+y); call tracev (183+x,13+y,11+y);
\r
969 call tracev (183+x,37+y,35+y); call tracev (184+x,3+y,1+y);
\r
970 call tracev (184+x,13+y,11+y); call tracev (184+x,37+y,35+y);
\r
971 call tracev (185+x,3+y,1+y); call tracev (185+x,13+y,11+y);
\r
972 call tracev (185+x,37+y,35+y); call tracev (186+x,13+y,11+y);
\r
973 call tracev (186+x,37+y,35+y); call tracev (187+x,37+y,35+y);
\r
974 call tracev (188+x,37+y,35+y);
\r
977 unit dessinrand : procedure (x,y,c : integer);
\r
980 call tracev (0+x,39+y,2+y); call tracev (1+x,39+y,2+y);
\r
981 call tracev (2+x,39+y,2+y); call tracev (3+x,39+y,2+y);
\r
982 call tracev (4+x,39+y,2+y); call tracev (5+x,39+y,2+y);
\r
983 call tracev (6+x,39+y,2+y); call tracev (7+x,39+y,2+y);
\r
984 call tracev (8+x,39+y,2+y); call tracev (9+x,39+y,2+y);
\r
985 call tracev (10+x,39+y,2+y); call tracev (11+x,39+y,2+y);
\r
986 call tracev (12+x,39+y,2+y); call tracev (13+x,39+y,2+y);
\r
987 call tracev (14+x,39+y,2+y); call tracev (15+x,39+y,2+y);
\r
988 call tracev (16+x,39+y,2+y); call tracev (17+x,39+y,2+y);
\r
989 call tracev (18+x,39+y,2+y); call tracev (19+x,5+y,2+y);
\r
990 call tracev (19+x,31+y,27+y); call tracev (20+x,5+y,2+y);
\r
991 call tracev (20+x,32+y,27+y); call tracev (21+x,5+y,2+y);
\r
992 call tracev (21+x,29+y,27+y); call tracev (21+x,33+y,30+y);
\r
993 call tracev (22+x,5+y,2+y); call tracev (22+x,29+y,27+y);
\r
994 call tracev (22+x,34+y,31+y); call tracev (23+x,5+y,2+y);
\r
995 call tracev (23+x,29+y,27+y); call tracev (23+x,34+y,32+y);
\r
996 call tracev (24+x,5+y,3+y); call tracev (24+x,29+y,27+y);
\r
997 call tracev (24+x,35+y,32+y); call tracev (25+x,5+y,3+y);
\r
998 call tracev (25+x,29+y,27+y); call tracev (25+x,35+y,33+y);
\r
999 call tracev (26+x,5+y,3+y); call tracev (26+x,29+y,27+y);
\r
1000 call tracev (26+x,36+y,33+y); call tracev (27+x,6+y,3+y);
\r
1001 call tracev (27+x,29+y,26+y); call tracev (27+x,36+y,34+y);
\r
1002 call tracev (28+x,6+y,4+y); call tracev (28+x,28+y,26+y);
\r
1003 call tracev (28+x,36+y,34+y); call tracev (29+x,7+y,4+y);
\r
1004 call tracev (29+x,28+y,25+y); call tracev (29+x,37+y,35+y);
\r
1005 call tracev (30+x,7+y,4+y); call tracev (30+x,27+y,25+y);
\r
1006 call tracev (30+x,37+y,35+y); call tracev (31+x,8+y,5+y);
\r
1007 call tracev (31+x,27+y,24+y); call tracev (31+x,38+y,36+y);
\r
1008 call tracev (32+x,10+y,6+y); call tracev (32+x,26+y,23+y);
\r
1009 call tracev (32+x,38+y,36+y); call tracev (33+x,12+y,7+y);
\r
1010 call tracev (33+x,25+y,21+y); call tracev (33+x,39+y,36+y);
\r
1011 call tracev (34+x,24+y,8+y); call tracev (34+x,39+y,36+y);
\r
1012 call tracev (35+x,23+y,10+y); call tracev (35+x,39+y,36+y);
\r
1013 call tracev (36+x,21+y,12+y); call tracev (36+x,39+y,36+y);
\r
1014 call tracev (38+x,39+y,37+y); call tracev (39+x,39+y,35+y);
\r
1015 call tracev (40+x,38+y,33+y); call tracev (41+x,36+y,31+y);
\r
1016 call tracev (42+x,35+y,29+y); call tracev (43+x,35+y,27+y);
\r
1017 call tracev (44+x,30+y,25+y); call tracev (44+x,35+y,32+y);
\r
1018 call tracev (45+x,28+y,23+y); call tracev (45+x,35+y,32+y);
\r
1019 call tracev (46+x,26+y,21+y); call tracev (46+x,35+y,32+y);
\r
1020 call tracev (47+x,24+y,18+y); call tracev (47+x,35+y,32+y);
\r
1021 call tracev (48+x,25+y,16+y); call tracev (48+x,35+y,32+y);
\r
1022 call tracev (49+x,27+y,14+y); call tracev (49+x,35+y,32+y);
\r
1023 call tracev (50+x,28+y,12+y); call tracev (50+x,35+y,32+y);
\r
1024 call tracev (51+x,30+y,10+y); call tracev (51+x,35+y,32+y);
\r
1025 call tracev (52+x,35+y,8+y); call tracev (53+x,36+y,6+y);
\r
1026 call tracev (54+x,38+y,4+y); call tracev (55+x,39+y,2+y);
\r
1027 call tracev (56+x,39+y,4+y); call tracev (57+x,39+y,6+y);
\r
1028 call tracev (58+x,39+y,8+y); call tracev (59+x,39+y,10+y);
\r
1029 call tracev (60+x,39+y,12+y); call tracev (61+x,39+y,14+y);
\r
1030 call tracev (62+x,39+y,16+y); call tracev (63+x,39+y,18+y);
\r
1031 call tracev (64+x,39+y,20+y); call tracev (65+x,39+y,22+y);
\r
1032 call tracev (66+x,39+y,24+y); call tracev (67+x,39+y,26+y);
\r
1033 call tracev (68+x,39+y,28+y); call tracev (69+x,39+y,30+y);
\r
1034 call tracev (70+x,39+y,32+y); call tracev (71+x,39+y,34+y);
\r
1035 call tracev (72+x,39+y,36+y); call tracev (73+x,39+y,38+y);
\r
1036 call tracev (75+x,39+y,2+y); call tracev (76+x,39+y,3+y);
\r
1037 call tracev (77+x,22+y,3+y); call tracev (78+x,22+y,4+y);
\r
1038 call tracev (79+x,23+y,4+y); call tracev (80+x,23+y,5+y);
\r
1039 call tracev (81+x,24+y,6+y); call tracev (82+x,24+y,6+y);
\r
1040 call tracev (83+x,25+y,7+y); call tracev (84+x,25+y,8+y);
\r
1041 call tracev (85+x,26+y,8+y); call tracev (86+x,27+y,9+y);
\r
1042 call tracev (87+x,27+y,9+y); call tracev (88+x,28+y,10+y);
\r
1043 call tracev (89+x,28+y,11+y); call tracev (90+x,29+y,11+y);
\r
1044 call tracev (91+x,29+y,12+y); call tracev (92+x,30+y,12+y);
\r
1045 call tracev (93+x,31+y,13+y); call tracev (94+x,31+y,14+y);
\r
1046 call tracev (95+x,32+y,14+y); call tracev (96+x,32+y,15+y);
\r
1047 call tracev (97+x,33+y,15+y); call tracev (98+x,33+y,16+y);
\r
1048 call tracev (99+x,34+y,17+y); call tracev (100+x,34+y,17+y);
\r
1049 call tracev (101+x,35+y,18+y); call tracev (102+x,36+y,19+y);
\r
1050 call tracev (103+x,36+y,19+y); call tracev (104+x,37+y,20+y);
\r
1051 call tracev (105+x,37+y,20+y); call tracev (106+x,38+y,2+y);
\r
1052 call tracev (107+x,38+y,2+y); call tracev (108+x,39+y,2+y);
\r
1053 call tracev (111+x,39+y,2+y); call tracev (112+x,39+y,2+y);
\r
1054 call tracev (113+x,39+y,2+y); call tracev (114+x,39+y,2+y);
\r
1055 call tracev (115+x,39+y,2+y); call tracev (116+x,39+y,2+y);
\r
1056 call tracev (117+x,39+y,2+y); call tracev (118+x,39+y,2+y);
\r
1057 call tracev (119+x,39+y,2+y); call tracev (120+x,39+y,2+y);
\r
1058 call tracev (121+x,39+y,2+y); call tracev (122+x,39+y,2+y);
\r
1059 call tracev (123+x,39+y,2+y); call tracev (124+x,39+y,2+y);
\r
1060 call tracev (125+x,39+y,2+y); call tracev (126+x,39+y,2+y);
\r
1061 call tracev (127+x,39+y,2+y); call tracev (128+x,39+y,2+y);
\r
1062 call tracev (129+x,39+y,2+y); call tracev (130+x,5+y,2+y);
\r
1063 call tracev (130+x,39+y,36+y); call tracev (131+x,5+y,2+y);
\r
1064 call tracev (131+x,39+y,36+y); call tracev (132+x,5+y,2+y);
\r
1065 call tracev (132+x,38+y,36+y); call tracev (133+x,5+y,2+y);
\r
1066 call tracev (133+x,38+y,36+y); call tracev (134+x,5+y,2+y);
\r
1067 call tracev (134+x,38+y,36+y); call tracev (135+x,5+y,2+y);
\r
1068 call tracev (135+x,38+y,36+y); call tracev (136+x,6+y,2+y);
\r
1069 call tracev (136+x,37+y,35+y); call tracev (137+x,6+y,3+y);
\r
1070 call tracev (137+x,37+y,35+y); call tracev (138+x,6+y,3+y);
\r
1071 call tracev (138+x,37+y,35+y); call tracev (139+x,7+y,4+y);
\r
1072 call tracev (139+x,36+y,34+y); call tracev (140+x,7+y,4+y);
\r
1073 call tracev (140+x,36+y,34+y); call tracev (141+x,8+y,5+y);
\r
1074 call tracev (141+x,35+y,33+y); call tracev (142+x,9+y,6+y);
\r
1075 call tracev (142+x,35+y,32+y); call tracev (143+x,11+y,7+y);
\r
1076 call tracev (143+x,34+y,30+y); call tracev (144+x,13+y,8+y);
\r
1077 call tracev (144+x,33+y,28+y); call tracev (145+x,16+y,10+y);
\r
1078 call tracev (145+x,31+y,25+y); call tracev (146+x,19+y,11+y);
\r
1079 call tracev (146+x,30+y,22+y); call tracev (147+x,28+y,13+y);
\r
1080 call tracev (148+x,26+y,15+y); call tracev (150+x,27+y,15+y);
\r
1081 call tracev (151+x,29+y,13+y); call tracev (152+x,31+y,11+y);
\r
1082 call tracev (153+x,32+y,10+y); call tracev (154+x,34+y,8+y);
\r
1083 call tracev (155+x,35+y,7+y); call tracev (156+x,36+y,6+y);
\r
1084 call tracev (157+x,36+y,6+y); call tracev (158+x,37+y,5+y);
\r
1085 call tracev (159+x,37+y,4+y); call tracev (160+x,38+y,4+y);
\r
1086 call tracev (161+x,38+y,3+y); call tracev (162+x,38+y,3+y);
\r
1087 call tracev (163+x,39+y,2+y); call tracev (164+x,39+y,2+y);
\r
1088 call tracev (165+x,39+y,2+y); call tracev (166+x,39+y,2+y);
\r
1089 call tracev (167+x,40+y,2+y); call tracev (168+x,40+y,2+y);
\r
1090 call tracev (169+x,5+y,2+y); call tracev (169+x,40+y,37+y);
\r
1091 call tracev (170+x,5+y,2+y); call tracev (170+x,40+y,37+y);
\r
1092 call tracev (171+x,5+y,2+y); call tracev (171+x,39+y,37+y);
\r
1093 call tracev (172+x,5+y,2+y); call tracev (172+x,39+y,37+y);
\r
1094 call tracev (173+x,5+y,2+y); call tracev (173+x,39+y,37+y);
\r
1095 call tracev (174+x,5+y,2+y); call tracev (174+x,39+y,37+y);
\r
1096 call tracev (175+x,6+y,2+y); call tracev (175+x,38+y,36+y);
\r
1097 call tracev (176+x,6+y,3+y); call tracev (176+x,38+y,36+y);
\r
1098 call tracev (177+x,6+y,3+y); call tracev (177+x,38+y,35+y);
\r
1099 call tracev (178+x,7+y,4+y); call tracev (178+x,37+y,35+y);
\r
1100 call tracev (179+x,7+y,4+y); call tracev (179+x,37+y,34+y);
\r
1101 call tracev (180+x,8+y,5+y); call tracev (180+x,36+y,33+y);
\r
1102 call tracev (181+x,9+y,6+y); call tracev (181+x,36+y,32+y);
\r
1103 call tracev (182+x,11+y,7+y); call tracev (182+x,35+y,31+y);
\r
1104 call tracev (183+x,13+y,8+y); call tracev (183+x,34+y,29+y);
\r
1105 call tracev (184+x,16+y,10+y); call tracev (184+x,32+y,26+y);
\r
1106 call tracev (184+x,39+y,37+y); call tracev (185+x,19+y,11+y);
\r
1107 call tracev (185+x,31+y,23+y); call tracev (185+x,39+y,35+y);
\r
1108 call tracev (186+x,29+y,13+y); call tracev (186+x,37+y,32+y);
\r
1109 call tracev (187+x,27+y,15+y); call tracev (187+x,35+y,30+y);
\r
1110 call tracev (188+x,33+y,27+y); call tracev (189+x,30+y,24+y);
\r
1111 call tracev (190+x,28+y,22+y); call tracev (191+x,29+y,19+y);
\r
1112 call tracev (192+x,30+y,17+y); call tracev (193+x,32+y,14+y);
\r
1113 call tracev (194+x,33+y,12+y); call tracev (195+x,35+y,9+y);
\r
1114 call tracev (196+x,36+y,6+y); call tracev (197+x,38+y,4+y);
\r
1115 call tracev (198+x,39+y,2+y); call tracev (199+x,38+y,3+y);
\r
1116 call tracev (200+x,36+y,5+y); call tracev (201+x,35+y,6+y);
\r
1117 call tracev (202+x,33+y,8+y); call tracev (203+x,32+y,9+y);
\r
1118 call tracev (204+x,30+y,11+y); call tracev (205+x,29+y,12+y);
\r
1119 call tracev (206+x,28+y,14+y); call tracev (207+x,30+y,12+y);
\r
1120 call tracev (208+x,33+y,11+y); call tracev (209+x,35+y,9+y);
\r
1121 call tracev (210+x,37+y,8+y); call tracev (211+x,39+y,6+y);
\r
1122 call tracev (212+x,39+y,5+y); call tracev (213+x,39+y,3+y);
\r
1123 call tracev (214+x,39+y,2+y); call tracev (215+x,39+y,4+y);
\r
1124 call tracev (216+x,39+y,6+y); call tracev (217+x,39+y,9+y);
\r
1125 call tracev (218+x,39+y,11+y); call tracev (219+x,39+y,13+y);
\r
1126 call tracev (220+x,39+y,16+y); call tracev (221+x,39+y,18+y);
\r
1127 call tracev (222+x,39+y,21+y); call tracev (223+x,39+y,23+y);
\r
1128 call tracev (224+x,39+y,25+y); call tracev (225+x,39+y,28+y);
\r
1129 call tracev (226+x,39+y,30+y); call tracev (227+x,39+y,33+y);
\r
1130 call tracev (228+x,39+y,35+y); call tracev (229+x,39+y,37+y);
\r
1134 unit dessinquick : procedure (x,y,c : integer);
\r
1137 call tracev (30+x,26+y,14+y); call tracev (31+x,28+y,12+y);
\r
1138 call tracev (32+x,30+y,10+y); call tracev (33+x,31+y,9+y);
\r
1139 call tracev (34+x,33+y,7+y); call tracev (35+x,34+y,6+y);
\r
1140 call tracev (36+x,35+y,5+y); call tracev (37+x,36+y,4+y);
\r
1141 call tracev (38+x,36+y,3+y); call tracev (39+x,37+y,3+y);
\r
1142 call tracev (40+x,37+y,2+y); call tracev (41+x,37+y,2+y);
\r
1143 call tracev (42+x,37+y,1+y); call tracev (43+x,38+y,1+y);
\r
1144 call tracev (44+x,38+y,1+y); call tracev (45+x,38+y,1+y);
\r
1145 call tracev (46+x,39+y,1+y); call tracev (47+x,39+y,1+y);
\r
1146 call tracev (48+x,4+y,1+y); call tracev (48+x,39+y,36+y);
\r
1147 call tracev (49+x,4+y,1+y); call tracev (49+x,39+y,36+y);
\r
1148 call tracev (50+x,4+y,1+y); call tracev (50+x,38+y,36+y);
\r
1149 call tracev (51+x,4+y,1+y); call tracev (51+x,38+y,36+y);
\r
1150 call tracev (52+x,4+y,1+y); call tracev (52+x,38+y,36+y);
\r
1151 call tracev (53+x,4+y,1+y); call tracev (53+x,38+y,35+y);
\r
1152 call tracev (54+x,4+y,1+y); call tracev (54+x,31+y,30+y);
\r
1153 call tracev (54+x,38+y,35+y); call tracev (55+x,5+y,2+y);
\r
1154 call tracev (55+x,31+y,28+y); call tracev (55+x,37+y,34+y);
\r
1155 call tracev (56+x,5+y,2+y); call tracev (56+x,32+y,29+y);
\r
1156 call tracev (56+x,37+y,34+y); call tracev (57+x,5+y,3+y);
\r
1157 call tracev (57+x,36+y,30+y); call tracev (58+x,6+y,3+y);
\r
1158 call tracev (58+x,36+y,31+y); call tracev (59+x,7+y,4+y);
\r
1159 call tracev (59+x,36+y,32+y); call tracev (60+x,7+y,5+y);
\r
1160 call tracev (60+x,36+y,33+y); call tracev (61+x,8+y,5+y);
\r
1161 call tracev (61+x,36+y,31+y); call tracev (62+x,10+y,6+y);
\r
1162 call tracev (62+x,33+y,29+y); call tracev (62+x,37+y,34+y);
\r
1163 call tracev (63+x,12+y,7+y); call tracev (63+x,32+y,28+y);
\r
1164 call tracev (63+x,38+y,35+y); call tracev (64+x,15+y,9+y);
\r
1165 call tracev (64+x,31+y,27+y); call tracev (64+x,38+y,35+y);
\r
1166 call tracev (65+x,29+y,11+y); call tracev (65+x,38+y,36+y);
\r
1167 call tracev (66+x,27+y,14+y); call tracev (66+x,38+y,36+y);
\r
1168 call tracev (67+x,21+y,18+y); call tracev (67+x,39+y,36+y);
\r
1169 call tracev (69+x,28+y,1+y); call tracev (70+x,30+y,1+y);
\r
1170 call tracev (71+x,32+y,1+y); call tracev (72+x,33+y,1+y);
\r
1171 call tracev (73+x,34+y,1+y); call tracev (74+x,35+y,1+y);
\r
1172 call tracev (75+x,36+y,1+y); call tracev (76+x,37+y,1+y);
\r
1173 call tracev (77+x,37+y,1+y); call tracev (78+x,38+y,1+y);
\r
1174 call tracev (79+x,38+y,1+y); call tracev (80+x,38+y,1+y);
\r
1175 call tracev (81+x,38+y,1+y); call tracev (82+x,39+y,1+y);
\r
1176 call tracev (83+x,39+y,1+y); call tracev (84+x,39+y,1+y);
\r
1177 call tracev (85+x,39+y,1+y); call tracev (86+x,39+y,1+y);
\r
1178 call tracev (87+x,39+y,36+y); call tracev (88+x,39+y,36+y);
\r
1179 call tracev (89+x,39+y,36+y); call tracev (90+x,38+y,36+y);
\r
1180 call tracev (91+x,38+y,36+y); call tracev (92+x,38+y,36+y);
\r
1181 call tracev (93+x,38+y,35+y); call tracev (94+x,38+y,35+y);
\r
1182 call tracev (95+x,38+y,34+y); call tracev (96+x,37+y,34+y);
\r
1183 call tracev (97+x,37+y,33+y); call tracev (98+x,36+y,33+y);
\r
1184 call tracev (99+x,35+y,32+y); call tracev (100+x,34+y,32+y);
\r
1185 call tracev (101+x,34+y,30+y); call tracev (102+x,33+y,28+y);
\r
1186 call tracev (103+x,32+y,1+y); call tracev (104+x,30+y,1+y);
\r
1187 call tracev (107+x,38+y,1+y); call tracev (108+x,38+y,1+y);
\r
1188 call tracev (109+x,38+y,1+y); call tracev (110+x,38+y,1+y);
\r
1189 call tracev (111+x,38+y,1+y); call tracev (112+x,38+y,1+y);
\r
1190 call tracev (113+x,38+y,1+y); call tracev (114+x,38+y,1+y);
\r
1191 call tracev (115+x,38+y,1+y); call tracev (116+x,38+y,1+y);
\r
1192 call tracev (117+x,38+y,1+y); call tracev (118+x,38+y,1+y);
\r
1193 call tracev (119+x,38+y,1+y); call tracev (120+x,38+y,1+y);
\r
1194 call tracev (121+x,38+y,1+y); call tracev (122+x,38+y,1+y);
\r
1195 call tracev (123+x,38+y,1+y); call tracev (124+x,38+y,1+y);
\r
1196 call tracev (126+x,22+y,18+y); call tracev (127+x,26+y,14+y);
\r
1197 call tracev (128+x,29+y,11+y); call tracev (129+x,31+y,9+y);
\r
1198 call tracev (130+x,33+y,7+y); call tracev (131+x,34+y,6+y);
\r
1199 call tracev (132+x,35+y,5+y); call tracev (133+x,35+y,5+y);
\r
1200 call tracev (134+x,36+y,4+y); call tracev (135+x,36+y,3+y);
\r
1201 call tracev (136+x,37+y,3+y); call tracev (137+x,37+y,2+y);
\r
1202 call tracev (138+x,37+y,2+y); call tracev (139+x,38+y,1+y);
\r
1203 call tracev (140+x,38+y,1+y); call tracev (141+x,38+y,1+y);
\r
1204 call tracev (142+x,38+y,1+y); call tracev (143+x,39+y,1+y);
\r
1205 call tracev (144+x,39+y,1+y); call tracev (145+x,4+y,1+y);
\r
1206 call tracev (145+x,39+y,36+y); call tracev (146+x,4+y,1+y);
\r
1207 call tracev (146+x,39+y,36+y); call tracev (147+x,4+y,1+y);
\r
1208 call tracev (147+x,39+y,36+y); call tracev (148+x,4+y,1+y);
\r
1209 call tracev (148+x,38+y,36+y); call tracev (149+x,4+y,1+y);
\r
1210 call tracev (149+x,38+y,36+y); call tracev (150+x,4+y,1+y);
\r
1211 call tracev (150+x,38+y,36+y); call tracev (151+x,4+y,2+y);
\r
1212 call tracev (151+x,38+y,36+y); call tracev (152+x,4+y,2+y);
\r
1213 call tracev (152+x,38+y,35+y); call tracev (153+x,5+y,2+y);
\r
1214 call tracev (153+x,37+y,35+y); call tracev (154+x,5+y,2+y);
\r
1215 call tracev (154+x,37+y,34+y); call tracev (155+x,6+y,3+y);
\r
1216 call tracev (155+x,36+y,34+y); call tracev (156+x,6+y,4+y);
\r
1217 call tracev (156+x,36+y,33+y); call tracev (157+x,7+y,4+y);
\r
1218 call tracev (157+x,35+y,33+y); call tracev (158+x,8+y,5+y);
\r
1219 call tracev (158+x,35+y,32+y); call tracev (159+x,10+y,5+y);
\r
1220 call tracev (159+x,34+y,30+y); call tracev (160+x,11+y,6+y);
\r
1221 call tracev (160+x,33+y,29+y); call tracev (161+x,11+y,8+y);
\r
1222 call tracev (161+x,32+y,29+y); call tracev (162+x,11+y,10+y);
\r
1223 call tracev (162+x,31+y,29+y); call tracev (164+x,38+y,1+y);
\r
1224 call tracev (165+x,38+y,1+y); call tracev (166+x,38+y,1+y);
\r
1225 call tracev (167+x,38+y,1+y); call tracev (168+x,38+y,1+y);
\r
1226 call tracev (169+x,38+y,1+y); call tracev (170+x,38+y,1+y);
\r
1227 call tracev (171+x,38+y,1+y); call tracev (172+x,38+y,1+y);
\r
1228 call tracev (173+x,38+y,1+y); call tracev (174+x,38+y,1+y);
\r
1229 call tracev (175+x,38+y,1+y); call tracev (176+x,38+y,1+y);
\r
1230 call tracev (177+x,38+y,1+y); call tracev (178+x,38+y,1+y);
\r
1231 call tracev (179+x,38+y,1+y); call tracev (180+x,38+y,1+y);
\r
1232 call tracev (181+x,38+y,1+y); call tracev (182+x,38+y,1+y);
\r
1233 call tracev (183+x,13+y,11+y); call tracev (184+x,13+y,11+y);
\r
1234 call tracev (185+x,13+y,10+y); call tracev (186+x,15+y,9+y);
\r
1235 call tracev (187+x,11+y,9+y); call tracev (187+x,17+y,12+y);
\r
1236 call tracev (188+x,11+y,8+y); call tracev (188+x,19+y,14+y);
\r
1237 call tracev (189+x,10+y,7+y); call tracev (189+x,21+y,16+y);
\r
1238 call tracev (190+x,9+y,6+y); call tracev (190+x,23+y,18+y);
\r
1239 call tracev (191+x,9+y,6+y); call tracev (191+x,25+y,20+y);
\r
1240 call tracev (192+x,8+y,5+y); call tracev (192+x,27+y,22+y);
\r
1241 call tracev (193+x,7+y,4+y); call tracev (193+x,29+y,24+y);
\r
1242 call tracev (194+x,7+y,4+y); call tracev (194+x,31+y,25+y);
\r
1243 call tracev (195+x,6+y,3+y); call tracev (195+x,33+y,27+y);
\r
1244 call tracev (196+x,5+y,2+y); call tracev (196+x,35+y,29+y);
\r
1245 call tracev (197+x,5+y,2+y); call tracev (197+x,37+y,31+y);
\r
1246 call tracev (198+x,4+y,1+y); call tracev (198+x,38+y,33+y);
\r
1247 call tracev (199+x,38+y,35+y); call tracev (200+x,38+y,37+y);
\r
1250 unit dessinbubble : procedure (x,y,c : integer);
\r
1253 call tracev (4+x,39+y,3+y); call tracev (5+x,39+y,3+y);
\r
1254 call tracev (6+x,39+y,3+y); call tracev (7+x,39+y,3+y);
\r
1255 call tracev (8+x,39+y,3+y); call tracev (9+x,39+y,3+y);
\r
1256 call tracev (10+x,39+y,3+y); call tracev (11+x,39+y,3+y);
\r
1257 call tracev (12+x,39+y,3+y); call tracev (13+x,39+y,3+y);
\r
1258 call tracev (14+x,39+y,3+y); call tracev (15+x,39+y,3+y);
\r
1259 call tracev (16+x,39+y,3+y); call tracev (17+x,39+y,3+y);
\r
1260 call tracev (18+x,39+y,3+y); call tracev (19+x,39+y,3+y);
\r
1261 call tracev (20+x,39+y,3+y); call tracev (21+x,39+y,3+y);
\r
1262 call tracev (22+x,5+y,3+y); call tracev (22+x,39+y,37+y);
\r
1263 call tracev (23+x,5+y,3+y); call tracev (23+x,22+y,21+y);
\r
1264 call tracev (23+x,39+y,37+y); call tracev (24+x,5+y,3+y);
\r
1265 call tracev (24+x,23+y,19+y); call tracev (24+x,39+y,37+y);
\r
1266 call tracev (25+x,5+y,3+y); call tracev (25+x,23+y,19+y);
\r
1267 call tracev (25+x,39+y,37+y); call tracev (26+x,5+y,3+y);
\r
1268 call tracev (26+x,23+y,19+y); call tracev (26+x,39+y,37+y);
\r
1269 call tracev (27+x,6+y,3+y); call tracev (27+x,23+y,19+y);
\r
1270 call tracev (27+x,39+y,37+y); call tracev (28+x,6+y,3+y);
\r
1271 call tracev (28+x,23+y,20+y); call tracev (28+x,39+y,37+y);
\r
1272 call tracev (29+x,6+y,3+y); call tracev (29+x,23+y,20+y);
\r
1273 call tracev (29+x,39+y,37+y); call tracev (30+x,6+y,3+y);
\r
1274 call tracev (30+x,23+y,20+y); call tracev (30+x,39+y,36+y);
\r
1275 call tracev (31+x,6+y,4+y); call tracev (31+x,23+y,20+y);
\r
1276 call tracev (31+x,39+y,36+y); call tracev (32+x,6+y,4+y);
\r
1277 call tracev (32+x,23+y,20+y); call tracev (32+x,39+y,36+y);
\r
1278 call tracev (33+x,7+y,4+y); call tracev (33+x,23+y,19+y);
\r
1279 call tracev (33+x,38+y,36+y); call tracev (34+x,7+y,5+y);
\r
1280 call tracev (34+x,24+y,19+y); call tracev (34+x,38+y,35+y);
\r
1281 call tracev (35+x,8+y,5+y); call tracev (35+x,21+y,18+y);
\r
1282 call tracev (35+x,26+y,22+y); call tracev (35+x,38+y,35+y);
\r
1283 call tracev (36+x,10+y,6+y); call tracev (36+x,21+y,18+y);
\r
1284 call tracev (36+x,28+y,23+y); call tracev (36+x,37+y,34+y);
\r
1285 call tracev (37+x,12+y,6+y); call tracev (37+x,20+y,14+y);
\r
1286 call tracev (37+x,30+y,24+y); call tracev (37+x,37+y,32+y);
\r
1287 call tracev (38+x,20+y,7+y); call tracev (38+x,36+y,26+y);
\r
1288 call tracev (39+x,19+y,9+y); call tracev (39+x,34+y,28+y);
\r
1289 call tracev (42+x,29+y,3+y); call tracev (43+x,32+y,3+y);
\r
1290 call tracev (44+x,34+y,3+y); call tracev (45+x,35+y,3+y);
\r
1291 call tracev (46+x,36+y,3+y); call tracev (47+x,37+y,3+y);
\r
1292 call tracev (48+x,38+y,3+y); call tracev (49+x,39+y,3+y);
\r
1293 call tracev (50+x,39+y,3+y); call tracev (51+x,40+y,3+y);
\r
1294 call tracev (52+x,40+y,3+y); call tracev (53+x,40+y,3+y);
\r
1295 call tracev (54+x,40+y,3+y); call tracev (55+x,40+y,3+y);
\r
1296 call tracev (56+x,40+y,3+y); call tracev (57+x,40+y,3+y);
\r
1297 call tracev (58+x,40+y,3+y); call tracev (59+x,40+y,3+y);
\r
1298 call tracev (60+x,40+y,38+y); call tracev (61+x,40+y,38+y);
\r
1299 call tracev (62+x,40+y,38+y); call tracev (63+x,40+y,37+y);
\r
1300 call tracev (64+x,40+y,37+y); call tracev (65+x,40+y,37+y);
\r
1301 call tracev (66+x,39+y,37+y); call tracev (67+x,39+y,37+y);
\r
1302 call tracev (68+x,39+y,36+y); call tracev (69+x,38+y,36+y);
\r
1303 call tracev (70+x,38+y,35+y); call tracev (71+x,37+y,35+y);
\r
1304 call tracev (72+x,37+y,34+y); call tracev (73+x,36+y,33+y);
\r
1305 call tracev (74+x,35+y,32+y); call tracev (75+x,34+y,29+y);
\r
1306 call tracev (76+x,33+y,3+y); call tracev (77+x,32+y,3+y);
\r
1307 call tracev (79+x,39+y,3+y); call tracev (80+x,39+y,3+y);
\r
1308 call tracev (81+x,39+y,3+y); call tracev (82+x,39+y,3+y);
\r
1309 call tracev (83+x,39+y,3+y); call tracev (84+x,39+y,3+y);
\r
1310 call tracev (85+x,39+y,3+y); call tracev (86+x,39+y,3+y);
\r
1311 call tracev (87+x,39+y,3+y); call tracev (88+x,39+y,3+y);
\r
1312 call tracev (89+x,39+y,3+y); call tracev (90+x,39+y,3+y);
\r
1313 call tracev (91+x,39+y,3+y); call tracev (92+x,39+y,3+y);
\r
1314 call tracev (93+x,39+y,3+y); call tracev (94+x,39+y,3+y);
\r
1315 call tracev (95+x,39+y,3+y); call tracev (96+x,39+y,3+y);
\r
1316 call tracev (97+x,39+y,3+y); call tracev (98+x,5+y,3+y);
\r
1317 call tracev (98+x,39+y,37+y); call tracev (99+x,5+y,3+y);
\r
1318 call tracev (99+x,22+y,20+y); call tracev (99+x,39+y,37+y);
\r
1319 call tracev (100+x,5+y,3+y); call tracev (100+x,23+y,19+y);
\r
1320 call tracev (100+x,39+y,37+y); call tracev (101+x,5+y,3+y);
\r
1321 call tracev (101+x,23+y,19+y); call tracev (101+x,39+y,37+y);
\r
1322 call tracev (102+x,5+y,3+y); call tracev (102+x,23+y,19+y);
\r
1323 call tracev (102+x,39+y,37+y); call tracev (103+x,6+y,3+y);
\r
1324 call tracev (103+x,23+y,19+y); call tracev (103+x,39+y,37+y);
\r
1325 call tracev (104+x,6+y,3+y); call tracev (104+x,23+y,20+y);
\r
1326 call tracev (104+x,39+y,37+y); call tracev (105+x,6+y,3+y);
\r
1327 call tracev (105+x,23+y,20+y); call tracev (105+x,39+y,37+y);
\r
1328 call tracev (106+x,6+y,4+y); call tracev (106+x,23+y,20+y);
\r
1329 call tracev (106+x,39+y,36+y); call tracev (107+x,6+y,4+y);
\r
1330 call tracev (107+x,23+y,20+y); call tracev (107+x,39+y,36+y);
\r
1331 call tracev (108+x,7+y,4+y); call tracev (108+x,23+y,19+y);
\r
1332 call tracev (108+x,39+y,36+y); call tracev (109+x,7+y,5+y);
\r
1333 call tracev (109+x,24+y,19+y); call tracev (109+x,38+y,36+y);
\r
1334 call tracev (110+x,7+y,5+y); call tracev (110+x,24+y,18+y);
\r
1335 call tracev (110+x,38+y,35+y); call tracev (111+x,8+y,5+y);
\r
1336 call tracev (111+x,21+y,18+y); call tracev (111+x,26+y,23+y);
\r
1337 call tracev (111+x,37+y,35+y); call tracev (112+x,10+y,6+y);
\r
1338 call tracev (112+x,21+y,17+y); call tracev (112+x,28+y,23+y);
\r
1339 call tracev (112+x,37+y,33+y); call tracev (113+x,20+y,6+y);
\r
1340 call tracev (113+x,36+y,24+y); call tracev (114+x,19+y,7+y);
\r
1341 call tracev (114+x,35+y,26+y); call tracev (115+x,17+y,9+y);
\r
1342 call tracev (115+x,34+y,28+y); call tracev (117+x,39+y,3+y);
\r
1343 call tracev (118+x,39+y,3+y); call tracev (119+x,39+y,3+y);
\r
1344 call tracev (120+x,39+y,3+y); call tracev (121+x,39+y,3+y);
\r
1345 call tracev (122+x,39+y,3+y); call tracev (123+x,39+y,3+y);
\r
1346 call tracev (124+x,39+y,3+y); call tracev (125+x,39+y,3+y);
\r
1347 call tracev (126+x,39+y,3+y); call tracev (127+x,39+y,3+y);
\r
1348 call tracev (128+x,39+y,3+y); call tracev (129+x,39+y,3+y);
\r
1349 call tracev (130+x,39+y,3+y); call tracev (131+x,39+y,3+y);
\r
1350 call tracev (132+x,39+y,3+y); call tracev (133+x,39+y,3+y);
\r
1351 call tracev (134+x,39+y,3+y); call tracev (135+x,39+y,3+y);
\r
1352 call tracev (136+x,5+y,3+y); call tracev (136+x,39+y,37+y);
\r
1353 call tracev (137+x,5+y,3+y); call tracev (137+x,22+y,20+y);
\r
1354 call tracev (137+x,39+y,37+y); call tracev (138+x,5+y,3+y);
\r
1355 call tracev (138+x,23+y,19+y); call tracev (138+x,39+y,37+y);
\r
1356 call tracev (139+x,5+y,3+y); call tracev (139+x,23+y,19+y);
\r
1357 call tracev (139+x,39+y,37+y); call tracev (140+x,5+y,3+y);
\r
1358 call tracev (140+x,23+y,19+y); call tracev (140+x,39+y,37+y);
\r
1359 call tracev (141+x,6+y,3+y); call tracev (141+x,23+y,19+y);
\r
1360 call tracev (141+x,39+y,37+y); call tracev (142+x,6+y,3+y);
\r
1361 call tracev (142+x,23+y,20+y); call tracev (142+x,39+y,37+y);
\r
1362 call tracev (143+x,6+y,3+y); call tracev (143+x,23+y,20+y);
\r
1363 call tracev (143+x,39+y,37+y); call tracev (144+x,6+y,4+y);
\r
1364 call tracev (144+x,23+y,20+y); call tracev (144+x,39+y,36+y);
\r
1365 call tracev (145+x,6+y,4+y); call tracev (145+x,23+y,20+y);
\r
1366 call tracev (145+x,39+y,36+y); call tracev (146+x,7+y,4+y);
\r
1367 call tracev (146+x,23+y,19+y); call tracev (146+x,39+y,36+y);
\r
1368 call tracev (147+x,7+y,5+y); call tracev (147+x,24+y,19+y);
\r
1369 call tracev (147+x,38+y,36+y); call tracev (148+x,7+y,5+y);
\r
1370 call tracev (148+x,24+y,18+y); call tracev (148+x,38+y,35+y);
\r
1371 call tracev (149+x,8+y,5+y); call tracev (149+x,21+y,18+y);
\r
1372 call tracev (149+x,26+y,23+y); call tracev (149+x,37+y,35+y);
\r
1373 call tracev (150+x,10+y,6+y); call tracev (150+x,21+y,17+y);
\r
1374 call tracev (150+x,28+y,23+y); call tracev (150+x,37+y,33+y);
\r
1375 call tracev (151+x,20+y,6+y); call tracev (151+x,36+y,24+y);
\r
1376 call tracev (152+x,19+y,7+y); call tracev (152+x,35+y,26+y);
\r
1377 call tracev (153+x,17+y,9+y); call tracev (153+x,34+y,28+y);
\r
1378 call tracev (155+x,39+y,3+y); call tracev (156+x,39+y,3+y);
\r
1379 call tracev (157+x,39+y,3+y); call tracev (158+x,39+y,3+y);
\r
1380 call tracev (159+x,39+y,3+y); call tracev (160+x,39+y,3+y);
\r
1381 call tracev (161+x,39+y,3+y); call tracev (162+x,39+y,3+y);
\r
1382 call tracev (163+x,39+y,3+y); call tracev (164+x,39+y,3+y);
\r
1383 call tracev (165+x,39+y,3+y); call tracev (166+x,39+y,3+y);
\r
1384 call tracev (167+x,39+y,3+y); call tracev (168+x,39+y,3+y);
\r
1385 call tracev (169+x,39+y,3+y); call tracev (170+x,39+y,3+y);
\r
1386 call tracev (171+x,39+y,3+y); call tracev (172+x,39+y,3+y);
\r
1387 call tracev (173+x,39+y,3+y); call tracev (174+x,39+y,37+y);
\r
1388 call tracev (175+x,39+y,37+y); call tracev (176+x,39+y,37+y);
\r
1389 call tracev (177+x,39+y,37+y); call tracev (178+x,39+y,37+y);
\r
1390 call tracev (179+x,39+y,37+y); call tracev (180+x,39+y,37+y);
\r
1391 call tracev (181+x,39+y,37+y); call tracev (182+x,39+y,37+y);
\r
1392 call tracev (183+x,39+y,37+y); call tracev (184+x,39+y,37+y);
\r
1393 call tracev (185+x,39+y,37+y); call tracev (186+x,39+y,37+y);
\r
1394 call tracev (187+x,39+y,37+y); call tracev (188+x,39+y,37+y);
\r
1395 call tracev (190+x,39+y,3+y); call tracev (191+x,39+y,3+y);
\r
1396 call tracev (192+x,39+y,3+y); call tracev (193+x,39+y,3+y);
\r
1397 call tracev (194+x,39+y,3+y); call tracev (195+x,39+y,3+y);
\r
1398 call tracev (196+x,39+y,3+y); call tracev (197+x,39+y,3+y);
\r
1399 call tracev (198+x,39+y,3+y); call tracev (199+x,39+y,3+y);
\r
1400 call tracev (200+x,39+y,3+y); call tracev (201+x,39+y,3+y);
\r
1401 call tracev (202+x,39+y,3+y); call tracev (203+x,39+y,3+y);
\r
1402 call tracev (204+x,39+y,3+y); call tracev (205+x,39+y,3+y);
\r
1403 call tracev (206+x,39+y,3+y); call tracev (207+x,39+y,3+y);
\r
1404 call tracev (208+x,39+y,3+y); call tracev (209+x,5+y,3+y);
\r
1405 call tracev (209+x,16+y,13+y); call tracev (209+x,39+y,37+y);
\r
1406 call tracev (210+x,5+y,3+y); call tracev (210+x,16+y,13+y);
\r
1407 call tracev (210+x,39+y,37+y); call tracev (211+x,5+y,3+y);
\r
1408 call tracev (211+x,16+y,13+y); call tracev (211+x,39+y,37+y);
\r
1409 call tracev (212+x,5+y,3+y); call tracev (212+x,16+y,13+y);
\r
1410 call tracev (212+x,39+y,37+y); call tracev (213+x,5+y,3+y);
\r
1411 call tracev (213+x,16+y,13+y); call tracev (213+x,39+y,37+y);
\r
1412 call tracev (214+x,5+y,3+y); call tracev (214+x,16+y,13+y);
\r
1413 call tracev (214+x,39+y,37+y); call tracev (215+x,5+y,3+y);
\r
1414 call tracev (215+x,16+y,13+y); call tracev (215+x,39+y,37+y);
\r
1415 call tracev (216+x,5+y,3+y); call tracev (216+x,16+y,13+y);
\r
1416 call tracev (216+x,39+y,37+y); call tracev (217+x,5+y,3+y);
\r
1417 call tracev (217+x,16+y,13+y); call tracev (217+x,39+y,37+y);
\r
1418 call tracev (218+x,5+y,3+y); call tracev (218+x,16+y,13+y);
\r
1419 call tracev (218+x,39+y,37+y); call tracev (219+x,5+y,3+y);
\r
1420 call tracev (219+x,16+y,13+y); call tracev (219+x,39+y,37+y);
\r
1421 call tracev (220+x,5+y,3+y); call tracev (220+x,16+y,13+y);
\r
1422 call tracev (220+x,39+y,37+y); call tracev (221+x,5+y,3+y);
\r
1423 call tracev (221+x,16+y,13+y); call tracev (221+x,39+y,37+y);
\r
1424 call tracev (222+x,5+y,3+y); call tracev (222+x,16+y,13+y);
\r
1425 call tracev (222+x,39+y,37+y); call tracev (223+x,16+y,13+y);
\r
1426 call tracev (223+x,39+y,37+y); call tracev (224+x,16+y,13+y);
\r
1427 call tracev (224+x,39+y,37+y); call tracev (225+x,39+y,37+y);
\r
1430 unit dessinsort : procedure (x,y,c : integer);
\r
1433 call tracev (45+x,19+y,11+y); call tracev (45+x,35+y,33+y);
\r
1434 call tracev (46+x,21+y,9+y); call tracev (46+x,36+y,33+y);
\r
1435 call tracev (47+x,22+y,7+y); call tracev (47+x,37+y,33+y);
\r
1436 call tracev (48+x,23+y,6+y); call tracev (48+x,37+y,34+y);
\r
1437 call tracev (49+x,24+y,6+y); call tracev (49+x,38+y,35+y);
\r
1438 call tracev (50+x,25+y,5+y); call tracev (50+x,38+y,36+y);
\r
1439 call tracev (51+x,25+y,4+y); call tracev (51+x,39+y,36+y);
\r
1440 call tracev (52+x,26+y,3+y); call tracev (52+x,39+y,37+y);
\r
1441 call tracev (53+x,27+y,3+y); call tracev (53+x,39+y,37+y);
\r
1442 call tracev (54+x,27+y,3+y); call tracev (54+x,39+y,37+y);
\r
1443 call tracev (55+x,28+y,3+y); call tracev (55+x,40+y,37+y);
\r
1444 call tracev (56+x,29+y,3+y); call tracev (56+x,40+y,37+y);
\r
1445 call tracev (57+x,30+y,3+y); call tracev (57+x,40+y,37+y);
\r
1446 call tracev (58+x,30+y,2+y); call tracev (58+x,40+y,36+y);
\r
1447 call tracev (59+x,32+y,2+y); call tracev (59+x,40+y,34+y);
\r
1448 call tracev (60+x,40+y,2+y); call tracev (61+x,6+y,2+y);
\r
1449 call tracev (61+x,40+y,12+y); call tracev (62+x,6+y,2+y);
\r
1450 call tracev (62+x,39+y,13+y); call tracev (63+x,5+y,2+y);
\r
1451 call tracev (63+x,39+y,13+y); call tracev (64+x,5+y,2+y);
\r
1452 call tracev (64+x,39+y,14+y); call tracev (65+x,5+y,2+y);
\r
1453 call tracev (65+x,39+y,15+y); call tracev (66+x,5+y,3+y);
\r
1454 call tracev (66+x,39+y,15+y); call tracev (67+x,5+y,3+y);
\r
1455 call tracev (67+x,38+y,16+y); call tracev (68+x,5+y,3+y);
\r
1456 call tracev (68+x,38+y,17+y); call tracev (69+x,6+y,3+y);
\r
1457 call tracev (69+x,38+y,17+y); call tracev (70+x,7+y,4+y);
\r
1458 call tracev (70+x,37+y,18+y); call tracev (71+x,8+y,4+y);
\r
1459 call tracev (71+x,37+y,19+y); call tracev (72+x,9+y,5+y);
\r
1460 call tracev (72+x,36+y,21+y); call tracev (73+x,9+y,6+y);
\r
1461 call tracev (73+x,34+y,22+y); call tracev (74+x,9+y,8+y);
\r
1462 call tracev (74+x,31+y,23+y); call tracev (75+x,24+y,20+y);
\r
1463 call tracev (76+x,27+y,16+y); call tracev (77+x,30+y,12+y);
\r
1464 call tracev (78+x,32+y,10+y); call tracev (79+x,34+y,8+y);
\r
1465 call tracev (80+x,35+y,7+y); call tracev (81+x,36+y,6+y);
\r
1466 call tracev (82+x,36+y,6+y); call tracev (83+x,37+y,5+y);
\r
1467 call tracev (84+x,37+y,5+y); call tracev (85+x,38+y,4+y);
\r
1468 call tracev (86+x,38+y,4+y); call tracev (87+x,38+y,4+y);
\r
1469 call tracev (88+x,39+y,3+y); call tracev (89+x,39+y,3+y);
\r
1470 call tracev (90+x,39+y,3+y); call tracev (91+x,39+y,2+y);
\r
1471 call tracev (92+x,40+y,2+y); call tracev (93+x,40+y,2+y);
\r
1472 call tracev (94+x,5+y,2+y); call tracev (94+x,40+y,37+y);
\r
1473 call tracev (95+x,5+y,2+y); call tracev (95+x,40+y,37+y);
\r
1474 call tracev (96+x,5+y,2+y); call tracev (96+x,40+y,37+y);
\r
1475 call tracev (97+x,5+y,3+y); call tracev (97+x,39+y,37+y);
\r
1476 call tracev (98+x,5+y,3+y); call tracev (98+x,39+y,37+y);
\r
1477 call tracev (99+x,5+y,3+y); call tracev (99+x,39+y,37+y);
\r
1478 call tracev (100+x,6+y,3+y); call tracev (100+x,38+y,36+y);
\r
1479 call tracev (101+x,6+y,4+y); call tracev (101+x,38+y,36+y);
\r
1480 call tracev (102+x,7+y,4+y); call tracev (102+x,38+y,36+y);
\r
1481 call tracev (103+x,7+y,4+y); call tracev (103+x,38+y,35+y);
\r
1482 call tracev (104+x,8+y,5+y); call tracev (104+x,37+y,35+y);
\r
1483 call tracev (105+x,9+y,5+y); call tracev (105+x,37+y,34+y);
\r
1484 call tracev (106+x,10+y,6+y); call tracev (106+x,36+y,33+y);
\r
1485 call tracev (107+x,11+y,6+y); call tracev (107+x,35+y,31+y);
\r
1486 call tracev (108+x,12+y,7+y); call tracev (108+x,34+y,30+y);
\r
1487 call tracev (109+x,14+y,8+y); call tracev (109+x,32+y,28+y);
\r
1488 call tracev (110+x,16+y,10+y); call tracev (110+x,31+y,26+y);
\r
1489 call tracev (111+x,29+y,12+y); call tracev (112+x,27+y,16+y);
\r
1490 call tracev (114+x,39+y,2+y); call tracev (115+x,39+y,2+y);
\r
1491 call tracev (116+x,39+y,2+y); call tracev (117+x,39+y,2+y);
\r
1492 call tracev (118+x,39+y,2+y); call tracev (119+x,39+y,2+y);
\r
1493 call tracev (120+x,39+y,2+y); call tracev (121+x,39+y,2+y);
\r
1494 call tracev (122+x,39+y,2+y); call tracev (123+x,39+y,2+y);
\r
1495 call tracev (124+x,39+y,2+y); call tracev (125+x,39+y,2+y);
\r
1496 call tracev (126+x,39+y,2+y); call tracev (127+x,39+y,2+y);
\r
1497 call tracev (128+x,39+y,2+y); call tracev (129+x,39+y,2+y);
\r
1498 call tracev (130+x,39+y,2+y); call tracev (131+x,39+y,2+y);
\r
1499 call tracev (132+x,39+y,2+y); call tracev (133+x,5+y,2+y);
\r
1500 call tracev (133+x,31+y,27+y); call tracev (134+x,5+y,2+y);
\r
1501 call tracev (134+x,32+y,27+y); call tracev (135+x,5+y,3+y);
\r
1502 call tracev (135+x,29+y,27+y); call tracev (135+x,33+y,30+y);
\r
1503 call tracev (136+x,5+y,3+y); call tracev (136+x,30+y,27+y);
\r
1504 call tracev (136+x,34+y,31+y); call tracev (137+x,5+y,3+y);
\r
1505 call tracev (137+x,30+y,27+y); call tracev (137+x,34+y,32+y);
\r
1506 call tracev (138+x,6+y,3+y); call tracev (138+x,30+y,27+y);
\r
1507 call tracev (138+x,35+y,32+y); call tracev (139+x,6+y,3+y);
\r
1508 call tracev (139+x,29+y,27+y); call tracev (139+x,36+y,33+y);
\r
1509 call tracev (140+x,6+y,3+y); call tracev (140+x,29+y,27+y);
\r
1510 call tracev (140+x,36+y,34+y); call tracev (141+x,6+y,3+y);
\r
1511 call tracev (141+x,29+y,27+y); call tracev (141+x,37+y,35+y);
\r
1512 call tracev (142+x,6+y,4+y); call tracev (142+x,29+y,27+y);
\r
1513 call tracev (142+x,37+y,35+y); call tracev (143+x,7+y,4+y);
\r
1514 call tracev (143+x,29+y,26+y); call tracev (143+x,38+y,35+y);
\r
1515 call tracev (144+x,7+y,4+y); call tracev (144+x,28+y,25+y);
\r
1516 call tracev (144+x,38+y,35+y); call tracev (145+x,8+y,5+y);
\r
1517 call tracev (145+x,27+y,24+y); call tracev (145+x,38+y,36+y);
\r
1518 call tracev (146+x,5+y,2+y); call tracev (146+x,10+y,6+y);
\r
1519 call tracev (146+x,26+y,24+y); call tracev (146+x,38+y,36+y);
\r
1520 call tracev (147+x,5+y,2+y); call tracev (147+x,12+y,7+y);
\r
1521 call tracev (147+x,25+y,21+y); call tracev (147+x,39+y,37+y);
\r
1522 call tracev (148+x,5+y,2+y); call tracev (148+x,24+y,8+y);
\r
1523 call tracev (148+x,39+y,37+y); call tracev (149+x,5+y,2+y);
\r
1524 call tracev (149+x,23+y,10+y); call tracev (149+x,39+y,37+y);
\r
1525 call tracev (150+x,5+y,2+y); call tracev (150+x,21+y,12+y);
\r
1526 call tracev (150+x,39+y,37+y); call tracev (151+x,5+y,2+y);
\r
1527 call tracev (152+x,5+y,2+y); call tracev (153+x,5+y,2+y);
\r
1528 call tracev (154+x,5+y,2+y); call tracev (155+x,5+y,2+y);
\r
1529 call tracev (156+x,39+y,2+y); call tracev (157+x,39+y,2+y);
\r
1530 call tracev (158+x,39+y,2+y); call tracev (159+x,39+y,2+y);
\r
1531 call tracev (160+x,39+y,2+y); call tracev (161+x,39+y,2+y);
\r
1532 call tracev (162+x,39+y,2+y); call tracev (163+x,39+y,2+y);
\r
1533 call tracev (164+x,39+y,2+y); call tracev (165+x,39+y,2+y);
\r
1534 call tracev (166+x,39+y,2+y); call tracev (167+x,39+y,2+y);
\r
1535 call tracev (168+x,39+y,2+y); call tracev (169+x,39+y,2+y);
\r
1536 call tracev (170+x,39+y,2+y); call tracev (171+x,39+y,2+y);
\r
1537 call tracev (172+x,39+y,2+y); call tracev (173+x,39+y,2+y);
\r
1538 call tracev (174+x,39+y,2+y); call tracev (175+x,5+y,2+y);
\r
1539 call tracev (176+x,5+y,2+y); call tracev (177+x,5+y,2+y);
\r
1540 call tracev (178+x,5+y,2+y); call tracev (179+x,5+y,2+y);
\r
1541 call tracev (180+x,5+y,2+y); call tracev (181+x,5+y,2+y);
\r
1542 call tracev (182+x,5+y,2+y); call tracev (183+x,5+y,2+y);
\r
1543 call tracev (184+x,5+y,2+y);
\r
1546 unit BOUTON : procedure(x,y,x2,y2,col_font,col1,col2:integer);
\r
1550 call RECTANGLE_PLEIN (x+2,y+2,x2-2,y2-2,col_font,col_font);
\r
1553 call color (col1);
\r
1554 call move (x+i,y);
\r
1555 call draw (x+i,y2-i);
\r
1556 call move (x,y+i);
\r
1557 call draw (x2-i,y+i);
\r
1558 call color (col2);
\r
1559 call move (x2,y2-i);
\r
1560 call draw (x+i,y2-i);
\r
1561 call move (x2-i,y2);
\r
1562 call draw (x2-i,y+i);
\r
1565 call RECTANGLE (x-1,y-1,x2+1,y2+1);
\r
1567 call move (x2,y2);
\r
1568 call draw (x2-2,y2-2);
\r
1569 call color (col2);
\r
1570 call move (x+3,y+3);
\r
1571 call draw (x2-3,y+3);
\r
1572 call move (x+3,y+3);
\r
1573 call draw (x+3,y2-3);
\r
1574 call color (col1);
\r
1575 call move (x2-3,y2-3);
\r
1576 call draw (x+4,y2-3);
\r
1577 call move (x2-3,y2-3);
\r
1578 call draw (x2-3,y+4);
\r
1581 UNIT RECTANGLE_PLEINV : procedure(x_h,y_h,x_b,y_b,
\r
1582 coul,contour:integer);
\r
1587 call color (coul);
\r
1588 for i:= y_h to y_b
\r
1590 call move (x_h,i);
\r
1593 call color (contour);
\r
1594 call move(x_h,y_h);
\r
1595 call draw(x_b,y_h);
\r
1596 call draw(x_b,y_b);
\r
1597 call draw(x_h,y_b);
\r
1598 call draw(x_h,y_h);
\r
1599 END RECTANGLE_PLEINV;
\r
1602 unit aff_nb : procedure (x,y,nb,dec,c : integer);
\r
1607 call rectangle_plein (x-2,y-2,x+dec*8+9,y+8,0,15);
\r
1609 for i := 0 to dec do
\r
1610 call move (x+(dec-i)*8,y);
\r
1611 call hascii (48+ (nb div k) mod 10);
\r
1616 unit CHARGE_FOND : procedure;
\r
1624 call move (0,i*32);
\r
1628 call move (i*40,0);
\r
1634 call move (0,i*32+29);
\r
1636 call move (0,i*32+30);
\r
1640 call move (i*40+37,0);
\r
1642 call move (i*40+38,0);
\r
1647 call move (0,i*32+31);
\r
1651 call move (i*40+39,0);
\r
1656 call move (0,i*32);
\r
1660 call move (i*40,0);
\r
1663 call RECTANGLE_PLEIN (70,80,570,300,1,1);
\r
1664 call RECTANGLE_PLEIN (105,301,581,309,8,8);
\r
1665 call RECTANGLE_PLEIN (570,105,581,301,8,8);
\r
1668 unit AFF_OPTIONS : procedure;
\r
1671 (* definition des boutons *)
\r
1672 call BOUTON (150,100,190,125,7,15,8);
\r
1673 call BOUTON (150,155,190,180,7,15,8);
\r
1674 call BOUTON (150,210,190,235,7,15,8);
\r
1675 call BOUTON (150,265,190,290,7,15,8);
\r
1676 (* definition des barres de textes*)
\r
1677 call RECTANGLE_PLEIN (230,100,500,125,7,15);
\r
1678 call RECTANGLE_PLEIN (230,155,500,180,7,15);
\r
1679 call RECTANGLE_PLEIN (230,210,500,235,7,15);
\r
1680 call RECTANGLE_PLEIN (230,265,500,290,7,15);
\r
1684 call move (249,110);
\r
1685 call outstring ("CHOIX DES ELEMENTS A TRIER");
\r
1686 call move (249,165);
\r
1687 call outstring ("GENERER DES NOUVELLES VALEURS");
\r
1688 call move (249,220);
\r
1689 call outstring ("TRI DES ELEMENTS ");
\r
1690 call move (249,275);
\r
1691 call outstring ("QUITTER LE PROGRAMME");
\r
1693 call move (251,111);
\r
1694 call outstring ("CHOIX DES ELEMENTS A TRIER");
\r
1695 call move (251,166);
\r
1696 call outstring ("GENERER DES NOUVELLES VALEURS");
\r
1697 call move (251,221);
\r
1698 call outstring ("TRI DES ELEMENTS ");
\r
1699 call move (251,276);
\r
1700 call outstring ("QUITTER LE PROGRAMME");
\r
1703 unit DELAI : procedure ( n : integer);
\r
1707 for i := 1 to n do od;
\r
1710 unit CHOIX_UTIL : procedure ;
\r
1713 pref STR_ELEMENTS block
\r
1715 x,y,p,choix_courant,nbelems : integer,
\r
1716 gauche,droit,centre : boolean;
\r
1718 call dessinmenu (250,10,8);
\r
1719 call dessinmenu (247,7,4);
\r
1722 choix_courant := 1;
\r
1727 call setwindow (70,570,80,300);
\r
1729 call getpress (0,x,y,p,gauche,droit,centre);
\r
1732 if (x>150 and x<190) then
\r
1733 if (y>100 and y<125) then
\r
1734 call BOUTON (150,100,190,125,7,8,15);
\r
1735 call DELAI (2000);
\r
1736 call BOUTON (150,100,190,125,7,15,8);
\r
1737 call CHOIX_ELEM(choix_courant,nbelems);
\r
1740 call dessinmenu (250,10,8);
\r
1741 call dessinmenu (247,7,4);
\r
1743 if (y>155 and y<180) then
\r
1744 call BOUTON (150,155,190,180,7,8,15);
\r
1745 call DELAI (2000);
\r
1746 call BOUTON (150,155,190,180,7,15,8);
\r
1747 call CHOIX_NB_ELEM(nbelems,choix_courant);
\r
1750 call dessinmenu (250,10,8);
\r
1751 call dessinmenu (247,7,4);
\r
1753 if (y>210 and y<235) then
\r
1754 call BOUTON (150,210,190,235,7,8,15);
\r
1755 call DELAI (2000);
\r
1756 call BOUTON (150,210,190,235,7,15,8);
\r
1757 call AFF_TRI(choix_courant,nbelems);
\r
1761 call dessinmenu (250,10,8);
\r
1762 call dessinmenu (247,7,4);
\r
1764 if (y>265 and y<290) then
\r
1765 call BOUTON (150,265,190,290,7,8,15);
\r
1766 call DELAI (2000);
\r
1767 call BOUTON (150,265,190,290,7,15,8);
\r
1776 unit AFF_CONTOUR_CHOIX : procedure (choix_courant,coul : integer);
\r
1778 call color (coul);
\r
1779 case choix_courant
\r
1780 when 1: call RECTANGLE (229,89,501,146);
\r
1781 call RECTANGLE (228,88,502,147);
\r
1782 call RECTANGLE (227,87,503,148);
\r
1783 when 2: call RECTANGLE (229,159,501,216);
\r
1784 call RECTANGLE (228,158,502,217);
\r
1785 call RECTANGLE (227,157,503,218);
\r
1786 when 3: call RECTANGLE (229,229,501,286);
\r
1787 call RECTANGLE (228,228,502,287);
\r
1788 call RECTANGLE (227,227,503,288);
\r
1790 end AFF_CONTOUR_CHOIX;
\r
1792 unit GRAPH_ELEM : procedure ;
\r
1794 (* histogrammes *)
\r
1795 call BOUTON (150,105,190,130,7,15,8);
\r
1796 call RECTANGLE_PLEIN (230,90,500,132,7,8);
\r
1797 call RECTANGLE_PLEIN (250,100,270,130,4,4);
\r
1798 call RECTANGLE_PLEIN (280,120,300,130,2,2);
\r
1799 call RECTANGLE_PLEIN (310,110,330,130,13,13);
\r
1800 call RECTANGLE_PLEIN (340,95,360,130,9,9);
\r
1801 call RECTANGLE_PLEIN (370,105,390,130,1,1);
\r
1802 call RECTANGLE_PLEIN (400,108,420,130,12,12);
\r
1803 call RECTANGLE_PLEIN (430,115,450,130,10,10);
\r
1804 call RECTANGLE_PLEIN (460,100,480,130,11,11);
\r
1805 call RECTANGLE_PLEIN (230,132,500,145,7,8);
\r
1807 call move (270,136);
\r
1808 call outstring ("H I S T O G R A M M E S");
\r
1810 call move (271,137);
\r
1811 call outstring ("H I S T O G R A M M E S");
\r
1813 call BOUTON (150,175,190,200,7,15,8);
\r
1814 call RECTANGLE_PLEIN (230,160,500,202,7,8);
\r
1815 call RECTANGLE_PLEIN (230,202,500,215,7,8);
\r
1817 call move (240,170);
\r
1818 call outstring ("X^2+3");
\r
1820 call move (270,185);
\r
1821 call outstring ("-4X^5+5X^4-2X^3+6");
\r
1823 call move (300,165);
\r
1824 call outstring ("6X+5");
\r
1826 call move (405,175);
\r
1827 call outstring ("-X^2+2X-3");
\r
1829 call move (295,206);
\r
1830 call outstring ("P O L Y N O M E S");
\r
1832 call move (296,207);
\r
1833 call outstring ("P O L Y N O M E S");
\r
1835 call RECTANGLE_PLEIN (230,230,500,272,7,8);
\r
1836 call BOUTON (150,245,190,270,7,15,8);
\r
1837 call RECTANGLE_PLEIN (250,235,290,267,13,13);
\r
1838 call RECTANGLE_PLEIN (300,255,330,270,12,12);
\r
1839 call RECTANGLE_PLEIN (340,240,400,272,10,10);
\r
1840 call RECTANGLE_PLEIN (410,232,430,265,9,9);
\r
1841 call RECTANGLE_PLEIN (440,243,480,260,4,4);
\r
1842 call RECTANGLE_PLEIN (230,272,500,285,7,8);
\r
1844 call move (305,276);
\r
1845 call outstring ("S U R F A C E S");
\r
1847 call move (306,277);
\r
1848 call outstring ("S U R F A C E S");
\r
1851 unit CHOIX_ELEM : procedure(inout choix_courant,nbelems : integer);
\r
1855 gauche,droit,centre : boolean;
\r
1857 call EFFACE (70,80,570,300,9,1,15);
\r
1859 call dessinelem (206,20,8);
\r
1860 call dessinelem (203,17,4);
\r
1862 call AFF_CONTOUR_CHOIX(choix_courant,15);
\r
1863 call BOUTON (80,175,130,200,7,15,8);
\r
1864 call move (92,185);
\r
1866 call outstring ("O K");
\r
1869 call getpress (0,x,y,p,gauche,droit,centre);
\r
1872 if ( x >150 and x <190 and y>105 and y<130) then
\r
1873 call BOUTON (150,105,190,130,7,8,15);
\r
1874 call DELAI (2000);
\r
1875 call BOUTON (150,105,190,130,7,15,8);
\r
1876 call AFF_CONTOUR_CHOIX(1,15);
\r
1877 call AFF_CONTOUR_CHOIX(2,1);
\r
1878 call AFF_CONTOUR_CHOIX(3,1);
\r
1879 choix_courant := 1;
\r
1883 if ( x >150 and x <190 and y>175 and y<200) then
\r
1884 call BOUTON (150,175,190,200,7,8,15);
\r
1885 call DELAI (2000);
\r
1886 call BOUTON (150,175,190,200,7,15,8);
\r
1887 call AFF_CONTOUR_CHOIX(2,15);
\r
1888 call AFF_CONTOUR_CHOIX(1,1);
\r
1889 call AFF_CONTOUR_CHOIX(3,1);
\r
1890 choix_courant := 2;
\r
1893 if ( x >150 and x <190 and y>245 and y<270) then
\r
1894 call BOUTON (150,245,190,270,7,8,15);
\r
1895 call DELAI (2000);
\r
1896 call BOUTON (150,245,190,270,7,15,8);
\r
1897 call AFF_CONTOUR_CHOIX(1,1);
\r
1898 call AFF_CONTOUR_CHOIX(2,1);
\r
1899 call AFF_CONTOUR_CHOIX(3,15);
\r
1900 choix_courant := 3;
\r
1903 if (x>80 and x<130 and y>130 and y<200) then
\r
1904 call BOUTON (80,175,130,200,7,8,15);
\r
1905 call move (92,185);
\r
1907 call outstring ("O K");
\r
1908 call DELAI (2000);
\r
1909 call BOUTON (80,175,130,200,7,15,8);
\r
1910 call EFFACE(70,80,570,300,9,1,15);
\r
1913 call showcursor ;
\r
1918 unit AFF_C : procedure (coul,nb_bouton : integer);
\r
1921 call color (coul);
\r
1924 call RECTANGLE (199,159,241,186);
\r
1925 call RECTANGLE (198,158,242,187);
\r
1926 call RECTANGLE (197,157,243,188);
\r
1928 call RECTANGLE (299,159,341,186);
\r
1929 call RECTANGLE (298,158,342,187);
\r
1930 call RECTANGLE (297,157,343,188);
\r
1932 call RECTANGLE (399,159,441,186);
\r
1933 call RECTANGLE (398,158,442,187);
\r
1934 call RECTANGLE (397,157,443,188);
\r
1938 unit GERE_CHOIX_NB : procedure (choix_courant :integer
\r
1939 ;inout nbelems : integer);
\r
1942 gauche,droit,centre : boolean;
\r
1945 call setwindow (70,570,80,300);
\r
1947 call getpress (0,x,y,p,gauche,droit,centre);
\r
1950 if ( x >200 and x <240 and y>200 and y<225) then
\r
1951 call BOUTON (200,200,240,225,7,8,15);
\r
1952 call DELAI (2000);
\r
1953 call BOUTON (200,200,240,225,7,15,8);
\r
1954 case choix_courant
\r
1955 when 1 : nbelems := 30;
\r
1956 when 2 : nbelems := 5;
\r
1957 when 3 : nbelems := 15;
\r
1963 if ( x >300 and x <340 and y>200 and y<225) then
\r
1964 call BOUTON (300,200,340,225,7,8,15);
\r
1965 call DELAI (2000);
\r
1966 call BOUTON (300,200,340,225,7,15,8);
\r
1967 case choix_courant
\r
1968 when 1 : nbelems := 100;
\r
1969 when 2 : nbelems := 10;
\r
1970 when 3 : nbelems := 25;
\r
1976 if ( x >400 and x <440 and y>200 and y<225) then
\r
1977 call BOUTON (400,200,440,225,7,8,15);
\r
1978 call DELAI (2000);
\r
1979 call BOUTON (400,200,440,225,7,15,8);
\r
1980 case choix_courant
\r
1981 when 1 : nbelems := 150 ;
\r
1982 when 2 : nbelems := 20;
\r
1983 when 3 : nbelems := 50;
\r
1989 if ( x >265 and x <365 and y>250 and y<280) then
\r
1990 call BOUTON (265,250,365,280,7,8,15);
\r
1991 call DELAI (2000);
\r
1992 call BOUTON (265,250,365,280,7,15,8);
\r
1996 call setwindow (70,570,80,300);
\r
1999 end GERE_CHOIX_NB;
\r
2001 unit CHOIX_NB_ELEM : procedure (inout nbelems :integer;
\r
2002 choix_courant : integer);
\r
2004 coul,nbbouton : integer,
\r
2007 call EFFACE (70,80,570,300,9,1,15);
\r
2009 call dessinrand (206,20,8);
\r
2010 call dessinrand (203,17,4);
\r
2011 call RECTANGLE_PLEIN(150,100,490,150,7,15);
\r
2012 call RECTANGLE_PLEIN (200,160,240,185,7,15);
\r
2013 call BOUTON (200,200,240,225,7,15,8);
\r
2014 call RECTANGLE_PLEIN (300,160,340,185,7,15);
\r
2015 call BOUTON (300,200,340,225,7,15,8);
\r
2016 call RECTANGLE_PLEIN (400,160,440,185,7,15);
\r
2017 call BOUTON (400,200,440,225,7,15,8);
\r
2018 call BOUTON (265,250,365,280,7,15,8);
\r
2020 case choix_courant
\r
2022 call move (250,120);
\r
2023 call outstring ("H I S T O G R A M M E S");
\r
2024 call move (209,167);
\r
2025 call outstring ("30");
\r
2026 call move (309,167);
\r
2027 call outstring ("100");
\r
2028 call move (405,167);
\r
2029 call outstring ("150");
\r
2031 call move (250,120);
\r
2032 call outstring (" P O L Y N O M E S");
\r
2033 call move (209,167);
\r
2034 call outstring ("5");
\r
2035 call move (309,167);
\r
2036 call outstring ("10");
\r
2037 call move (405,167);
\r
2038 call outstring ("20");
\r
2040 call move (255,120);
\r
2041 call outstring ("S U R F A C E S");
\r
2042 call move (209,167);
\r
2043 call outstring ("15");
\r
2044 call move (309,167);
\r
2045 call outstring ("25");
\r
2046 call move (405,167);
\r
2047 call outstring ("50");
\r
2050 if (nbelems=30 or nbelems =5 or nbelems =15) then
\r
2053 if (nbelems = 100 or nbelems = 10 or nbelems = 25) then
\r
2059 call GERE_CHOIX_NB (choix_courant,nbelems);
\r
2060 call EFFACE (70,80,570,300,9,1,15);
\r
2061 end CHOIX_NB_ELEM;
\r
2063 unit AFF_RENS : procedure ;
\r
2066 call move (0,174);
\r
2067 call draw (639,174);
\r
2068 call move (0,110);
\r
2069 call draw (639,110);
\r
2070 call move (0,285);
\r
2071 call draw (639,285);
\r
2072 call move (0,284);
\r
2073 call draw (639,284);
\r
2074 call dessinquick (-23+3,123+3,8);
\r
2075 call dessinsort (220+3,123+3,8);
\r
2076 call dessinquick (-23,123,9);
\r
2077 call dessinsort (220,123,9);
\r
2078 call dessinbubble (0+3,300+3,8);
\r
2079 call dessinsort (220+3,300+3,8);
\r
2080 call dessinbubble (0,300,14);
\r
2081 call dessinsort (220,300,14);
\r
2082 call RECTANGLE_PLEIN (415,115,520,130,7,15);
\r
2083 call RECTANGLE_PLEIN (415,135,520,150,7,15);
\r
2085 call move (420,120);
\r
2086 call outstring ("PERMUTATIONS");
\r
2087 call move (420,140);
\r
2088 call outstring ("COMPARAISONS");
\r
2089 call move (420,160);
\r
2091 call outstring ("en cours ...");
\r
2092 call RECTANGLE_PLEIN (415,290,520,305,7,15);
\r
2093 call RECTANGLE_PLEIN (415,310,520,325,7,15);
\r
2095 call move (420,295);
\r
2096 call outstring ("PERMUTATIONS");
\r
2097 call move (420,315);
\r
2098 call outstring ("COMPARAISONS");
\r
2099 call move (420,335);
\r
2101 call outstring ("en attente ");
\r
2104 unit AFF_RENS_FIN : procedure;
\r
2106 call RECTANGLE_PLEIN (415,155,520,170,7,7);
\r
2107 call RECTANGLE_PLEIN (415,330,520,345,7,7);
\r
2109 call move (420,160);
\r
2110 call outstring ("tri fini.");
\r
2111 call move (420,335);
\r
2112 call outstring ("en cours ...");
\r
2115 unit AFF_RENS_FIN2 : procedure;
\r
2117 call RECTANGLE_PLEIN (415,330,520,345,7,7);
\r
2119 call move (420,335);
\r
2120 call outstring ("tri fini.");
\r
2121 end AFF_RENS_FIN2;
\r
2123 unit STATS: procedure(nb_iterationsq,nb_iterationsb,nbelems:integer);
\r
2126 chaine1,chaine2 : string,
\r
2128 i,x1,x2,x3,x4,itermax,ind_perfb,
\r
2129 calcule_cmq,calcule_cmb,cout_maxb,cout_maxq,
\r
2130 ind_perfq,marque : integer,
\r
2131 sauve_valq,sauve_valb ,
\r
2132 pas_q,pas_b,facteur : real;
\r
2136 call RECTANGLE_PLEIN(0,0,639,349,0,15);
\r
2137 call dessinstat(235+3,10+3,8);
\r
2138 call dessinstat(235,10,9);
\r
2139 call move (115,90);
\r
2141 call outstring ("INDICE DE RAPIDITE (calcul
\82 sur la base des comparaisons)");
\r
2142 call move (114,89);
\r
2144 call outstring ("INDICE DE RAPIDITE (calcul
\82 sur la base des comparaisons)");
\r
2145 call move (5,107);
\r
2147 call outstring ("QUICK SORT");
\r
2148 call move (5,157);
\r
2149 call outstring ("BUBBLE SORT");
\r
2150 call RECTANGLE_PLEIN(99,100,551,130,8,15);
\r
2151 call RECTANGLE_PLEIN(99,150,551,180,8,15);
\r
2152 call aff_nb (570,115,nb_iterationsq,4,15);
\r
2153 call aff_nb (570,165,nb_iterationsb,4,15);
\r
2154 facteur := nb_iterationsq / 100;
\r
2155 pas_q := facteur * 450 / nb_iterationsq ;
\r
2156 pas_b := facteur * 450 / nb_iterationsb ;
\r
2158 if nb_iterationsq>nb_iterationsb then itermax := nb_iterationsq;
\r
2159 else itermax := nb_iterationsb;
\r
2161 itermax := entier (itermax / facteur);
\r
2162 for i := 0 to itermax
\r
2164 x1 := entier(i*pas_q);
\r
2165 x2 := entier(i*pas_b);
\r
2166 x3 := entier ((i+1)*pas_q);
\r
2167 x4 := entier ((i+1)*pas_b);
\r
2168 sauve_valq := 100 + x1 ;
\r
2169 sauve_valb := 100 + x2 ;
\r
2170 if (x3 <= 450) then
\r
2171 call RECTANGLE_PLEIN(sauve_valq,101,100+x3,129,4,4);
\r
2176 call move (sauve_valb,140);
\r
2177 call outstring ("³");
\r
2180 if (x4 <= 450) then
\r
2181 call RECTANGLE_PLEIN(sauve_valb,151,100+x4,179,4,4);
\r
2184 cout_maxb := entier((nbelems*(nbelems-1)) / 2);
\r
2185 cout_maxq := entier((((nbelems+1)*(nbelems+2)/2)-3));
\r
2186 ind_perfb := 100 - ((nb_iterationsb*100)/cout_maxb);
\r
2187 ind_perfq := 100 -((nb_iterationsq*100)/cout_maxq);
\r
2188 chaine1 := "QUICK SORT";
\r
2189 chaine2 := "BUBBLE SORT";
\r
2190 call move (180,190);
\r
2192 call outstring ("W I N N E R :");
\r
2193 call move (178,188);
\r
2195 call outstring ("W I N N E R :");
\r
2198 if (nb_iterationsq < nb_iterationsb) then
\r
2199 call move (290,190);
\r
2200 call outstring(chaine1);
\r
2202 call move (290,190);
\r
2203 call outstring (chaine2);
\r
2205 call RECTANGLE_PLEIN (20,210,620,330,0,15);
\r
2207 call move (20,250);
\r
2208 call draw (620,250);
\r
2209 call move (20,290);
\r
2210 call draw (620,290);
\r
2211 call move (140,210);
\r
2212 call draw (140,330);
\r
2213 call move (260,210);
\r
2214 call draw (260,330);
\r
2215 call move (380,210);
\r
2216 call draw (380,330);
\r
2217 call move (500,210);
\r
2218 call draw (500,330);
\r
2219 call move (40,220);
\r
2221 call outstring ("METHODES");
\r
2222 call move (152,220);
\r
2223 call outstring ("NB ELEMENTS");
\r
2224 call move (280,220);
\r
2225 call outstring ("COUT MOYEN");
\r
2226 call move (390,220);
\r
2227 call outstring ("COUT MAXIMUM");
\r
2228 call move (510,220);
\r
2229 call outstring ("PERFORMANCE");
\r
2230 call move (522,230);
\r
2231 call outstring ("en %");
\r
2232 call aff_nb(160,260,nbelems,3,15);
\r
2233 call aff_nb(160,300,nbelems,3,15);
\r
2234 calcule_cmb := entier((nbelems*(nbelems-1)) / 2);
\r
2235 calcule_cmq := entier(2*(ln (nbelems) / ln (10))*nbelems);
\r
2236 call aff_nb(550,300,ind_perfb,2,15);
\r
2237 call aff_nb(550,260,ind_perfq,2,15);
\r
2238 call aff_nb(290,300,calcule_cmb,4,15);
\r
2239 call aff_nb(290,260,calcule_cmq,3,15);
\r
2240 call aff_nb(410,260,cout_maxq,3,15);
\r
2241 call aff_nb(410,300,calcule_cmb,4,15);
\r
2243 call move (35,260);
\r
2244 call outstring ("QUICK SORT");
\r
2245 call move (35,300);
\r
2246 call outstring ("BUBBLE SORT");
\r
2248 call EFFACE (0,0,639,349,9,7,15);
\r
2251 unit AFF_TRI : procedure(choix_courant,nbelems: integer);
\r
2253 pref STR_ELEMENTS block
\r
2255 CONTINUE : boolean,
\r
2257 TAB1,TAB2 : STR_ELEMENTS,
\r
2258 i,rand,det_coul,essai,
\r
2259 nb_perm,nb_iterationsq,nb_iterationsb : integer;
\r
2262 nb_iterationsq := 0;
\r
2263 nb_iterationsb := 0;
\r
2264 CONTINUE := false;
\r
2265 call EFFACE (0,0,639,349,9,7,15);
\r
2266 case choix_courant
\r
2268 TAB1 := new HISTOGRAMMES (nbelems);
\r
2269 TAB2 := new HISTOGRAMMES (nbelems);
\r
2271 TAB1 := new POLY (nbelems);
\r
2272 TAB2 := new POLY (nbelems);
\r
2274 TAB1 := new SURFACES (nbelems);
\r
2275 TAB2 := new SURFACES (nbelems);
\r
2278 call TAB1.randomize;
\r
2279 call TAB2.copie(TAB1);
\r
2280 for i := 0 to nbelems-1
\r
2282 call TAB1.trace (i,105);
\r
2283 call TAB2.trace (i,280);
\r
2286 call QUICK_SORT (0,nbelems-1,TAB1,nb_perm,nb_iterationsq);
\r
2287 call AFF_RENS_FIN;
\r
2289 call TAB1.killtab;
\r
2291 call bubble_sort(nbelems-1,TAB2,nb_perm,nb_iterationsb);
\r
2292 call AFF_RENS_FIN2;
\r
2293 call TAB2.killtab;
\r
2296 CONTINUE:=BOX_MESSAGE("Voulez-vous les statistiques des tris ?",
\r
2298 if ( CONTINUE) then
\r
2299 call EFFACE (0,0,639,349,9,7,15);
\r
2300 call STATS(nb_iterationsq,nb_iterationsb,nbelems);
\r
2302 call EFFACE (0,0,639,349,9,7,15);
\r
2307 unit SWAP : procedure (indice1 , indice2 : integer ;
\r
2308 inout T2 : STR_ELEMENTS;inout nb_perm : integer);
\r
2311 pref STR_ELEMENTS block
\r
2313 temp1,temp2,coul1,coul2,hauteur1,hauteur2 : integer;
\r
2316 nb_perm := nb_perm + 1;
\r
2317 call aff_nb (560,120,nb_perm,4,1);
\r
2318 call T2.echange (indice1,indice2,105);
\r
2323 unit QUICK_SORT : procedure (gauche,droite : integer ; inout T : STR_ELEMENTS;
\r
2324 inout nb_perm,nb_iterations :integer);
\r
2327 pref STR_ELEMENTS block
\r
2329 moy,ibas,ihaut : integer ;
\r
2331 (* initialisation des indices bas et haut *)
\r
2334 (* choix d'une valeur mediane *)
\r
2335 moy := (gauche + droite) div 2;
\r
2336 (* echange pour que valeurs gauches <= pivot <= valeurs droites *)
\r
2338 (* recherche de la premiere valeur de gauche mal placee *)
\r
2339 while (T.compare (ibas,moy)=-1)
\r
2342 nb_iterations := nb_iterations + 1;
\r
2344 (* recherche de la premiere valeur de droite mal placee *)
\r
2345 while (T.compare (moy,ihaut)=-1)
\r
2347 ihaut := ihaut - 1;
\r
2348 nb_iterations := nb_iterations + 1;
\r
2350 call aff_nb(560,140,nb_iterations,4,1);
\r
2351 (* echange eventuel de 2 valeurs mal classees *)
\r
2352 if ibas <= ihaut then
\r
2353 call SWAP (ibas,ihaut,T,nb_perm);
\r
2354 if ibas = moy then
\r
2356 else if ihaut = moy then
\r
2361 ihaut := ihaut - 1;
\r
2363 if ibas > ihaut then exit;
\r
2366 (* recursion si les sous-intervalles ne sont pas d
\82j
\85 tri
\82s *)
\r
2367 if ihaut > gauche then
\r
2368 call QUICK_SORT (gauche,ihaut,T,nb_perm,nb_iterations);
\r
2370 if ibas < droite then
\r
2371 call QUICK_SORT (ibas,droite,T,nb_perm,nb_iterations);
\r
2377 unit bubble_sort : procedure (n : integer;inout T : STR_ELEMENTS;
\r
2378 inout nb_perm,nb_iterations : integer);
\r
2384 (* tant que le tableau n'est pas enti
\8arement tri
\82 *)
\r
2385 while (i>=0) and not triok
\r
2388 (* tri du sous-tableau *)
\r
2389 for j := 0 to i-1
\r
2391 nb_iterations := nb_iterations + 1;
\r
2392 call aff_nb (560,315,nb_iterations,4,1);
\r
2393 (* ordonner 2
\82l
\82ments *)
\r
2394 if T.compare(j,j+1) = 1 then
\r
2395 nb_perm := nb_perm + 1;
\r
2396 call aff_nb (560,295,nb_perm,4,1);
\r
2397 call T.echange(j,j+1,280);
\r
2406 pref STR_ELEMENTS block
\r
2407 (********************************************************************)
\r
2408 (* PROGRAMME PRINCIPAL *)
\r
2409 (********************************************************************)
\r
2412 call gron(NOCARD); (* installation du pilote graphique *)
\r
2413 call rectangle_plein (0,0,639,349,7,7);
\r
2417 call EFFACE (0,0,639,349,9,7,15);
\r